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

Sprout from R3_4_maintenance 2008-08-26 19:17:11 UTC Eric Moffatt <emoffatt> ''
Cherrypick from R3_4_maintenance 2008-08-26 20:34:17 UTC Eric Moffatt <emoffatt> '*** empty log message ***':
    bundles/org.eclipse.ui/buildnotes_workbench.html
Delete:
    bundles/org.eclipse.core.commands/.classpath
    bundles/org.eclipse.core.commands/.cvsignore
    bundles/org.eclipse.core.commands/.project
    bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.core.commands/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.core.commands/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.commands/about.html
    bundles/org.eclipse.core.commands/build.properties
    bundles/org.eclipse.core.commands/plugin.properties
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICategoryListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandManagerListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler2.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerAttributes.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameter.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterValues.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotEnabledException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotHandledException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValuesException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Parameterization.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractBitSetEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractHandleObjectEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractNamedHandleEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NotDefinedException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/package.html
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManagerEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextManagerListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/package.html
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ICompositeOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover2.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistoryListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoContext.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoEnforcer.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryFactory.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationStatus.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/UndoContext.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/package.html
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/package.html
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/operations/GlobalUndoContext.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/util/Util.java
    bundles/org.eclipse.core.databinding.beans/.classpath
    bundles/org.eclipse.core.databinding.beans/.cvsignore
    bundles/org.eclipse.core.databinding.beans/.project
    bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.core.databinding.beans/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.databinding.beans/about.html
    bundles/org.eclipse.core.databinding.beans/build.properties
    bundles/org.eclipse.core.databinding.beans/plugin.properties
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeansObservables.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanObservable.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/package.html
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableListDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableMapDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableSetDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableValueDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/IdentityWrapper.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableList.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableMap.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableSet.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableValue.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanPropertyObservableMap.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/ListenerSupport.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/AbstractObservable.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeManager.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeSupport.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Diffs.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IChangeListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservable.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservableCollection.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservablesListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObserving.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IStaleListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ObservableEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ObservableTracker.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Observables.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Realm.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/StaleEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/AbstractObservableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ComputedList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/IListChangeListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/IObservableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiff.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiffEntry.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiffVisitor.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ObservableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/WritableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/package.html
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/AbstractObservableMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/BidirectionalMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/CompositeMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/ComputedObservableMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/IMapChangeListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/IObservableMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapDiff.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/ObservableMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/WritableMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/package.html
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/IObservableFactory.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/MasterDetailObservables.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/package.html
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/package.html
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/AbstractObservableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/IObservableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ISetChangeListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ListToSetAdapter.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/MappedSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ObservableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetDiff.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/UnionSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/WritableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/package.html
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractVetoableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ChangeVetoException.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ComputedValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IObservableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IValueChangeListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IValueChangingListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IVetoableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueDiff.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/WritableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/package.html
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/ILogger.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/Policy.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/package.html
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ConstantObservableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/EmptyObservableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/EmptyObservableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/IStalenessConsumer.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/MapEntryObservableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ProxyObservableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ProxyObservableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/StalenessObservableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/StalenessTracker.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableList.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableMap.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableSet.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/AbstractObservableTree.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenCountUpdate.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenUpdate.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IHasChildrenUpdate.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IObservableTree.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IOrderedTreeProvider.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/ITreeChangeListener.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IUnorderedTreeProvider.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IViewerUpdate.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeChangeEvent.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiff.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffNode.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffVisitor.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreePath.java
    bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/package.html
    bundles/org.eclipse.core.databinding/.classpath
    bundles/org.eclipse.core.databinding/.cvsignore
    bundles/org.eclipse.core.databinding/.project
    bundles/org.eclipse.core.databinding/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.core.databinding/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.core.databinding/.settings/org.eclipse.pde.api.tools.prefs
    bundles/org.eclipse.core.databinding/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.core.databinding/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.databinding/about.html
    bundles/org.eclipse.core.databinding/build.properties
    bundles/org.eclipse.core.databinding/plugin.properties
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/AggregateValidationStatus.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/Binding.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/BindingException.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/DataBindingContext.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ListBinding.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ObservablesManager.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/SetBinding.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateListStrategy.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateSetStrategy.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateStrategy.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateValueStrategy.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ValidationStatusProvider.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ValueBinding.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/Converter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/IConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/NumberToStringConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/StringToNumberConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/AbstractObservable.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeManager.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeSupport.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Diffs.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IChangeListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservable.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservableCollection.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservablesListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObserving.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IStaleListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableTracker.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Observables.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Realm.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/StaleEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/AbstractObservableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ComputedList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/IListChangeListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/IObservableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiff.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiffEntry.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiffVisitor.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ObservableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/WritableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/AbstractObservableMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/BidirectionalMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/CompositeMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/ComputedObservableMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/IMapChangeListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/IObservableMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapDiff.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/ObservableMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/WritableMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/IObservableFactory.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/MasterDetailObservables.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/AbstractObservableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/IObservableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ISetChangeListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ListToSetAdapter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/MappedSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ObservableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetDiff.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/UnionSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/WritableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractVetoableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ChangeVetoException.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ComputedValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IObservableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IValueChangeListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IValueChangingListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IVetoableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueDiff.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/WritableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/ILogger.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/Policy.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/IValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/MultiValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/ValidationStatus.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Activator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/BindingMessages.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/BindingStatus.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/ClassLookupSupport.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/IdentityWrapper.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Pair.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Queue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/RandomAccessListIterator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Util.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/ValidationStatusMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/CharacterToStringConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/DateConversionSupport.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/DateToStringConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/IdentityConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/IntegerToStringConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToBigDecimalConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToBigIntegerConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToByteConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToDoubleConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToFloatConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToIntegerConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToLongConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToNumberConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToShortConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/ObjectToStringConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StatusToStringConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToBooleanConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToBooleanPrimitiveConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToByteConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToCharacterConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToDateConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToNumberParser.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToShortConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/messages.properties
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ConstantObservableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/EmptyObservableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/EmptyObservableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/IStalenessConsumer.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/MapEntryObservableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ProxyObservableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ProxyObservableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/StalenessObservableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/StalenessTracker.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableList.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableMap.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableSet.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/AbstractObservableTree.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenCountUpdate.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenUpdate.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IHasChildrenUpdate.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IObservableTree.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IOrderedTreeProvider.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/ITreeChangeListener.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IUnorderedTreeProvider.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IViewerUpdate.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeChangeEvent.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiff.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffNode.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffVisitor.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreePath.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/package.html
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/AbstractStringToNumberValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberFormatConverter.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToByteValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToDoubleValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToFloatValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToIntegerValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToLongValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToNumberValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToShortValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToUnboundedNumberValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/ObjectToPrimitiveValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/ReadOnlyValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToByteValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToCharacterValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToDateValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToDoubleValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToFloatValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToIntegerValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToLongValidator.java
    bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToShortValidator.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/.api_filters
    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/plugin.properties
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/ISWTObservable.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/ISWTObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/SWTObservables.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/package.html
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservable.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ListeningLabelProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListContentProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListTreeContentProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableMapLabelProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableSetContentProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableSetTreeContentProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableValueEditingSupport.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/TreeStructureAdvisor.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ViewersObservables.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/package.html
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/wizard/WizardPageSupport.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/wizard/package.html
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/swt/LinkObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTVetoableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/CompositeUpdater.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/ControlUpdater.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/MenuUpdater.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/SWTUtil.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/TableUpdater.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/WorkQueue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/IParentProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/TreeNode.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/UnorderedTreeContentProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/ViewerLabelProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ButtonObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboSingleSelectionObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CLabelObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboSingleSelectionObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ControlObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/DelayedObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/LabelObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListSingleSelectionObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SWTObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SWTProperties.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ScaleObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ShellObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SingleSelectionObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SpinnerObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TableSingleSelectionObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TextEditableObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TextObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/CheckableCheckedElementsObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/CheckboxViewerCheckedElementsObservableSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/LeafNodesSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ListViewerUpdater.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionContentProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionTreeContentProvider.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableViewerElementSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderMultipleSelectionObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderSingleSelectionObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TableViewerUpdater.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TreeViewerUpdater.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementMap.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementSet.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementWrapper.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerInputObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerMultipleSelectionObservableList.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerSingleSelectionObservableValue.java
    bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerUpdater.java
    bundles/org.eclipse.ui.browser/.classpath
    bundles/org.eclipse.ui.browser/.cvsignore
    bundles/org.eclipse.ui.browser/.options
    bundles/org.eclipse.ui.browser/.project
    bundles/org.eclipse.ui.browser/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.browser/about.html
    bundles/org.eclipse.ui.browser/build.properties
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_backward.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_forward.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_go.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_home.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_print.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_refresh.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_stop.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_backward.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_forward.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_go.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_home.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_print.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_refresh.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_stop.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/synced.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_backward.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_forward.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_go.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_home.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_print.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_refresh.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_stop.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/synced.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/1.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/10.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/11.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/12.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/13.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/2.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/3.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/4.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/5.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/6.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/7.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/8.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/9.gif
    bundles/org.eclipse.ui.browser/icons/obj16/external_browser.gif
    bundles/org.eclipse.ui.browser/icons/obj16/internal_browser.gif
    bundles/org.eclipse.ui.browser/plugin.properties
    bundles/org.eclipse.ui.browser/plugin.xml
    bundles/org.eclipse.ui.browser/schema/browsers.exsd
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/browser/BrowserFactory.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorDialog.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorWorkingCopy.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserExt.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserLauncher.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserManager.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserText.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BusyIndicator.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ContextIds.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ExternalBrowserInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/FallbackScrolledComposite.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptorWorkingCopy.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserExt.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserViewerContainer.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResource.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserEditorInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserViewInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserHandler.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserWorkbenchAction.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SWTUtil.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserDescriptor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/TextAction.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ToolbarLayout.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Trace.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorActionBarContributor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorInput.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreference.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreferencePage.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUIPlugin.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUtil.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserView.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserViewDropAdapter.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/BrowserLog.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowserFactory.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaFactory.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/NullBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/StreamConsumer.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowserFactory.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowserFactory.java
    bundles/org.eclipse.ui.carbon/.classpath
    bundles/org.eclipse.ui.carbon/.cvsignore
    bundles/org.eclipse.ui.carbon/.project
    bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.carbon/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.carbon/.template
    bundles/org.eclipse.ui.carbon/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.carbon/about.html
    bundles/org.eclipse.ui.carbon/build.properties
    bundles/org.eclipse.ui.carbon/fragment-carbon.properties
    bundles/org.eclipse.ui.carbon/fragment.xml
    bundles/org.eclipse.ui.carbon/scripts/exportplugin.xml
    bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/CarbonUIEnhancer.java
    bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/Messages.properties
    bundles/org.eclipse.ui.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/icons/progress/ani/1.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/2.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/3.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/4.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/5.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/6.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/7.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/8.png
    bundles/org.eclipse.ui.forms/plugin.properties
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormColors.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormDialog.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormColors.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessage.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessageManager.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessagePrefixProvider.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/MasterDetailsBlock.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormPage.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/IFormPage.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/package.html
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/package.html
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/package.html
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ExpandableComposite.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormToolkit.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutCache.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SizeCache.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/package.html
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/IMessageToolTipManager.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/MessageManager.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.properties
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/AggregateHyperlinkSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BreakSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BulletParagraph.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ControlSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormFonts.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormTextModel.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormsResources.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IFocusSelectable.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IHyperlinkSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageHyperlinkSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Paragraph.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ParagraphSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/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/TitleRegion.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java
    bundles/org.eclipse.ui.ide.application/.classpath
    bundles/org.eclipse.ui.ide.application/.project
    bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.ide.application/about.html
    bundles/org.eclipse.ui.ide.application/build.properties
    bundles/org.eclipse.ui.ide.application/icons/full/elcl16/configs.gif
    bundles/org.eclipse.ui.ide.application/icons/full/elcl16/usearch_obj.gif
    bundles/org.eclipse.ui.ide.application/icons/full/eview16/resource_persp.gif
    bundles/org.eclipse.ui.ide.application/plugin.properties
    bundles/org.eclipse.ui.ide.application/plugin.xml
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEIdleHelper.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchWindowAdvisor.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/ResourcePerspective.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/IDEStartupPreferencePage.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/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/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/.api_filters
    bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.views.properties.tabbed/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.views.properties.tabbed/about.html
    bundles/org.eclipse.ui.views.properties.tabbed/build.properties
    bundles/org.eclipse.ui.views.properties.tabbed/plugin.properties
    bundles/org.eclipse.ui.views.properties.tabbed/plugin.xml
    bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd
    bundles/org.eclipse.ui.views.properties.tabbed/schema/propertySections.exsd
    bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyTabs.exsd
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewPlugin.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewStatusCodes.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/OverridableTabListContentProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabListContentProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractOverridableTabListPropertySection.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractPropertySection.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractSectionDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTabDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTypeMapper.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IActionProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabList.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabListContentProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISection.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptorProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptorProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabItem.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertyConstants.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertySheetPageContributor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITypeMapper.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabContents.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetWidgetFactory.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/package.html
    bundles/org.eclipse.ui.views/.classpath
    bundles/org.eclipse.ui.views/.cvsignore
    bundles/org.eclipse.ui.views/.project
    bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.views/about.html
    bundles/org.eclipse.ui.views/build.properties
    bundles/org.eclipse.ui.views/icons/full/dlcl16/defaults_ps.gif
    bundles/org.eclipse.ui.views/icons/full/dlcl16/filter_ps.gif
    bundles/org.eclipse.ui.views/icons/full/dlcl16/tree_mode.gif
    bundles/org.eclipse.ui.views/icons/full/elcl16/defaults_ps.gif
    bundles/org.eclipse.ui.views/icons/full/elcl16/filter_ps.gif
    bundles/org.eclipse.ui.views/icons/full/elcl16/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/PropertyColumnLabelProvider.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyEditingSupport.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetAction.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetSorter.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetViewer.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/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/ModelObject.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/ducks/DuckType.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/ReflectedMethod.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/ReflectedProperty.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/RelaxedDuckType.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/mask/internal/SWTUtil.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/WorkQueue.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/SimpleCart.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/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/snippets/Snippet005MenuUpdater.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet006Spreadsheet.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet007ColorLabelProvider.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet008ComputedValue.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet009TableViewer.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet010MasterDetail.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet011ValidateMultipleBindingsSnippet.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet012CompositeUpdater.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet013TableViewerEditing.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet014WizardDialog.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet015DelayTextModifyEvents.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet016TableUpdater.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet017TableViewerWithDerivedColumns.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet018CheckboxTableViewerCheckedSelection.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet019TreeViewerWithListFactory.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet020TreeViewerWithSetFactory.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet021MultiFieldValidation.java
    examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet0xffffffff.java
    examples/org.eclipse.jface.snippets/.classpath
    examples/org.eclipse.jface.snippets/.project
    examples/org.eclipse.jface.snippets/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet012DialogWithImageButtons.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet058VistaProgressBars.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet059VistaProgressIndicator.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet060DialogWithURLImageButtons.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/cancel.png
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/filesave.png
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet013GridLayoutFactory.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/Snippet057FileImageDescriptors.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/cancel.png
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/filesave.png
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/AbstractCellCursor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/BooleanCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/CursorCellHighlighter.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/FocusBorderCellHighlighter.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet001TableViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet002TreeViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet003TableLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet004HideSelection.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet005TreeCustomMenu.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet008RevealElement.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet009CellEditors.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet013TableViewerNoMandatoryLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet015CustomTooltipsForTree.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet017TableViewerHideShowColumns.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet018TableViewerAddRemoveColumnsWithEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet021CellEditorsOnDoubleClick.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet022TableViewerRefreshNoScroll.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet024TableViewerExploreNewAPI.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet025TabEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet026TreeViewerTabEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet027ComboBoxCellEditors.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet029VirtualTableViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet030VirtualLazyTableViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet032TableTreeViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet033CellEditorPerRowPre33.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet034CellEditorPerRowNewAPI.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet035TableCursorCellHighlighter.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet036FocusBorderCellHighlighter.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet037FancyCustomTooltips.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet038TreeViewerInlinelEditingOldAPI.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet039ListViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet040TableViewerSorting.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet041TableViewerAlternatingColors.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet042ToolTipSupportFor32API.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet043NoColumnTreeViewerKeyboardEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet044NoColumnTableViewerKeyboardEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet045TableViewerFillFromBackgroundThread.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet046UpdateViewerFromBackgroundThread.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet048TreeViewerTabWithCheckboxFor3_3.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet049StyledCellLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet050DelegatingStyledCellLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet051TableCenteredImage.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet052DouleClickCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet053StartEditorWithContextMenu.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet054NativeControlsInViewers.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet056BooleanCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet057TableViewerSkipHiddenCells.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TableCursor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet020CustomizedControlTooltips.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet023TreeViewerCustomTooltips.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet031TableStaticTooltip.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/linkto_help.gif
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/showerr_tsk.gif
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/wizard/Snippet047WizardWithLongRunningOperation.java
    examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF
    examples/org.eclipse.jface.snippets/build.properties
    examples/org.eclipse.ui.examples.contributions/.classpath
    examples/org.eclipse.ui.examples.contributions/.project
    examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.contributions/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.contributions/about.html
    examples/org.eclipse.ui.examples.contributions/build.properties
    examples/org.eclipse.ui.examples.contributions/icons/change_obj.gif
    examples/org.eclipse.ui.examples.contributions/icons/editor.gif
    examples/org.eclipse.ui.examples.contributions/icons/new_wiz.gif
    examples/org.eclipse.ui.examples.contributions/icons/perspective.gif
    examples/org.eclipse.ui.examples.contributions/icons/sample.gif
    examples/org.eclipse.ui.examples.contributions/icons/sample2.gif
    examples/org.eclipse.ui.examples.contributions/info.product
    examples/org.eclipse.ui.examples.contributions/plugin.properties
    examples/org.eclipse.ui.examples.contributions/plugin.xml
    examples/org.eclipse.ui.examples.contributions/plugin_customization.ini
    examples/org.eclipse.ui.examples.contributions/product_lg.gif
    examples/org.eclipse.ui.examples.contributions/splash.bmp
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/Activator.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ContributionMessages.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ExampleControlContribution.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/ActivateEditorHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DeltaInfoHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DynamicEditorList.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/InfoEditor.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/IntegerTypeConverter.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/GlobalMenuHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/InfoAboutHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/messages.properties
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/IPersonService.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/Person.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonInput.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonService.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceFactory.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceSlave.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizard.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizardPage.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserPropertyTester.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserSourceProvider.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationActionBarAdvisor.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchAdvisor.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchWindowAdvisor.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ContributionApplication.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/Perspective.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/AdminHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/EditInfoHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/InfoView.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/LoginHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/RefreshInfoHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/SwapInfoHandler.java
    examples/org.eclipse.ui.examples.fieldassist/.classpath
    examples/org.eclipse.ui.examples.fieldassist/.cvsignore
    examples/org.eclipse.ui.examples.fieldassist/.project
    examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistPlugin.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistTestDialog.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/TestDialogAction.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/ContentAssistPreferencePage.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.java
    examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.fieldassist/about.html
    examples/org.eclipse.ui.examples.fieldassist/build.properties
    examples/org.eclipse.ui.examples.fieldassist/doc-html/hglegal.htm
    examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html
    examples/org.eclipse.ui.examples.fieldassist/icons/sample.gif
    examples/org.eclipse.ui.examples.fieldassist/plugin.properties
    examples/org.eclipse.ui.examples.fieldassist/plugin.xml
    examples/org.eclipse.ui.examples.job/.classpath
    examples/org.eclipse.ui.examples.job/.cvsignore
    examples/org.eclipse.ui.examples.job/.project
    examples/org.eclipse.ui.examples.job/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.job/README.TXT
    examples/org.eclipse.ui.examples.job/about.html
    examples/org.eclipse.ui.examples.job/build.properties
    examples/org.eclipse.ui.examples.job/doc/Responsive UIs.ppt
    examples/org.eclipse.ui.examples.job/doc/eclipse-con-talk_2.doc
    examples/org.eclipse.ui.examples.job/doc/responsive_ui.html
    examples/org.eclipse.ui.examples.job/doc/usecases.txt
    examples/org.eclipse.ui.examples.job/doc/workspace-lock.html
    examples/org.eclipse.ui.examples.job/icons/job_view.gif
    examples/org.eclipse.ui.examples.job/icons/sample.gif
    examples/org.eclipse.ui.examples.job/icons/suspend.gif
    examples/org.eclipse.ui.examples.job/icons/tree_view.gif
    examples/org.eclipse.ui.examples.job/plugin.xml
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/BusyShowWhileDialog.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/ProgressExamplesPlugin.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJobRule.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/UITestJob.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/CreateJobsAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/DebugJobManagerAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/ForegroundAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/JobAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/SuspendJobManagerAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/DeferredContentProvider.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/LazyTreeView.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/ProgressExampleAdapterFactory.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElement.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElementAdapter.java
    examples/org.eclipse.ui.examples.multipageeditor/.classpath
    examples/org.eclipse.ui.examples.multipageeditor/.cvsignore
    examples/org.eclipse.ui.examples.multipageeditor/.project
    examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MessageUtil.java
    examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageContributor.java
    examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageEditorExample.java
    examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/messages.properties
    examples/org.eclipse.ui.examples.multipageeditor/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.multipageeditor/about.html
    examples/org.eclipse.ui.examples.multipageeditor/build.properties
    examples/org.eclipse.ui.examples.multipageeditor/doc-html/hglegal.htm
    examples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html
    examples/org.eclipse.ui.examples.multipageeditor/icons/copy.gif
    examples/org.eclipse.ui.examples.multipageeditor/plugin.properties
    examples/org.eclipse.ui.examples.multipageeditor/plugin.xml
    examples/org.eclipse.ui.examples.navigator/.classpath
    examples/org.eclipse.ui.examples.navigator/.project
    examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.navigator/about.html
    examples/org.eclipse.ui.examples.navigator/build.properties
    examples/org.eclipse.ui.examples.navigator/icons/delete_obj.gif
    examples/org.eclipse.ui.examples.navigator/icons/filenav_nav.gif
    examples/org.eclipse.ui.examples.navigator/icons/prop_ps.gif
    examples/org.eclipse.ui.examples.navigator/plugin.properties
    examples/org.eclipse.ui.examples.navigator/plugin.xml
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesContentProvider.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesLabelProvider.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesTreeData.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/OpenPropertyAction.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/PropertyActionProvider.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.java
    examples/org.eclipse.ui.examples.presentation/.classpath
    examples/org.eclipse.ui.examples.presentation/.cvsignore
    examples/org.eclipse.ui.examples.presentation/.project
    examples/org.eclipse.ui.examples.presentation/BareBonesPresentation.ini
    examples/org.eclipse.ui.examples.presentation/WrappedTabsPresentation.ini
    examples/org.eclipse.ui.examples.presentation/about.html
    examples/org.eclipse.ui.examples.presentation/build.properties
    examples/org.eclipse.ui.examples.presentation/eclipsecon2005-presentationsAPI.ppt
    examples/org.eclipse.ui.examples.presentation/icons/close_view.gif
    examples/org.eclipse.ui.examples.presentation/icons/hide_toolbar.GIF
    examples/org.eclipse.ui.examples.presentation/icons/max_view.gif
    examples/org.eclipse.ui.examples.presentation/icons/min_view.gif
    examples/org.eclipse.ui.examples.presentation/icons/restore_view.GIF
    examples/org.eclipse.ui.examples.presentation/icons/show_toolbar.GIF
    examples/org.eclipse.ui.examples.presentation/icons/view_menu.GIF
    examples/org.eclipse.ui.examples.presentation/plugin.xml
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationExamplesPlugin.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationImages.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationPlugin.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPartPresentation.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPresentationFactory.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitlePresentationFactory.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitleStackPresentation.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/ClosePartContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/PartItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderItemViewPresentation.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderPresentationFactory.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ChangeStackStateContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseAllContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseOthersContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/PartListContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ProxyControl.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ShowToolbarContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPartPresentation.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPresentationFactory.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsThemeConstants.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsUtil.java
    examples/org.eclipse.ui.examples.propertysheet/.classpath
    examples/org.eclipse.ui.examples.propertysheet/.cvsignore
    examples/org.eclipse.ui.examples.propertysheet/.project
    examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Address.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Birthday.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddress.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddressValidator.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/GroupElement.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/IUserConstants.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/MessageUtil.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Name.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/OrganizationElement.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PopupMenuActionDelegate.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetContentOutlinePage.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetPlugin.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/StreetAddress.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserEditor.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserElement.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserFileParser.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/messages.properties
    examples/org.eclipse.ui.examples.propertysheet/HelpContexts.xml
    examples/org.eclipse.ui.examples.propertysheet/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.propertysheet/about.html
    examples/org.eclipse.ui.examples.propertysheet/build.properties
    examples/org.eclipse.ui.examples.propertysheet/doc-html/hglegal.htm
    examples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html
    examples/org.eclipse.ui.examples.propertysheet/doc.zip
    examples/org.eclipse.ui.examples.propertysheet/icons/obj16/usereditor.gif
    examples/org.eclipse.ui.examples.propertysheet/plugin.properties
    examples/org.eclipse.ui.examples.propertysheet/plugin.xml
    examples/org.eclipse.ui.examples.rcp.browser/.classpath
    examples/org.eclipse.ui.examples.rcp.browser/.cvsignore
    examples/org.eclipse.ui.examples.rcp.browser/.project
    examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.rcp.browser/Browser.product
    examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.rcp.browser/about.html
    examples/org.eclipse.ui.examples.rcp.browser/build.properties
    examples/org.eclipse.ui.examples.rcp.browser/icons/alt16.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/alt32.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/alt_about.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse32.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse_lg.gif
    examples/org.eclipse.ui.examples.rcp.browser/plugin.properties
    examples/org.eclipse.ui.examples.rcp.browser/plugin.xml
    examples/org.eclipse.ui.examples.rcp.browser/plugin_customization.ini
    examples/org.eclipse.ui.examples.rcp.browser/readme.html
    examples/org.eclipse.ui.examples.rcp.browser/splash.bmp
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserActionBarAdvisor.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserAdvisor.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPerspectiveFactory.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPlugin.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPreferenceInitializer.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserWindowAdvisor.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/HistoryView.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/IBrowserConstants.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/ISecondaryPart.java
    examples/org.eclipse.ui.examples.readmetool/.classpath
    examples/org.eclipse.ui.examples.readmetool/.cvsignore
    examples/org.eclipse.ui.examples.readmetool/.project
    examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AdaptableList.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddReadmeMarkerAction.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddSentenceResolution.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DefaultSectionsParser.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DirtyStateContribution.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/EditorActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeConstants.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeFileParser.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElement.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElementProperties.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MessageUtil.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/PopupMenuActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlineDragListener.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlinePage.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationPage.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationWizard.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeDropActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditor.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditorActionBarContributor.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeImages.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeMarkerResolutionGenerator.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeModelFactory.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePlugin.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferenceInitializer.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeSectionsView.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/SectionsDialog.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ViewActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/WindowActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties
    examples/org.eclipse.ui.examples.readmetool/HelpContexts.xml
    examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.readmetool/about.html
    examples/org.eclipse.ui.examples.readmetool/build.properties
    examples/org.eclipse.ui.examples.readmetool/doc-html/hglegal.htm
    examples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html
    examples/org.eclipse.ui.examples.readmetool/doc.zip
    examples/org.eclipse.ui.examples.readmetool/doc/hglegal.htm
    examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool.html
    examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool_sectionParser.html
    examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action1.gif
    examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action2.gif
    examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action3.gif
    examples/org.eclipse.ui.examples.readmetool/icons/ctool16/openbrwsr.gif
    examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action1.gif
    examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action2.gif
    examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action3.gif
    examples/org.eclipse.ui.examples.readmetool/icons/dtool16/openbrwsr.gif
    examples/org.eclipse.ui.examples.readmetool/icons/etool16/action1.gif
    examples/org.eclipse.ui.examples.readmetool/icons/etool16/action2.gif
    examples/org.eclipse.ui.examples.readmetool/icons/etool16/action3.gif
    examples/org.eclipse.ui.examples.readmetool/icons/etool16/openbrwsr.gif
    examples/org.eclipse.ui.examples.readmetool/icons/obj16/editor.gif
    examples/org.eclipse.ui.examples.readmetool/icons/obj16/newreadme_wiz.gif
    examples/org.eclipse.ui.examples.readmetool/icons/obj16/usereditor.gif
    examples/org.eclipse.ui.examples.readmetool/icons/view16/sections.gif
    examples/org.eclipse.ui.examples.readmetool/icons/wizban/newreadme_wiz.gif
    examples/org.eclipse.ui.examples.readmetool/plugin.properties
    examples/org.eclipse.ui.examples.readmetool/plugin.xml
    examples/org.eclipse.ui.examples.undo/.classpath
    examples/org.eclipse.ui.examples.undo/.cvsignore
    examples/org.eclipse.ui.examples.undo/.project
    examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/AddBoxOperation.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Box.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/BoxOperation.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Boxes.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/ClearBoxesOperation.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/PromptingUserApprover.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoExampleMessages.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoPlugin.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/messages.properties
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceConstants.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceInitializer.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/UndoPreferencePage.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/BoxView.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java
    examples/org.eclipse.ui.examples.undo/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.undo/about.html
    examples/org.eclipse.ui.examples.undo/build.properties
    examples/org.eclipse.ui.examples.undo/doc-html/ui_undo_ex.html
    examples/org.eclipse.ui.examples.undo/icons/sample.gif
    examples/org.eclipse.ui.examples.undo/plugin.properties
    examples/org.eclipse.ui.examples.undo/plugin.xml
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.classpath
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.cvsignore
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.project
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/about.html
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/build.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/icons/sample.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.xml
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/Activator.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElement.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElementProperties.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/CheckBoxPropertyDescriptor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontDialogCellEditor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontPropertyDescriptor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/LabelSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SampleView.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizePropertySource.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizeSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.classpath
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.cvsignore
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.project
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/about.html
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/build.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateDefence_playerStats_PlayerStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateForward_playerStats_PlayerStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateGoalie_goalieStats_GoalieStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateLeague_teams_Team.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_arena_Arena.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_defencemen_Defence.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_forwards_Forward.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_goalies_Goalie.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Arena.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Defence.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Forward.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Goalie.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/GoalieStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Height.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueModelFile.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueObject.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/League.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Player.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/PlayerStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Team.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Weight.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/wizban/NewHockeyleague.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/hockeyleague.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.ecore
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.genmodel
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.xml
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Arena.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Defence.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/DefencePositionKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Forward.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ForwardPositionKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Goalie.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/GoalieStats.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HeightKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueFactory.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueObject.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePackage.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePlugin.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/League.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Player.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/PlayerStats.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ShotKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Team.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/WeightKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ArenaImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/DefenceImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ForwardImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieStatsImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueFactoryImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueObjectImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleaguePackageImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/LeagueImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerStatsImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/TeamImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ArenaItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/DefenceItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ForwardItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieStatsItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueItemProviderAdapterFactory.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueObjectItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/LeagueItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerStatsItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/TeamItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/actions/HockeyleagueCreateChildAction.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/dialogs/HockeyleagueSetDefaultsDialog.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueActionBarContributor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueEditor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleagueLabelProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleaguePropertySheetPage.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/TextChangeHelper.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractEnumerationPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractHockeyleaguePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractIntegerPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractMeasurementPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractPlayersPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractStringPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTablePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTextPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AddressPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AdvancedPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthDatePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthPlacePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/CapacityPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencePositionPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencemenPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardPositionPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardsPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/GoaliesPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeadOfficePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeightPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NamePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NumberPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/PlayerStatsPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ShotPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/TeamsPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/WeightPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizard.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizardPage.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueProjectWizard.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueAdapterFactory.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueSwitch.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.classpath
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.cvsignore
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.project
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/about.html
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/build.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logic.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logicbanner.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.xml
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/Activator.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicCreationWizard.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicWizardPage1.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/TabbedPropertiesLogicEditor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/AbstractSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LocationSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementLabelProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementSizeFilter.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementTypeMapper.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/NameSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/SizeSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/TextChangeHelper.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/ValueSection.java
    examples/org.eclipse.ui.forms.examples/.classpath
    examples/org.eclipse.ui.forms.examples/.cvsignore
    examples/org.eclipse.ui.forms.examples/.project
    examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.forms.examples/about.html
    examples/org.eclipse.ui.forms.examples/build.properties
    examples/org.eclipse.ui.forms.examples/icons/clear.gif
    examples/org.eclipse.ui.forms.examples/icons/close_view.gif
    examples/org.eclipse.ui.forms.examples/icons/container_obj.gif
    examples/org.eclipse.ui.forms.examples/icons/e_search_menu.gif
    examples/org.eclipse.ui.forms.examples/icons/file_obj.gif
    examples/org.eclipse.ui.forms.examples/icons/form_banner.gif
    examples/org.eclipse.ui.forms.examples/icons/help.gif
    examples/org.eclipse.ui.forms.examples/icons/help_topic.gif
    examples/org.eclipse.ui.forms.examples/icons/large_image.gif
    examples/org.eclipse.ui.forms.examples/icons/linkto_help.gif
    examples/org.eclipse.ui.forms.examples/icons/newprj_wiz.gif
    examples/org.eclipse.ui.forms.examples/icons/nw.gif
    examples/org.eclipse.ui.forms.examples/icons/progress.gif
    examples/org.eclipse.ui.forms.examples/icons/sample.gif
    examples/org.eclipse.ui.forms.examples/icons/th_horizontal.gif
    examples/org.eclipse.ui.forms.examples/icons/th_vertical.gif
    examples/org.eclipse.ui.forms.examples/icons/toc_closed.gif
    examples/org.eclipse.ui.forms.examples/icons/toc_open.gif
    examples/org.eclipse.ui.forms.examples/icons/topic_small.gif
    examples/org.eclipse.ui.forms.examples/plugin.properties
    examples/org.eclipse.ui.forms.examples/plugin.xml
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPluginResources.properties
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/FormEditorInput.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ErrorMessagesPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/FreeFormPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/HeadlessPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/IModelListener.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NamedObject.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSingleHeaderEditorAction.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/PageWithSubPages.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesBlock.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditorInput.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleModel.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ThirdPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOne.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOneDetailsPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwo.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwoDetailsPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/index.xml
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java
    tests/org.eclipse.jface.tests.databinding.conformance/.classpath
    tests/org.eclipse.jface.tests.databinding.conformance/.project
    tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.jface.tests.databinding.conformance/META-INF/MANIFEST.MF
    tests/org.eclipse.jface.tests.databinding.conformance/about.html
    tests/org.eclipse.jface.tests.databinding.conformance/build.properties
    tests/org.eclipse.jface.tests.databinding.conformance/plugin.properties
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableCollectionContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableListContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableSetContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableValueContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableCollectionContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableDelegateTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableListContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableStaleContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableValueContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableCollectionContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableValueContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableCollectionContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableValueContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTMutableObservableValueContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTObservableValueContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ChangeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/CurrentRealm.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DelegatingRealm.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ListChangeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/MapChangeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/RealmTester.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SetChangeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SuiteBuilder.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ValueChangeEventTracker.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/core/tests/databinding/AggregateValidationStatusTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/DatabindingContextTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ListBindingTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ObservablesManagerTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/UpdateStrategyTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/UpdateValueStrategyTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ValueBindingTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/beans/BeansObservablesTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/beans/PojoObservablesTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/conversion/NumberToStringConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/conversion/StringToNumberConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/AbstractObservableTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/DiffsTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/Diffs_ListDiffTests.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/LockRealm.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ObservableTrackerTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ObservablesTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/RealmTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ThreadRealm.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/AbstractObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ComputedListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ListDiffTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ListDiffVisitorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/WritableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/AbstractObservableMapTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/CompositeMapTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/ObservableMapTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/WritableMapTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/AbstractObservableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/ObservableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/UnionSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/WritableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/AbstractObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/AbstractVetoableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/ComputedValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/WritableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/validation/MultiValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/validation/ValidationStatusTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/BindingMessagesTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/BindingStatusTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/QueueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/RandomAccessListIteratorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/Bean.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableListDecoratorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableSetDecoratorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableValueDecoratorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableArrayBasedListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableArrayBasedSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableMapTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/ListenerSupportTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/DateConversionSupportTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/IdentityConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/IntegerToStringConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToBigDecimalTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToBigIntegerConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToByteConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToDoubleConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToFloatConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToIntegerConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToLongConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToNumberTestHarness.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToShortConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/ObjectToPrimitiveValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StatusToStringConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToBooleanConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToByteConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToCharacterConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserByteTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserDoubleTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserFloatTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserIntegerTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserLongTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserShortTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserTestHarness.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToShortConverterTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ConstantObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/EmptyObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/EmptyObservableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/MapEntryObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ProxyObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ProxyObservableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/StalenessObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/AbstractStringToNumberValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToByteValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToDoubleValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToFloatValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToIntegerValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToLongValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToNumberValidatorTestHarness.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToShortValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToUnboundedNumberValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToByteValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToCharacterValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToDoubleValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToFloatValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToIntegerValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToLongValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToNumberValidatorTestHarness.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToShortValidatorTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/AbstractDefaultRealmTestCase.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/AbstractSWTTestCase.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSetup.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/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/CustomBeanModelType.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanUpdateValueStrategy.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/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/SWTObservablesTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableListContentProviderTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableListTreeContentProviderTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableMapLabelProviderTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableSetContentProviderTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableSetTreeContentProviderTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableValueEditingSupportTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ViewersObservablesTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/databinding/mask/internal/EditMaskLexerAndTokenTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/databinding/mask/internal/EditMaskParserTest.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/swt/ButtonObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueSelectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueTextTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboSingleSelectionObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CLabelObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueSelectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueTextTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboSingleSelectionObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ControlObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/DelayedObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/LabelObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ListSingleSelectionObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SWTObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueMaxTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueMinTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueSelectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ShellObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueMaxTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueMinTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueSelectionTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TableObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TableSingleSelectionObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TestCounterValueChangeListener.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextEditableObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueFocusOutTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueModifyTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ObservableCollectionTreeContentProviderTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ObservableViewerElementSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/SelectionProviderMultiSelectionObservableListTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/SelectionProviderSingleSelectionObservableValueTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementMapTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementSetTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementWrapperTest.java
    tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerInputObservableValueTest.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.forms/.classpath
    tests/org.eclipse.ui.tests.forms/.project
    tests/org.eclipse.ui.tests.forms/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.forms/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.forms/about.html
    tests/org.eclipse.ui.tests.forms/build.properties
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsPerformanceTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/AllLayoutTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/TestTableWrapLayout.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/performance/FormsPerformanceTest.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/plugin/FormsTestPlugin.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/AllUtilityTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormFontsTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormImagesTests.java
    tests/org.eclipse.ui.tests.forms/test.xml
    tests/org.eclipse.ui.tests.harness/.classpath
    tests/org.eclipse.ui.tests.harness/.cvsignore
    tests/org.eclipse.ui.tests.harness/.project
    tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.harness/about.html
    tests/org.eclipse.ui.tests.harness/build.properties
    tests/org.eclipse.ui.tests.harness/icons/anything.gif
    tests/org.eclipse.ui.tests.harness/plugin.xml
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/AllTests.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/UITestHarnessPlugin.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/tests/MocksTest.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ActionUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ArrayUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/AutomationUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/CallHistory.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DialogCheck.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EmptyPerspective.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileTool.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ImageTests.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/Mocks.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/TweakletCheckTest.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/AccessibilityTestPass.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FailureDialog.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FocusTestPass.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/IDialogTestPass.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/SizingTestPass.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/VerifyDialog.java
    tests/org.eclipse.ui.tests.performance/.classpath
    tests/org.eclipse.ui.tests.performance/.cvsignore
    tests/org.eclipse.ui.tests.performance/.project
    tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.ui.tests.performance/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.performance/about.html
    tests/org.eclipse.ui.tests.performance/build.properties
    tests/org.eclipse.ui.tests.performance/data/testContentType.zip
    tests/org.eclipse.ui.tests.performance/icons/anything.gif
    tests/org.eclipse.ui.tests.performance/icons/binary_co.gif
    tests/org.eclipse.ui.tests.performance/icons/dynamic.gif
    tests/org.eclipse.ui.tests.performance/icons/editor.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/anything.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/binary_co.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/dynamic.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/editor.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart1.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart2.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/view.gif
    tests/org.eclipse.ui.tests.performance/icons/mockeditorpart1.gif
    tests/org.eclipse.ui.tests.performance/icons/mockeditorpart2.gif
    tests/org.eclipse.ui.tests.performance/icons/view.gif
    tests/org.eclipse.ui.tests.performance/plugin.xml
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ComboViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTableViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTreeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListPopulationTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ProgressMonitorDialogPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestContentProvider.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestTreeContentProvider.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/SWTTreeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ShrinkingTreeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TableViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestElement.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestTreeElement.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeAddTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ViewerTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ActivitiesPerformanceSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/BasicPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/CommandsPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ContentDescriberForTestsOnly.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorPerformanceSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorSwitchTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorTestHelper.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/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/black_triangle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_circle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_square.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_triangle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_circle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_square.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_triangle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_circle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_square.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_star.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_triangle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/sample.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties
    tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/Activator.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/AllTests.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageDynamicTest.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageOverrideTest.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTest.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTextTest.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlackSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlueSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsCircleSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsElementSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsGreenSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsRedSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsSquareSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsStarSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsTriangleSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsColor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsElement.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsShape.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsAdvancedSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlackSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlueSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsCircleSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsElementSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsGreenSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsRedSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSectionDescriptorProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSquareSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsStarSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsTriangleSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsAbstractLabelSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlackSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlueSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsCircleSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsElementSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsGreenSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsRedSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsSquareSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsStarSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsTriangleSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsAdvancedTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsBlackTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsColorTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsElementTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsShapeTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsTabDescriptorProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTitleBarLabelProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTreeNode.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTypeMapper.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsView.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsViewContentProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Element.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Error.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/File.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Folder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Information.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Project.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Warning.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsContentProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsLabelProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelectionProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsView.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AbstractTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AdvancedTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/BasicTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/EmptyTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabItemSelectionListener.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPage.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPageContentManager.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/EmptyItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/ErrorItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FileItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FolderItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/IOverrideTestsItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/InformationItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/WarningItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AbstractTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AdvancedTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/BasicTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/EmptyTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/IOverrideTestsTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptorProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabListsContentsManager.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/InformationTwoSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/LabelSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/MessageSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/NameSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/ResourceSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptorProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsView.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/InformationTwoFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/LabelProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsPerspective.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsView.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsViewContentProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TypeMapper.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/test.xml
diff --git a/bundles/org.eclipse.core.commands/.classpath b/bundles/org.eclipse.core.commands/.classpath
deleted file mode 100644
index ce0c7a5..0000000
--- a/bundles/org.eclipse.core.commands/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.core.commands/.cvsignore b/bundles/org.eclipse.core.commands/.cvsignore
deleted file mode 100644
index fe99505..0000000
--- a/bundles/org.eclipse.core.commands/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-
diff --git a/bundles/org.eclipse.core.commands/.project b/bundles/org.eclipse.core.commands/.project
deleted file mode 100644
index d16fcce..0000000
--- a/bundles/org.eclipse.core.commands/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.commands</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 72e8a1b..0000000
--- a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,80 +0,0 @@
-#Tue Sep 11 09:41:20 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d3eca11..0000000
--- a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Mon Feb 25 16:17:52 EST 2008
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.4\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/bundles/org.eclipse.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 25d9303..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.4.0.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.core.commands,
- org.eclipse.core.commands.common,
- org.eclipse.core.commands.contexts,
- org.eclipse.core.commands.operations,
- org.eclipse.core.commands.util,
- org.eclipse.core.internal.commands.operations;x-internal:=true,
- org.eclipse.core.internal.commands.util;x-internal:=true
-Require-Bundle: org.eclipse.equinox.common;bundle-version="[3.2.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
diff --git a/bundles/org.eclipse.core.commands/about.html b/bundles/org.eclipse.core.commands/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.core.commands/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.commands/build.properties b/bundles/org.eclipse.core.commands/build.properties
deleted file mode 100644
index f926fc5..0000000
--- a/bundles/org.eclipse.core.commands/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-src.includes = about.html
-bin.includes = about.html,\
-               plugin.properties,\
-               .,\
-               META-INF/
diff --git a/bundles/org.eclipse.core.commands/plugin.properties b/bundles/org.eclipse.core.commands/plugin.properties
deleted file mode 100644
index 45b6297..0000000
--- a/bundles/org.eclipse.core.commands/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2004,2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Commands
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.java
deleted file mode 100644
index b703732..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.EventManager;
-
-/**
- * <p>
- * This class is a partial implementation of <code>IHandler</code>. This
- * abstract implementation provides support for handler listeners. You should
- * subclass from this method unless you want to implement your own listener
- * support. Subclasses should call
- * {@link AbstractHandler#fireHandlerChanged(HandlerEvent)}when the handler
- * changes. Subclasses can also override {@link AbstractHandler#isEnabled()} and
- * {@link AbstractHandler#isHandled()}.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class AbstractHandler extends EventManager implements IHandler2 {
-
-	/**
-	 * Track this base class enabled state.
-	 * 
-	 * @since 3.4
-	 */
-	private boolean baseEnabled = true;
-
-	/**
-	 * @see IHandler#addHandlerListener(IHandlerListener)
-	 */
-	public void addHandlerListener(final IHandlerListener handlerListener) {
-		addListenerObject(handlerListener);
-	}
-
-	/**
-	 * The default implementation does nothing. Subclasses who attach listeners
-	 * to other objects are encouraged to detach them in this method.
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#dispose()
-	 */
-	public void dispose() {
-		// Do nothing.
-	}
-
-	/**
-	 * Fires an event to all registered listeners describing changes to this
-	 * instance.
-	 * <p>
-	 * Subclasses may extend the definition of this method (i.e., if a different
-	 * type of listener can be attached to a subclass). This is used primarily
-	 * for support of <code>AbstractHandler</code> in
-	 * <code>org.eclipse.ui.workbench</code>, and clients should be wary of
-	 * overriding this behaviour. If this method is overridden, then the first
-	 * line of the method should be "<code>super.fireHandlerChanged(handlerEvent);</code>".
-	 * </p>
-	 * 
-	 * @param handlerEvent
-	 *            the event describing changes to this instance. Must not be
-	 *            <code>null</code>.
-	 */
-	protected void fireHandlerChanged(final HandlerEvent handlerEvent) {
-		if (handlerEvent == null) {
-			throw new NullPointerException();
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IHandlerListener listener = (IHandlerListener) listeners[i];
-			listener.handlerChanged(handlerEvent);
-		}
-	}
-
-	/**
-	 * Whether this handler is capable of executing at this time. Subclasses may
-	 * override this method. If clients override this method they should also
-	 * consider overriding {@link #setEnabled(Object)} so they can be notified
-	 * about framework execution contexts.
-	 * 
-	 * @return <code>true</code>
-	 * @see #setEnabled(Object)
-	 * @see #setBaseEnabled(boolean)
-	 */
-	public boolean isEnabled() {
-		return baseEnabled;
-	}
-
-	/**
-	 * Allow the default {@link #isEnabled()} to answer our enabled state. It
-	 * will fire a HandlerEvent if necessary. If clients use this method they
-	 * should also consider overriding {@link #setEnabled(Object)} so they can
-	 * be notified about framework execution contexts.
-	 * 
-	 * @param state
-	 *            the enabled state
-	 * @since 3.4
-	 */
-	protected void setBaseEnabled(boolean state) {
-		if (baseEnabled == state) {
-			return;
-		}
-		baseEnabled = state;
-		fireHandlerChanged(new HandlerEvent(this, true, false));
-	}
-
-	/**
-	 * Called by the framework to allow the handler to update its enabled state
-	 * by extracting the same information available at execution time. Clients
-	 * may override if they need to extract information from the application
-	 * context.
-	 * 
-	 * @param evaluationContext
-	 *            the application context. May be <code>null</code>
-	 * @since 3.4
-	 * @see #setBaseEnabled(boolean)
-	 */
-	public void setEnabled(Object evaluationContext) {
-	}
-
-	/**
-	 * Whether this handler is capable of handling delegated responsibilities at
-	 * this time. Subclasses may override this method.
-	 * 
-	 * @return <code>true</code>
-	 */
-	public boolean isHandled() {
-		return true;
-	}
-
-	/**
-	 * <p>
-	 * Returns true iff there is one or more IHandlerListeners attached to this
-	 * AbstractHandler.
-	 * </p>
-	 * <p>
-	 * Subclasses may extend the definition of this method (i.e., if a different
-	 * type of listener can be attached to a subclass). This is used primarily
-	 * for support of <code>AbstractHandler</code> in
-	 * <code>org.eclipse.ui.workbench</code>, and clients should be wary of
-	 * overriding this behaviour. If this method is overridden, then the return
-	 * value should include "<code>super.hasListeners() ||</code>".
-	 * </p>
-	 * 
-	 * @return true iff there is one or more IHandlerListeners attached to this
-	 *         AbstractHandler
-	 */
-	protected boolean hasListeners() {
-		return isListenerAttached();
-	}
-
-	/**
-	 * @see IHandler#removeHandlerListener(IHandlerListener)
-	 */
-	public void removeHandlerListener(final IHandlerListener handlerListener) {
-		removeListenerObject(handlerListener);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java
deleted file mode 100644
index 219c938..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * <p>
- * An abstract implementation of {@link IObjectWithState}. This provides basic
- * handling for adding and remove state. When state is added, the handler
- * attaches itself as a listener and fire a handleStateChange event to notify
- * this handler. When state is removed, the handler removes itself as a
- * listener.
- * </p>
- * <p>
- * Clients may extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class AbstractHandlerWithState extends AbstractHandler
-		implements IObjectWithState, IStateListener {
-
-	/**
-	 * The map of states currently held by this handler. If this handler has no
-	 * state (generally, when inactive), then this will be <code>null</code>.
-	 */
-	private Map states = null;
-
-	/**
-	 * <p>
-	 * Adds a state to this handler. This will add this handler as a listener to
-	 * the state, and then fire a handleStateChange so that the handler can
-	 * respond to the incoming state.
-	 * </p>
-	 * <p>
-	 * Clients may extend this method, but they should call this super method
-	 * first before doing anything else.
-	 * </p>
-	 * 
-	 * @param stateId
-	 *            The identifier indicating the type of state being added; must
-	 *            not be <code>null</code>.
-	 * @param state
-	 *            The state to add; must not be <code>null</code>.
-	 */
-	public void addState(final String stateId, final State state) {
-		if (state == null) {
-			throw new NullPointerException("Cannot add a null state"); //$NON-NLS-1$
-		}
-
-		if (states == null) {
-			states = new HashMap(3);
-		}
-		states.put(stateId, state);
-		state.addListener(this);
-		handleStateChange(state, null);
-	}
-
-	public final State getState(final String stateId) {
-		if ((states == null) || (states.isEmpty())) {
-			return null;
-		}
-
-		return (State) states.get(stateId);
-	}
-
-	public final String[] getStateIds() {
-		if ((states == null) || (states.isEmpty())) {
-			return null;
-		}
-
-		final Set stateIds = states.keySet();
-		return (String[]) stateIds.toArray(new String[stateIds.size()]);
-	}
-
-	/**
-	 * <p>
-	 * Removes a state from this handler. This will remove this handler as a
-	 * listener to the state. No event is fired to notify the handler of this
-	 * change.
-	 * </p>
-	 * <p>
-	 * Clients may extend this method, but they should call this super method
-	 * first before doing anything else.
-	 * </p>
-	 * 
-	 * @param stateId
-	 *            The identifier of the state to remove; must not be
-	 *            <code>null</code>.
-	 */
-	public void removeState(final String stateId) {
-		if (stateId == null) {
-			throw new NullPointerException("Cannot remove a null state"); //$NON-NLS-1$
-		}
-
-		final State state = (State) states.get(stateId);
-		if (state != null) {
-			state.removeListener(this);
-			if (states != null) {
-				states.remove(state);
-				if (states.isEmpty()) {
-					states = null;
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java
deleted file mode 100644
index bf79a3f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * <p>
- * Supports conversion between objects and strings for command parameter values.
- * Extenders must produce strings that identify objects (of a specific command
- * parameter type) as well as consume the strings to locate and return the
- * objects they identify.
- * </p>
- * <p>
- * This class offers multiple handlers of a command a consistent way of
- * converting string parameter values into the objects that the handlers would
- * prefer to deal with. This class also gives clients a way to serialize
- * object parameters as strings so that entire parameterized commands can be
- * serialized, stored and later deserialized and executed.
- * </p>
- * <p>
- * This class will typically be extended so the subclass can be referenced from
- * the <code>converter</code> attribute of the
- * <code>commandParameterType</code> elemement of the
- * <code>org.eclipse.ui.commands</code> extension-point. Objects implementing
- * this interface may also be passed directly to
- * {@link ParameterType#define(String, AbstractParameterValueConverter)} by
- * clients.
- * </p>
- * 
- * @see ParameterType#define(String, AbstractParameterValueConverter)
- * @see ParameterizedCommand#serialize()
- * @since 3.2
- */
-public abstract class AbstractParameterValueConverter {
-
-	/**
-	 * Converts a string encoded command parameter value into the parameter
-	 * value object.
-	 * 
-	 * @param parameterValue
-	 *            a command parameter value string describing an object; may be
-	 *            <code>null</code>
-	 * @return the object described by the command parameter value string; may
-	 *         be <code>null</code>
-	 * @throws ParameterValueConversionException
-	 *             if an object cannot be produced from the
-	 *             <code>parameterValue</code> string
-	 */
-	public abstract Object convertToObject(final String parameterValue)
-			throws ParameterValueConversionException;
-
-	/**
-	 * Converts a command parameter value object into a string that encodes a
-	 * reference to the object or serialization of the object.
-	 * 
-	 * @param parameterValue
-	 *            an object to convert into an identifying string; may be
-	 *            <code>null</code>
-	 * @return a string describing the provided object; may be <code>null</code>
-	 * @throws ParameterValueConversionException
-	 *             if a string reference or serialization cannot be provided for
-	 *             the <code>parameterValue</code>
-	 */
-	public abstract String convertToString(final Object parameterValue)
-			throws ParameterValueConversionException;
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java
deleted file mode 100644
index e8c968f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A logical group for a set of commands. A command belongs to exactly one
- * category. The category has no functional effect, but may be used in graphical
- * tools that want to group the set of commands somehow.
- * </p>
- * 
- * @since 3.1
- */
-public final class Category extends NamedHandleObject {
-
-	/**
-	 * A collection of objects listening to changes to this category. This
-	 * collection is <code>null</code> if there are no listeners.
-	 */
-	private Collection categoryListeners;
-
-	/**
-	 * Constructs a new instance of <code>Category</code> based on the given
-	 * identifier. When a category is first constructed, it is undefined.
-	 * Category should only be constructed by the <code>CommandManager</code>
-	 * to ensure that identifier remain unique.
-	 * 
-	 * @param id
-	 *            The identifier for the category. This value must not be
-	 *            <code>null</code>, and must be unique amongst all
-	 *            categories.
-	 */
-	Category(final String id) {
-		super(id);
-	}
-
-	/**
-	 * Adds a listener to this category that will be notified when this
-	 * category's state changes.
-	 * 
-	 * @param categoryListener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	public final void addCategoryListener(
-			final ICategoryListener categoryListener) {
-		if (categoryListener == null) {
-			throw new NullPointerException();
-		}
-		if (categoryListeners == null) {
-			categoryListeners = new ArrayList();
-		}
-		if (!categoryListeners.contains(categoryListener)) {
-			categoryListeners.add(categoryListener);
-		}
-	}
-
-	/**
-	 * <p>
-	 * Defines this category by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 */
-	public final void define(final String name, final String description) {
-		if (name == null) {
-			throw new NullPointerException(
-					"The name of a command cannot be null"); //$NON-NLS-1$
-		}
-
-		final boolean definedChanged = !this.defined;
-		this.defined = true;
-
-		final boolean nameChanged = !Util.equals(this.name, name);
-		this.name = name;
-
-		final boolean descriptionChanged = !Util.equals(this.description,
-				description);
-		this.description = description;
-
-		fireCategoryChanged(new CategoryEvent(this, definedChanged,
-				descriptionChanged, nameChanged));
-	}
-
-	/**
-	 * Notifies the listeners for this category that it has changed in some way.
-	 * 
-	 * @param categoryEvent
-	 *            The event to send to all of the listener; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireCategoryChanged(final CategoryEvent categoryEvent) {
-		if (categoryEvent == null) {
-			throw new NullPointerException();
-		}
-		if (categoryListeners != null) {
-			final Iterator listenerItr = categoryListeners.iterator();
-			while (listenerItr.hasNext()) {
-				final ICategoryListener listener = (ICategoryListener) listenerItr
-						.next();
-				listener.categoryChanged(categoryEvent);
-			}
-		}
-	}
-
-	/**
-	 * Removes a listener from this category.
-	 * 
-	 * @param categoryListener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 * 
-	 */
-	public final void removeCategoryListener(
-			final ICategoryListener categoryListener) {
-		if (categoryListener == null) {
-			throw new NullPointerException();
-		}
-
-		if (categoryListeners != null) {
-			categoryListeners.remove(categoryListener);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.common.HandleObject#toString()
-	 */
-	public String toString() {
-		if (string == null) {
-			final StringBuffer stringBuffer = new StringBuffer();
-			stringBuffer.append("Category("); //$NON-NLS-1$
-            stringBuffer.append(id);
-            stringBuffer.append(',');
-            stringBuffer.append(name);
-            stringBuffer.append(',');
-            stringBuffer.append(description);
-            stringBuffer.append(',');
-			stringBuffer.append(defined);
-            stringBuffer.append(')');
-			string = stringBuffer.toString();
-		}
-		return string;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.common.HandleObject#undefine()
-	 */
-	public void undefine() {
-		string = null;
-
-		final boolean definedChanged = defined;
-		defined = false;
-
-		final boolean nameChanged = name != null;
-		name = null;
-
-		final boolean descriptionChanged = description != null;
-		description = null;
-
-		fireCategoryChanged(new CategoryEvent(this, definedChanged,
-				descriptionChanged, nameChanged));
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.java
deleted file mode 100644
index 9675802..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.AbstractNamedHandleEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>Category</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see ICategoryListener#categoryChanged(CategoryEvent)
- */
-public final class CategoryEvent extends AbstractNamedHandleEvent {
-
-	/**
-	 * The category that has changed; this value is never <code>null</code>.
-	 */
-	private final Category category;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param category
-	 *            the instance of the interface that changed.
-	 * @param definedChanged
-	 *            true, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            true, iff the description property changed.
-	 * @param nameChanged
-	 *            true, iff the name property changed.
-	 */
-	public CategoryEvent(final Category category, final boolean definedChanged,
-			final boolean descriptionChanged, final boolean nameChanged) {
-		super(definedChanged, descriptionChanged, nameChanged);
-
-		if (category == null) {
-			throw new NullPointerException();
-		}
-		this.category = category;
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final Category getCategory() {
-		return category;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java
deleted file mode 100644
index f3f25a4..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java
+++ /dev/null
@@ -1,1118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.StringWriter;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.util.Tracing;
-import org.eclipse.core.internal.commands.util.Util;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-
-/**
- * <p>
- * A command is an abstract representation for some semantic behaviour. It is
- * not the actual implementation of this behaviour, nor is it the visual
- * appearance of this behaviour in the user interface. Instead, it is a bridge
- * between the two.
- * </p>
- * <p>
- * The concept of a command is based on the command design pattern. The notable
- * difference is how the command delegates responsibility for execution. Rather
- * than allowing concrete subclasses, it uses a handler mechanism (see the
- * <code>handlers</code> extension point). This provides another level of
- * indirection.
- * </p>
- * <p>
- * A command will exist in two states: defined and undefined. A command is
- * defined if it is declared in the XML of a resolved plug-in. If the plug-in is
- * unloaded or the command is simply not declared, then it is undefined. Trying
- * to reference an undefined command will succeed, but trying to access any of
- * its functionality will fail with a <code>NotDefinedException</code>. If
- * you need to know when a command changes from defined to undefined (or vice
- * versa), then attach a command listener.
- * </p>
- * <p>
- * Commands are mutable and will change as their definition changes.
- * </p>
- * 
- * @since 3.1
- */
-public final class Command extends NamedHandleObjectWithState implements
-		Comparable {
-
-	/**
-	 * This flag can be set to <code>true</code> if commands should print
-	 * information to <code>System.out</code> when executing.
-	 */
-	public static boolean DEBUG_COMMAND_EXECUTION = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if commands should print
-	 * information to <code>System.out</code> when changing handlers.
-	 */
-	public static boolean DEBUG_HANDLERS = false;
-
-	/**
-	 * This flag can be set to a particular command identifier if only that
-	 * command should print information to <code>System.out</code> when
-	 * changing handlers.
-	 */
-	public static String DEBUG_HANDLERS_COMMAND_ID = null;
-
-	/**
-	 * The category to which this command belongs. This value should not be
-	 * <code>null</code> unless the command is undefined.
-	 */
-	private Category category = null;
-
-	/**
-	 * A collection of objects listening to the execution of this command. This
-	 * collection is <code>null</code> if there are no listeners.
-	 */
-	private transient ListenerList executionListeners = null;
-
-	/**
-	 * The handler currently associated with this command. This value may be
-	 * <code>null</code> if there is no handler currently.
-	 */
-	private transient IHandler handler = null;
-
-	/**
-	 * The help context identifier for this command. This can be
-	 * <code>null</code> if there is no help currently associated with the
-	 * command.
-	 * 
-	 * @since 3.2
-	 */
-	private String helpContextId;
-
-	/**
-	 * The ordered array of parameters understood by this command. This value
-	 * may be <code>null</code> if there are no parameters, or if the command
-	 * is undefined. It may also be empty.
-	 */
-	private IParameter[] parameters = null;
-
-	/**
-	 * The type of the return value of this command. This value may be
-	 * <code>null</code> if the command does not declare a return type.
-	 * 
-	 * @since 3.2
-	 */
-	private ParameterType returnType = null;
-
-	/**
-	 * Our command will listen to the active handler for enablement changes so
-	 * that they can be fired from the command itself.
-	 * 
-	 * @since 3.3
-	 */
-	private IHandlerListener handlerListener;
-
-	/**
-	 * Constructs a new instance of <code>Command</code> based on the given
-	 * identifier. When a command is first constructed, it is undefined.
-	 * Commands should only be constructed by the <code>CommandManager</code>
-	 * to ensure that the identifier remains unique.
-	 * 
-	 * @param id
-	 *            The identifier for the command. This value must not be
-	 *            <code>null</code>, and must be unique amongst all commands.
-	 */
-	Command(final String id) {
-		super(id);
-	}
-
-	/**
-	 * Adds a listener to this command that will be notified when this command's
-	 * state changes.
-	 * 
-	 * @param commandListener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	public final void addCommandListener(final ICommandListener commandListener) {
-		if (commandListener == null) {
-			throw new NullPointerException("Cannot add a null command listener"); //$NON-NLS-1$
-		}
-		addListenerObject(commandListener);
-	}
-
-	/**
-	 * Adds a listener to this command that will be notified when this command
-	 * is about to execute.
-	 * 
-	 * @param executionListener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	public final void addExecutionListener(
-			final IExecutionListener executionListener) {
-		if (executionListener == null) {
-			throw new NullPointerException(
-					"Cannot add a null execution listener"); //$NON-NLS-1$
-		}
-
-		if (executionListeners == null) {
-			executionListeners = new ListenerList(ListenerList.IDENTITY);
-		}
-
-		executionListeners.add(executionListener);
-	}
-
-	/**
-	 * <p>
-	 * Adds a state to this command. This will add this state to the active
-	 * handler, if the active handler is an instance of {@link IObjectWithState}.
-	 * </p>
-	 * <p>
-	 * A single instance of {@link State} cannot be registered with multiple
-	 * commands. Each command requires its own unique instance.
-	 * </p>
-	 * 
-	 * @param id
-	 *            The identifier of the state to add; must not be
-	 *            <code>null</code>.
-	 * @param state
-	 *            The state to add; must not be <code>null</code>.
-	 * @since 3.2
-	 */
-	public void addState(final String id, final State state) {
-		super.addState(id, state);
-		state.setId(id);
-		if (handler instanceof IObjectWithState) {
-			((IObjectWithState) handler).addState(id, state);
-		}
-	}
-
-	/**
-	 * Compares this command with another command by comparing each of its
-	 * non-transient attributes.
-	 * 
-	 * @param object
-	 *            The object with which to compare; must be an instance of
-	 *            <code>Command</code>.
-	 * @return A negative integer, zero or a postivie integer, if the object is
-	 *         greater than, equal to or less than this command.
-	 */
-	public final int compareTo(final Object object) {
-		final Command castedObject = (Command) object;
-		int compareTo = Util.compare(category, castedObject.category);
-		if (compareTo == 0) {
-			compareTo = Util.compare(defined, castedObject.defined);
-			if (compareTo == 0) {
-				compareTo = Util.compare(description, castedObject.description);
-				if (compareTo == 0) {
-					compareTo = Util.compare(handler, castedObject.handler);
-					if (compareTo == 0) {
-						compareTo = Util.compare(id, castedObject.id);
-						if (compareTo == 0) {
-							compareTo = Util.compare(name, castedObject.name);
-							if (compareTo == 0) {
-								compareTo = Util.compare(parameters,
-										castedObject.parameters);
-							}
-						}
-					}
-				}
-			}
-		}
-		return compareTo;
-	}
-
-	/**
-	 * <p>
-	 * Defines this command by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 * @param category
-	 *            The category for this command; must not be <code>null</code>.
-	 * @since 3.2
-	 */
-	public final void define(final String name, final String description,
-			final Category category) {
-		define(name, description, category, null);
-	}
-
-	/**
-	 * <p>
-	 * Defines this command by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 * @param category
-	 *            The category for this command; must not be <code>null</code>.
-	 * @param parameters
-	 *            The parameters understood by this command. This value may be
-	 *            either <code>null</code> or empty if the command does not
-	 *            accept parameters.
-	 */
-	public final void define(final String name, final String description,
-			final Category category, final IParameter[] parameters) {
-		define(name, description, category, parameters, null);
-	}
-
-	/**
-	 * <p>
-	 * Defines this command by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 * @param category
-	 *            The category for this command; must not be <code>null</code>.
-	 * @param parameters
-	 *            The parameters understood by this command. This value may be
-	 *            either <code>null</code> or empty if the command does not
-	 *            accept parameters.
-	 * @param returnType
-	 *            The type of value returned by this command. This value may be
-	 *            <code>null</code> if the command does not declare a return
-	 *            type.
-	 * @since 3.2
-	 */
-	public final void define(final String name, final String description,
-			final Category category, final IParameter[] parameters,
-			ParameterType returnType) {
-		define(name, description, category, parameters, returnType, null);
-	}
-
-	/**
-	 * <p>
-	 * Defines this command by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 * @param category
-	 *            The category for this command; must not be <code>null</code>.
-	 * @param parameters
-	 *            The parameters understood by this command. This value may be
-	 *            either <code>null</code> or empty if the command does not
-	 *            accept parameters.
-	 * @param returnType
-	 *            The type of value returned by this command. This value may be
-	 *            <code>null</code> if the command does not declare a return
-	 *            type.
-	 * @param helpContextId
-	 *            The identifier of the help context to associate with this
-	 *            command; may be <code>null</code> if this command does not
-	 *            have any help associated with it.
-	 * @since 3.2
-	 */
-	public final void define(final String name, final String description,
-			final Category category, final IParameter[] parameters,
-			ParameterType returnType, final String helpContextId) {
-		if (name == null) {
-			throw new NullPointerException(
-					"The name of a command cannot be null"); //$NON-NLS-1$
-		}
-
-		if (category == null) {
-			throw new NullPointerException(
-					"The category of a command cannot be null"); //$NON-NLS-1$
-		}
-
-		final boolean definedChanged = !this.defined;
-		this.defined = true;
-
-		final boolean nameChanged = !Util.equals(this.name, name);
-		this.name = name;
-
-		final boolean descriptionChanged = !Util.equals(this.description,
-				description);
-		this.description = description;
-
-		final boolean categoryChanged = !Util.equals(this.category, category);
-		this.category = category;
-
-		final boolean parametersChanged = !Util.equals(this.parameters,
-				parameters);
-		this.parameters = parameters;
-
-		final boolean returnTypeChanged = !Util.equals(this.returnType,
-				returnType);
-		this.returnType = returnType;
-
-		final boolean helpContextIdChanged = !Util.equals(this.helpContextId,
-				helpContextId);
-		this.helpContextId = helpContextId;
-
-		fireCommandChanged(new CommandEvent(this, categoryChanged,
-				definedChanged, descriptionChanged, false, nameChanged,
-				parametersChanged, returnTypeChanged, helpContextIdChanged));
-	}
-
-	/**
-	 * Executes this command by delegating to the current handler, if any. If
-	 * the debugging flag is set, then this method prints information about
-	 * which handler is selected for performing this command. This method will
-	 * succeed regardless of whether the command is enabled or defined. It is
-	 * generally preferred to call {@link #executeWithChecks(ExecutionEvent)}.
-	 * 
-	 * @param event
-	 *            An event containing all the information about the current
-	 *            state of the application; must not be <code>null</code>.
-	 * @return The result of the execution; may be <code>null</code>. This
-	 *         result will be available to the client executing the command, and
-	 *         execution listeners.
-	 * @throws ExecutionException
-	 *             If the handler has problems executing this command.
-	 * @throws NotHandledException
-	 *             If there is no handler.
-	 * @deprecated Please use {@link #executeWithChecks(ExecutionEvent)}
-	 *             instead.
-	 */
-	public final Object execute(final ExecutionEvent event)
-			throws ExecutionException, NotHandledException {
-		firePreExecute(event);
-		final IHandler handler = this.handler;
-
-		// Perform the execution, if there is a handler.
-		if ((handler != null) && (handler.isHandled())) {
-			try {
-				final Object returnValue = handler.execute(event);
-				firePostExecuteSuccess(returnValue);
-				return returnValue;
-			} catch (final ExecutionException e) {
-				firePostExecuteFailure(e);
-				throw e;
-			}
-		}
-
-		final NotHandledException e = new NotHandledException(
-				"There is no handler to execute. " + getId()); //$NON-NLS-1$
-		fireNotHandled(e);
-		throw e;
-	}
-
-	/**
-	 * Executes this command by delegating to the current handler, if any. If
-	 * the debugging flag is set, then this method prints information about
-	 * which handler is selected for performing this command. This does checks
-	 * to see if the command is enabled and defined. If it is not both enabled
-	 * and defined, then the execution listeners will be notified and an
-	 * exception thrown.
-	 * 
-	 * @param event
-	 *            An event containing all the information about the current
-	 *            state of the application; must not be <code>null</code>.
-	 * @return The result of the execution; may be <code>null</code>. This
-	 *         result will be available to the client executing the command, and
-	 *         execution listeners.
-	 * @throws ExecutionException
-	 *             If the handler has problems executing this command.
-	 * @throws NotDefinedException
-	 *             If the command you are trying to execute is not defined.
-	 * @throws NotEnabledException
-	 *             If the command you are trying to execute is not enabled.
-	 * @throws NotHandledException
-	 *             If there is no handler.
-	 * @since 3.2
-	 */
-	public final Object executeWithChecks(final ExecutionEvent event)
-			throws ExecutionException, NotDefinedException,
-			NotEnabledException, NotHandledException {
-		firePreExecute(event);
-		final IHandler handler = this.handler;
-
-		if (!isDefined()) {
-			final NotDefinedException exception = new NotDefinedException(
-					"Trying to execute a command that is not defined. " //$NON-NLS-1$
-							+ getId());
-			fireNotDefined(exception);
-			throw exception;
-		}
-
-		// Perform the execution, if there is a handler.
-		if ((handler != null) && (handler.isHandled())) {
-			setEnabled(event.getApplicationContext());
-			if (!isEnabled()) {
-				final NotEnabledException exception = new NotEnabledException(
-						"Trying to execute the disabled command " + getId()); //$NON-NLS-1$
-				fireNotEnabled(exception);
-				throw exception;
-			}
-
-			try {
-				final Object returnValue = handler.execute(event);
-				firePostExecuteSuccess(returnValue);
-				return returnValue;
-			} catch (final ExecutionException e) {
-				firePostExecuteFailure(e);
-				throw e;
-			}
-		}
-
-		final NotHandledException e = new NotHandledException(
-				"There is no handler to execute for command " + getId()); //$NON-NLS-1$
-		fireNotHandled(e);
-		throw e;
-	}
-
-	/**
-	 * Notifies the listeners for this command that it has changed in some way.
-	 * 
-	 * @param commandEvent
-	 *            The event to send to all of the listener; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireCommandChanged(final CommandEvent commandEvent) {
-		if (commandEvent == null) {
-			throw new NullPointerException("Cannot fire a null event"); //$NON-NLS-1$
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final ICommandListener listener = (ICommandListener) listeners[i];
-			SafeRunner.run(new ISafeRunnable() {
-				public void handleException(Throwable exception) {
-				}
-
-				public void run() throws Exception {
-					listener.commandChanged(commandEvent);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute has failed because the command is not defined.
-	 * 
-	 * @param e
-	 *            The exception that is about to be thrown; never
-	 *            <code>null</code>.
-	 * @since 3.2
-	 */
-	private final void fireNotDefined(final NotDefinedException e) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "not defined: id=" + getId() + "; exception=" + e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final Object object = listeners[i];
-				if (object instanceof IExecutionListenerWithChecks) {
-					final IExecutionListenerWithChecks listener = (IExecutionListenerWithChecks) object;
-					listener.notDefined(getId(), e);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute has failed because there is no handler.
-	 * 
-	 * @param e
-	 *            The exception that is about to be thrown; never
-	 *            <code>null</code>.
-	 * @since 3.2
-	 */
-	private final void fireNotEnabled(final NotEnabledException e) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "not enabled: id=" + getId() + "; exception=" + e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final Object object = listeners[i];
-				if (object instanceof IExecutionListenerWithChecks) {
-					final IExecutionListenerWithChecks listener = (IExecutionListenerWithChecks) object;
-					listener.notEnabled(getId(), e);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute has failed because there is no handler.
-	 * 
-	 * @param e
-	 *            The exception that is about to be thrown; never
-	 *            <code>null</code>.
-	 */
-	private final void fireNotHandled(final NotHandledException e) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "not handled: id=" + getId() + "; exception=" + e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final IExecutionListener listener = (IExecutionListener) listeners[i];
-				listener.notHandled(getId(), e);
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute has failed during the execution.
-	 * 
-	 * @param e
-	 *            The exception that has been thrown; never <code>null</code>.
-	 *            After this method completes, the exception will be thrown
-	 *            again.
-	 */
-	private final void firePostExecuteFailure(final ExecutionException e) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "failure: id=" + getId() + "; exception=" + e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final IExecutionListener listener = (IExecutionListener) listeners[i];
-				listener.postExecuteFailure(getId(), e);
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an execution has
-	 * completed successfully.
-	 * 
-	 * @param returnValue
-	 *            The return value from the command; may be <code>null</code>.
-	 */
-	private final void firePostExecuteSuccess(final Object returnValue) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "success: id=" + getId() + "; returnValue=" //$NON-NLS-1$ //$NON-NLS-2$
-					+ returnValue);
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final IExecutionListener listener = (IExecutionListener) listeners[i];
-				listener.postExecuteSuccess(getId(), returnValue);
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute is about to start.
-	 * 
-	 * @param event
-	 *            The execution event that will be used; never <code>null</code>.
-	 */
-	private final void firePreExecute(final ExecutionEvent event) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "starting: id=" + getId() + "; event=" + event); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final IExecutionListener listener = (IExecutionListener) listeners[i];
-				listener.preExecute(getId(), event);
-			}
-		}
-	}
-
-	/**
-	 * Returns the category for this command.
-	 * 
-	 * @return The category for this command; never <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 */
-	public final Category getCategory() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get the category from an undefined command. " //$NON-NLS-1$
-							+ id);
-		}
-
-		return category;
-	}
-
-	/**
-	 * Returns the current handler for this command. This is used by the command
-	 * manager for determining the appropriate help context identifiers and by
-	 * the command service to allow handlers to update elements.
-	 * <p>
-	 * This value can change at any time and should never be cached.
-	 * </p>
-	 * 
-	 * @return The current handler for this command; may be <code>null</code>.
-	 * @since 3.3
-	 */
-	public final IHandler getHandler() {
-		return handler;
-	}
-
-	/**
-	 * Returns the help context identifier associated with this command. This
-	 * method should not be called by clients. Clients should use
-	 * {@link CommandManager#getHelpContextId(Command)} instead.
-	 * 
-	 * @return The help context identifier for this command; may be
-	 *         <code>null</code> if there is none.
-	 * @since 3.2
-	 */
-	final String getHelpContextId() {
-		return helpContextId;
-	}
-
-	/**
-	 * Returns the parameter with the provided id or <code>null</code> if this
-	 * command does not have a parameter with the id.
-	 * 
-	 * @param parameterId
-	 *            The id of the parameter to retrieve.
-	 * @return The parameter with the provided id or <code>null</code> if this
-	 *         command does not have a parameter with the id.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 * @since 3.2
-	 */
-	public final IParameter getParameter(final String parameterId)
-			throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get a parameter from an undefined command. " //$NON-NLS-1$
-							+ id);
-		}
-
-		if (parameters == null) {
-			return null;
-		}
-
-		for (int i = 0; i < parameters.length; i++) {
-			final IParameter parameter = parameters[i];
-			if (parameter.getId().equals(parameterId)) {
-				return parameter;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns the parameters for this command. This call triggers provides a
-	 * copy of the array, so excessive calls to this method should be avoided.
-	 * 
-	 * @return The parameters for this command. This value might be
-	 *         <code>null</code>, if the command has no parameters.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 */
-	public final IParameter[] getParameters() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get the parameters from an undefined command. " //$NON-NLS-1$
-							+ id);
-		}
-
-		if ((parameters == null) || (parameters.length == 0)) {
-			return null;
-		}
-
-		final IParameter[] returnValue = new IParameter[parameters.length];
-		System.arraycopy(parameters, 0, returnValue, 0, parameters.length);
-		return returnValue;
-	}
-
-	/**
-	 * Returns the {@link ParameterType} for the parameter with the provided id
-	 * or <code>null</code> if this command does not have a parameter type
-	 * with the id.
-	 * 
-	 * @param parameterId
-	 *            The id of the parameter to retrieve the {@link ParameterType}
-	 *            of.
-	 * @return The {@link ParameterType} for the parameter with the provided id
-	 *         or <code>null</code> if this command does not have a parameter
-	 *         type with the provided id.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 * @since 3.2
-	 */
-	public final ParameterType getParameterType(final String parameterId)
-			throws NotDefinedException {
-		final IParameter parameter = getParameter(parameterId);
-		if (parameter instanceof ITypedParameter) {
-			final ITypedParameter parameterWithType = (ITypedParameter) parameter;
-			return parameterWithType.getParameterType();
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the {@link ParameterType} for the return value of this command or
-	 * <code>null</code> if this command does not declare a return value
-	 * parameter type.
-	 * 
-	 * @return The {@link ParameterType} for the return value of this command or
-	 *         <code>null</code> if this command does not declare a return
-	 *         value parameter type.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 * @since 3.2
-	 */
-	public final ParameterType getReturnType() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get the return type of an undefined command. " //$NON-NLS-1$
-							+ id);
-		}
-
-		return returnType;
-	}
-
-	/**
-	 * Returns whether this command has a handler, and whether this handler is
-	 * also handled and enabled.
-	 * 
-	 * @return <code>true</code> if the command is handled; <code>false</code>
-	 *         otherwise.
-	 */
-	public final boolean isEnabled() {
-		if (handler == null) {
-			return false;
-		}
-
-		try {
-			return handler.isEnabled();
-		} catch (Exception e) {
-			if (DEBUG_HANDLERS) {
-				// since this has the ability to generate megs of logs, only
-				// provide information if tracing
-				Tracing.printTrace("HANDLERS", "Handler " + handler  + " for "  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-						+ id + " threw unexpected exception"); //$NON-NLS-1$ 
-				e.printStackTrace(System.out);
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * Called be the framework to allow the handler to update its enabled state.
-	 * 
-	 * @param evaluationContext
-	 *            the state to evaluate against. May be <code>null</code>
-	 *            which indicates that the handler can query whatever model that
-	 *            is necessary.  This context must not be cached.
-	 * @since 3.4
-	 */
-	public void setEnabled(Object evaluationContext) {
-		if (handler instanceof IHandler2) {
-			((IHandler2) handler).setEnabled(evaluationContext);
-		}
-	}
-
-	/**
-	 * Returns whether this command has a handler, and whether this handler is
-	 * also handled.
-	 * 
-	 * @return <code>true</code> if the command is handled; <code>false</code>
-	 *         otherwise.
-	 */
-	public final boolean isHandled() {
-		if (handler == null) {
-			return false;
-		}
-
-		return handler.isHandled();
-	}
-
-	/**
-	 * Removes a listener from this command.
-	 * 
-	 * @param commandListener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 * 
-	 */
-	public final void removeCommandListener(
-			final ICommandListener commandListener) {
-		if (commandListener == null) {
-			throw new NullPointerException(
-					"Cannot remove a null command listener"); //$NON-NLS-1$
-		}
-
-		removeListenerObject(commandListener);
-	}
-
-	/**
-	 * Removes a listener from this command.
-	 * 
-	 * @param executionListener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 * 
-	 */
-	public final void removeExecutionListener(
-			final IExecutionListener executionListener) {
-		if (executionListener == null) {
-			throw new NullPointerException(
-					"Cannot remove a null execution listener"); //$NON-NLS-1$
-		}
-
-		if (executionListeners != null) {
-			executionListeners.remove(executionListener);
-			if (executionListeners.isEmpty()) {
-				executionListeners = null;
-			}
-		}
-	}
-
-	/**
-	 * <p>
-	 * Removes a state from this command. This will remove the state from the
-	 * active handler, if the active handler is an instance of
-	 * {@link IObjectWithState}.
-	 * </p>
-	 * 
-	 * @param stateId
-	 *            The identifier of the state to remove; must not be
-	 *            <code>null</code>.
-	 * @since 3.2
-	 */
-	public void removeState(final String stateId) {
-		if (handler instanceof IObjectWithState) {
-			((IObjectWithState) handler).removeState(stateId);
-		}
-		super.removeState(stateId);
-	}
-
-	/**
-	 * Changes the handler for this command. This will remove all the state from
-	 * the currently active handler (if any), and add it to <code>handler</code>.
-	 * If debugging is turned on, then this will also print information about
-	 * the change to <code>System.out</code>.
-	 * 
-	 * @param handler
-	 *            The new handler; may be <code>null</code> if none.
-	 * @return <code>true</code> if the handler changed; <code>false</code>
-	 *         otherwise.
-	 */
-	public final boolean setHandler(final IHandler handler) {
-		if (Util.equals(handler, this.handler)) {
-			return false;
-		}
-
-		// Swap the state around.
-		final String[] stateIds = getStateIds();
-		if (stateIds != null) {
-			for (int i = 0; i < stateIds.length; i++) {
-				final String stateId = stateIds[i];
-				if (this.handler instanceof IObjectWithState) {
-					((IObjectWithState) this.handler).removeState(stateId);
-				}
-				if (handler instanceof IObjectWithState) {
-					final State stateToAdd = getState(stateId);
-					((IObjectWithState) handler).addState(stateId, stateToAdd);
-				}
-			}
-		}
-
-		boolean enabled = isEnabled();
-		if (this.handler != null) {
-			this.handler.removeHandlerListener(getHandlerListener());
-		}
-
-		// Update the handler, and flush the string representation.
-		this.handler = handler;
-		if (this.handler != null) {
-			this.handler.addHandlerListener(getHandlerListener());
-		}
-		string = null;
-
-		// Debugging output
-		if ((DEBUG_HANDLERS)
-				&& ((DEBUG_HANDLERS_COMMAND_ID == null) || (DEBUG_HANDLERS_COMMAND_ID
-						.equals(id)))) {
-			final StringBuffer buffer = new StringBuffer("Command('"); //$NON-NLS-1$
-			buffer.append(id);
-			buffer.append("') has changed to "); //$NON-NLS-1$
-			if (handler == null) {
-				buffer.append("no handler"); //$NON-NLS-1$
-			} else {
-				buffer.append('\'');
-				buffer.append(handler);
-				buffer.append("' as its handler"); //$NON-NLS-1$
-			}
-			Tracing.printTrace("HANDLERS", buffer.toString()); //$NON-NLS-1$
-		}
-
-		// Send notification
-		fireCommandChanged(new CommandEvent(this, false, false, false, true,
-				false, false, false, false, enabled != isEnabled()));
-
-		return true;
-	}
-
-	/**
-	 * @return the handler listener
-	 */
-	private IHandlerListener getHandlerListener() {
-		if (handlerListener == null) {
-			handlerListener = new IHandlerListener() {
-				public void handlerChanged(HandlerEvent handlerEvent) {
-					boolean enabledChanged = handlerEvent.isEnabledChanged();
-					boolean handledChanged = handlerEvent.isHandledChanged();
-					fireCommandChanged(new CommandEvent(Command.this, false,
-							false, false, handledChanged, false, false, false,
-							false, enabledChanged));
-				}
-			};
-		}
-		return handlerListener;
-	}
-
-	/**
-	 * The string representation of this command -- for debugging purposes only.
-	 * This string should not be shown to an end user.
-	 * 
-	 * @return The string representation; never <code>null</code>.
-	 */
-	public final String toString() {
-		if (string == null) {
-			final StringWriter sw = new StringWriter();
-			final BufferedWriter buffer = new BufferedWriter(sw);
-			try {
-				buffer.write("Command("); //$NON-NLS-1$
-				buffer.write(id);
-				buffer.write(',');
-				buffer.write(name==null?"":name); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.newLine();
-				buffer.write("\t\t"); //$NON-NLS-1$
-				buffer.write(description==null?"":description); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.newLine();
-				buffer.write("\t\t"); //$NON-NLS-1$
-				buffer.write(category==null?"":category.toString()); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.newLine();
-				buffer.write("\t\t"); //$NON-NLS-1$
-				buffer.write(handler==null?"":handler.toString()); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.newLine();
-				buffer.write("\t\t"); //$NON-NLS-1$
-				buffer.write(parameters==null?"":parameters.toString()); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.write(returnType==null?"":returnType.toString()); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.write(""+defined); //$NON-NLS-1$
-				buffer.write(')');
-				buffer.flush();
-			} catch (IOException e) {
-				// should never get this exception
-			}
-			string = sw.toString();
-		}
-		return string;
-	}
-
-	/**
-	 * Makes this command become undefined. This has the side effect of changing
-	 * the name and description to <code>null</code>. This also removes all
-	 * state and disposes of it. Notification is sent to all listeners.
-	 */
-	public final void undefine() {
-		boolean enabledChanged = isEnabled();
-
-		string = null;
-
-		final boolean definedChanged = defined;
-		defined = false;
-
-		final boolean nameChanged = name != null;
-		name = null;
-
-		final boolean descriptionChanged = description != null;
-		description = null;
-
-		final boolean categoryChanged = category != null;
-		category = null;
-
-		final boolean parametersChanged = parameters != null;
-		parameters = null;
-
-		final boolean returnTypeChanged = returnType != null;
-		returnType = null;
-
-		final String[] stateIds = getStateIds();
-		if (stateIds != null) {
-			if (handler instanceof IObjectWithState) {
-				final IObjectWithState handlerWithState = (IObjectWithState) handler;
-				for (int i = 0; i < stateIds.length; i++) {
-					final String stateId = stateIds[i];
-					handlerWithState.removeState(stateId);
-
-					final State state = getState(stateId);
-					removeState(stateId);
-					state.dispose();
-				}
-			} else {
-				for (int i = 0; i < stateIds.length; i++) {
-					final String stateId = stateIds[i];
-					final State state = getState(stateId);
-					removeState(stateId);
-					state.dispose();
-				}
-			}
-		}
-
-		fireCommandChanged(new CommandEvent(this, categoryChanged,
-				definedChanged, descriptionChanged, false, nameChanged,
-				parametersChanged, returnTypeChanged, false, enabledChanged));
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java
deleted file mode 100644
index 20c5b8a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.AbstractNamedHandleEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>Command</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see ICommandListener#commandChanged(CommandEvent)
- */
-public final class CommandEvent extends AbstractNamedHandleEvent {
-
-	/**
-	 * The bit used to represent whether the command has changed its category.
-	 */
-	private static final int CHANGED_CATEGORY = LAST_USED_BIT << 1;
-
-	/**
-	 * The bit used to represent whether the command has changed its handler.
-	 */
-	private static final int CHANGED_HANDLED = LAST_USED_BIT << 2;
-
-	/**
-	 * The bit used to represent whether the command has changed its parameters.
-	 */
-	private static final int CHANGED_PARAMETERS = LAST_USED_BIT << 3;
-
-	/**
-	 * The bit used to represent whether the command has changed its return
-	 * type.
-	 * 
-	 * @since 3.2
-	 */
-	private static final int CHANGED_RETURN_TYPE = LAST_USED_BIT << 4;
-
-	/**
-	 * The bit used to represent whether the command has changed its help
-	 * context identifier.
-	 * 
-	 * @since 3.2
-	 */
-	private static final int CHANGED_HELP_CONTEXT_ID = LAST_USED_BIT << 5;
-
-	/**
-	 * The bit used to represent whether this commands active handler has
-	 * changed its enablement state.
-	 * 
-	 * @since 3.3
-	 */
-	private static final int CHANGED_ENABLED = LAST_USED_BIT << 6;
-
-	/**
-	 * The command that has changed; this value is never <code>null</code>.
-	 */
-	private final Command command;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param command
-	 *            the instance of the interface that changed.
-	 * @param categoryChanged
-	 *            <code>true</code>, iff the category property changed.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param handledChanged
-	 *            <code>true</code>, iff the handled property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 * @param parametersChanged
-	 *            <code>true</code> if the parameters have changed;
-	 *            <code>false</code> otherwise.
-	 */
-	public CommandEvent(final Command command, final boolean categoryChanged,
-			final boolean definedChanged, final boolean descriptionChanged,
-			final boolean handledChanged, final boolean nameChanged,
-			final boolean parametersChanged) {
-		this(command, categoryChanged, definedChanged, descriptionChanged,
-				handledChanged, nameChanged, parametersChanged, false);
-	}
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param command
-	 *            the instance of the interface that changed.
-	 * @param categoryChanged
-	 *            <code>true</code>, iff the category property changed.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param handledChanged
-	 *            <code>true</code>, iff the handled property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 * @param parametersChanged
-	 *            <code>true</code> if the parameters have changed;
-	 *            <code>false</code> otherwise.
-	 * @param returnTypeChanged
-	 *            <code>true</code> iff the return type property changed;
-	 *            <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-	public CommandEvent(final Command command, final boolean categoryChanged,
-			final boolean definedChanged, final boolean descriptionChanged,
-			final boolean handledChanged, final boolean nameChanged,
-			final boolean parametersChanged, final boolean returnTypeChanged) {
-		this(command, categoryChanged, definedChanged, descriptionChanged,
-				handledChanged, nameChanged, parametersChanged,
-				returnTypeChanged, false);
-	}
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param command
-	 *            the instance of the interface that changed.
-	 * @param categoryChanged
-	 *            <code>true</code>, iff the category property changed.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param handledChanged
-	 *            <code>true</code>, iff the handled property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 * @param parametersChanged
-	 *            <code>true</code> if the parameters have changed;
-	 *            <code>false</code> otherwise.
-	 * @param returnTypeChanged
-	 *            <code>true</code> iff the return type property changed;
-	 *            <code>false</code> otherwise.
-	 * @param helpContextIdChanged
-	 *            <code>true</code> iff the help context identifier changed;
-	 *            <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-	public CommandEvent(final Command command, final boolean categoryChanged,
-			final boolean definedChanged, final boolean descriptionChanged,
-			final boolean handledChanged, final boolean nameChanged,
-			final boolean parametersChanged, final boolean returnTypeChanged,
-			final boolean helpContextIdChanged) {
-		this(command, categoryChanged, definedChanged, descriptionChanged,
-				handledChanged, nameChanged, parametersChanged,
-				returnTypeChanged, helpContextIdChanged, false);
-	}
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param command
-	 *            the instance of the interface that changed.
-	 * @param categoryChanged
-	 *            <code>true</code>, iff the category property changed.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param handledChanged
-	 *            <code>true</code>, iff the handled property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 * @param parametersChanged
-	 *            <code>true</code> if the parameters have changed;
-	 *            <code>false</code> otherwise.
-	 * @param returnTypeChanged
-	 *            <code>true</code> iff the return type property changed;
-	 *            <code>false</code> otherwise.
-	 * @param helpContextIdChanged
-	 *            <code>true</code> iff the help context identifier changed;
-	 *            <code>false</code> otherwise.
-	 * @param enabledChanged
-	 *            <code>true</code> iff the comand enablement changed;
-	 *            <code>false</code> otherwise.
-	 * @since 3.3
-	 */
-	public CommandEvent(final Command command, final boolean categoryChanged,
-			final boolean definedChanged, final boolean descriptionChanged,
-			final boolean handledChanged, final boolean nameChanged,
-			final boolean parametersChanged, final boolean returnTypeChanged,
-			final boolean helpContextIdChanged, final boolean enabledChanged) {
-		super(definedChanged, descriptionChanged, nameChanged);
-
-		if (command == null) {
-			throw new NullPointerException();
-		}
-		this.command = command;
-
-		if (categoryChanged) {
-			changedValues |= CHANGED_CATEGORY;
-		}
-		if (handledChanged) {
-			changedValues |= CHANGED_HANDLED;
-		}
-		if (parametersChanged) {
-			changedValues |= CHANGED_PARAMETERS;
-		}
-		if (returnTypeChanged) {
-			changedValues |= CHANGED_RETURN_TYPE;
-		}
-		if (helpContextIdChanged) {
-			changedValues |= CHANGED_HELP_CONTEXT_ID;
-		}
-		if (enabledChanged) {
-			changedValues |= CHANGED_ENABLED;
-		}
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final Command getCommand() {
-		return command;
-	}
-
-	/**
-	 * Returns whether or not the category property changed.
-	 * 
-	 * @return <code>true</code>, iff the category property changed.
-	 */
-	public final boolean isCategoryChanged() {
-		return ((changedValues & CHANGED_CATEGORY) != 0);
-	}
-
-	/**
-	 * Returns whether or not the handled property changed.
-	 * 
-	 * @return <code>true</code>, iff the handled property changed.
-	 */
-	public final boolean isHandledChanged() {
-		return ((changedValues & CHANGED_HANDLED) != 0);
-	}
-
-	/**
-	 * Returns whether or not the help context identifier changed.
-	 * 
-	 * @return <code>true</code>, iff the help context identifier changed.
-	 * @since 3.2
-	 */
-	public final boolean isHelpContextIdChanged() {
-		return ((changedValues & CHANGED_HELP_CONTEXT_ID) != 0);
-	}
-
-	/**
-	 * Returns whether or not the parameters have changed.
-	 * 
-	 * @return <code>true</code>, iff the parameters property changed.
-	 */
-	public final boolean isParametersChanged() {
-		return ((changedValues & CHANGED_PARAMETERS) != 0);
-	}
-
-	/**
-	 * Returns whether or not the return type property changed.
-	 * 
-	 * @return <code>true</code>, iff the return type property changed.
-	 * @since 3.2
-	 */
-	public final boolean isReturnTypeChanged() {
-		return ((changedValues & CHANGED_RETURN_TYPE) != 0);
-	}
-
-	/**
-	 * Return whether the enable property changed.
-	 * 
-	 * @return <code>true</code> iff the comand enablement changed
-	 * @since 3.3
-	 */
-	public final boolean isEnabledChanged() {
-		return ((changedValues & CHANGED_ENABLED) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java
deleted file mode 100644
index 1fa61a8..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java
+++ /dev/null
@@ -1,1051 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.commands.common.HandleObjectManager;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.runtime.ListenerList;
-
-/**
- * <p>
- * A central repository for commands -- both in the defined and undefined
- * states. Commands can be created and retrieved using this manager. It is
- * possible to listen to changes in the collection of commands by attaching a
- * listener to the manager.
- * </p>
- * 
- * @see CommandManager#getCommand(String)
- * @since 3.1
- */
-public final class CommandManager extends HandleObjectManager implements
-		ICategoryListener, ICommandListener, IParameterTypeListener {
-
-	/**
-	 * A listener that forwards incoming execution events to execution listeners
-	 * on this manager. The execution events will come from any command on this
-	 * manager.
-	 * 
-	 * @since 3.1
-	 */
-	private final class ExecutionListener implements
-			IExecutionListenerWithChecks {
-
-		public void notDefined(String commandId, NotDefinedException exception) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListenerWithChecks) {
-						final IExecutionListenerWithChecks listener = (IExecutionListenerWithChecks) object;
-						listener.notDefined(commandId, exception);
-					}
-				}
-			}
-		}
-
-		public void notEnabled(String commandId, NotEnabledException exception) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListenerWithChecks) {
-						final IExecutionListenerWithChecks listener = (IExecutionListenerWithChecks) object;
-						listener.notEnabled(commandId, exception);
-					}
-				}
-			}
-		}
-
-		public final void notHandled(final String commandId,
-				final NotHandledException exception) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListener) {
-						final IExecutionListener listener = (IExecutionListener) object;
-						listener.notHandled(commandId, exception);
-					}
-				}
-			}
-		}
-
-		public final void postExecuteFailure(final String commandId,
-				final ExecutionException exception) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListener) {
-						final IExecutionListener listener = (IExecutionListener) object;
-						listener.postExecuteFailure(commandId, exception);
-					}
-				}
-			}
-		}
-
-		public final void postExecuteSuccess(final String commandId,
-				final Object returnValue) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListener) {
-						final IExecutionListener listener = (IExecutionListener) object;
-						listener.postExecuteSuccess(commandId, returnValue);
-					}
-				}
-			}
-		}
-
-		public final void preExecute(final String commandId,
-				final ExecutionEvent event) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListener) {
-						final IExecutionListener listener = (IExecutionListener) object;
-						listener.preExecute(commandId, event);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * The identifier of the category in which all auto-generated commands will
-	 * appear. This value must never be <code>null</code>.
-	 * 
-	 * @since 3.2
-	 */
-	public static final String AUTOGENERATED_CATEGORY_ID = "org.eclipse.core.commands.categories.autogenerated"; //$NON-NLS-1$
-
-	/**
-	 * The escape character to use for serialization and deserialization of
-	 * parameterized commands.
-	 */
-	static final char ESCAPE_CHAR = '%';
-
-	/**
-	 * The character that separates a parameter id from its value.
-	 */
-	static final char ID_VALUE_CHAR = '=';
-
-	/**
-	 * The character that indicates the end of a list of parameters.
-	 */
-	static final char PARAMETER_END_CHAR = ')';
-
-	/**
-	 * The character that separators parameters from each other.
-	 */
-	static final char PARAMETER_SEPARATOR_CHAR = ',';
-
-	/**
-	 * The character that indicates the start of a list of parameters.
-	 */
-	static final char PARAMETER_START_CHAR = '(';
-
-	/**
-	 * Unescapes special characters in the command id, parameter ids and
-	 * parameter values for {@link #deserialize(String)}. The special characters
-	 * {@link #PARAMETER_START_CHAR}, {@link #PARAMETER_END_CHAR},
-	 * {@link #ID_VALUE_CHAR}, {@link #PARAMETER_SEPARATOR_CHAR} and
-	 * {@link #ESCAPE_CHAR} are escaped by prepending an {@link #ESCAPE_CHAR}
-	 * character.
-	 * <p>
-	 * See also ParameterizedCommand.escape(String)
-	 * </p>
-	 * 
-	 * @param escapedText
-	 *            a <code>String</code> that may contain escaped special
-	 *            characters for command serialization.
-	 * @return a <code>String</code> representing <code>escapedText</code>
-	 *         with any escaped characters replaced by their literal values
-	 * @throws SerializationException
-	 *             if <code>escapedText</code> contains an invalid escape
-	 *             sequence
-	 * @since 3.2
-	 */
-	private static final String unescape(final String escapedText)
-			throws SerializationException {
-
-		// defer initialization of a StringBuffer until we know we need one
-		StringBuffer buffer = null;
-
-		for (int i = 0; i < escapedText.length(); i++) {
-
-			char c = escapedText.charAt(i);
-			if (c != ESCAPE_CHAR) {
-				// normal unescaped character
-				if (buffer != null) {
-					buffer.append(c);
-				}
-			} else {
-				if (buffer == null) {
-					buffer = new StringBuffer(escapedText.substring(0, i));
-				}
-
-				if (++i < escapedText.length()) {
-					c = escapedText.charAt(i);
-					switch (c) {
-					case PARAMETER_START_CHAR:
-					case PARAMETER_END_CHAR:
-					case ID_VALUE_CHAR:
-					case PARAMETER_SEPARATOR_CHAR:
-					case ESCAPE_CHAR:
-						buffer.append(c);
-						break;
-					default:
-						throw new SerializationException(
-								"Invalid character '" + c + "' in escape sequence"); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-				} else {
-					throw new SerializationException(
-							"Unexpected termination of escape sequence"); //$NON-NLS-1$
-				}
-			}
-
-		}
-
-		if (buffer == null) {
-			return escapedText;
-		}
-
-		return buffer.toString();
-	}
-
-	/**
-	 * The map of category identifiers (<code>String</code>) to categories (
-	 * <code>Category</code>). This collection may be empty, but it is never
-	 * <code>null</code>.
-	 */
-	private final Map categoriesById = new HashMap();
-
-	/**
-	 * The set of identifiers for those categories that are defined. This value
-	 * may be empty, but it is never <code>null</code>.
-	 */
-	private final Set definedCategoryIds = new HashSet();
-
-	/**
-	 * The set of identifiers for those command parameter types that are
-	 * defined. This value may be empty, but it is never <code>null</code>.
-	 * 
-	 * @since 3.2
-	 */
-	private final Set definedParameterTypeIds = new HashSet();
-
-	/**
-	 * The execution listener for this command manager. This just forwards
-	 * events from commands controlled by this manager to listeners on this
-	 * manager.
-	 */
-	private IExecutionListenerWithChecks executionListener = null;
-
-	/**
-	 * The collection of execution listeners. This collection is
-	 * <code>null</code> if there are no listeners.
-	 */
-	private ListenerList executionListeners = null;
-
-	/**
-	 * The help context identifiers ({@link String}) for a handler ({@link IHandler}).
-	 * This map may be empty, but it is never <code>null</code>. Entries are
-	 * removed if all strong references to the handler are removed.
-	 * 
-	 * @since 3.2
-	 */
-	private final Map helpContextIdsByHandler = new WeakHashMap();
-
-	/**
-	 * The map of parameter type identifiers (<code>String</code>) to
-	 * parameter types ( <code>ParameterType</code>). This collection may be
-	 * empty, but it is never <code>null</code>.
-	 * 
-	 * @since 3.2
-	 */
-	private final Map parameterTypesById = new HashMap();
-
-	/**
-	 * Adds a listener to this command manager. The listener will be notified
-	 * when the set of defined commands changes. This can be used to track the
-	 * global appearance and disappearance of commands.
-	 * 
-	 * @param listener
-	 *            The listener to attach; must not be <code>null</code>.
-	 */
-	public final void addCommandManagerListener(
-			final ICommandManagerListener listener) {
-		addListenerObject(listener);
-	}
-
-	/**
-	 * Adds an execution listener to this manager. This listener will be
-	 * notified if any of the commands controlled by this manager execute. This
-	 * can be used to support macros and instrumentation of commands.
-	 * 
-	 * @param listener
-	 *            The listener to attach; must not be <code>null</code>.
-	 */
-	public final void addExecutionListener(final IExecutionListener listener) {
-		if (listener == null) {
-			throw new NullPointerException(
-					"Cannot add a null execution listener"); //$NON-NLS-1$
-		}
-
-		if (executionListeners == null) {
-			executionListeners = new ListenerList(ListenerList.IDENTITY);
-
-			// Add an execution listener to every command.
-			executionListener = new ExecutionListener();
-			final Iterator commandItr = handleObjectsById.values().iterator();
-			while (commandItr.hasNext()) {
-				final Command command = (Command) commandItr.next();
-				command.addExecutionListener(executionListener);
-			}
-
-		}
-
-		executionListeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.ICategoryListener#categoryChanged(org.eclipse.core.commands.CategoryEvent)
-	 */
-	public final void categoryChanged(CategoryEvent categoryEvent) {
-		if (categoryEvent.isDefinedChanged()) {
-			final Category category = categoryEvent.getCategory();
-			final String categoryId = category.getId();
-			final boolean categoryIdAdded = category.isDefined();
-			if (categoryIdAdded) {
-				definedCategoryIds.add(categoryId);
-			} else {
-				definedCategoryIds.remove(categoryId);
-			}
-			if (isListenerAttached()) {
-				fireCommandManagerChanged(new CommandManagerEvent(this, null,
-						false, false, categoryId, categoryIdAdded, true));
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.commands.ICommandListener#commandChanged(org.eclipse.commands.CommandEvent)
-	 */
-	public final void commandChanged(final CommandEvent commandEvent) {
-		if (commandEvent.isDefinedChanged()) {
-			final Command command = commandEvent.getCommand();
-			final String commandId = command.getId();
-			final boolean commandIdAdded = command.isDefined();
-			if (commandIdAdded) {
-				definedHandleObjects.add(command);
-			} else {
-				definedHandleObjects.remove(command);
-			}
-			if (isListenerAttached()) {
-				fireCommandManagerChanged(new CommandManagerEvent(this,
-						commandId, commandIdAdded, true, null, false, false));
-			}
-		}
-	}
-
-	/**
-	 * Sets the name and description of the category for uncategorized commands.
-	 * This is the category that will be returned if
-	 * {@link #getCategory(String)} is called with <code>null</code>.
-	 * 
-	 * @param name
-	 *            The name of the category for uncategorized commands; must not
-	 *            be <code>null</code>.
-	 * @param description
-	 *            The description of the category for uncategorized commands;
-	 *            may be <code>null</code>.
-	 * @since 3.2
-	 */
-	public final void defineUncategorizedCategory(final String name,
-			final String description) {
-		final Category category = getCategory(AUTOGENERATED_CATEGORY_ID);
-		category.define(name, description);
-	}
-
-	/**
-	 * <p>
-	 * Returns a {@link ParameterizedCommand} with a command and
-	 * parameterizations as specified in the provided
-	 * <code>serializedParameterizedCommand</code> string. The
-	 * <code>serializedParameterizedCommand</code> must use the format
-	 * returned by {@link ParameterizedCommand#serialize()} and described in the
-	 * Javadoc for that method.
-	 * </p>
-	 * <p>
-	 * If a parameter id encoded in the
-	 * <code>serializedParameterizedCommand</code> does not exist in the
-	 * encoded command, that parameter id and value are ignored. A given
-	 * parameter id should not be used more than once in
-	 * <code>serializedParameterizedCommand</code>. This will not result in
-	 * an exception, but in this case the value of the parameter when the
-	 * command is executed is unspecified.
-	 * </p>
-	 * <p>
-	 * This method will never return <code>null</code>, however it may throw
-	 * an exception if there is a problem processing the serialization string or
-	 * the encoded command is undefined.
-	 * </p>
-	 * 
-	 * @param serializedParameterizedCommand
-	 *            a string representing a command id and parameter ids and
-	 *            values; must not be <code>null</code>
-	 * @return a {@link ParameterizedCommand} with the command and
-	 *         parameterizations encoded in the
-	 *         <code>serializedParameterizedCommand</code>; never
-	 *         <code>null</code>.
-	 * @throws NotDefinedException
-	 *             if the command indicated in
-	 *             <code>serializedParameterizedCommand</code> is not defined
-	 * @throws SerializationException
-	 *             if there is an error deserializing
-	 *             <code>serializedParameterizedCommand</code>
-	 * @see ParameterizedCommand#serialize()
-	 * @since 3.2
-	 */
-	public final ParameterizedCommand deserialize(
-			final String serializedParameterizedCommand)
-			throws NotDefinedException, SerializationException {
-
-		final int lparenPosition = unescapedIndexOf(
-				serializedParameterizedCommand, PARAMETER_START_CHAR);
-
-		final String commandIdEscaped;
-		final String serializedParameters;
-		if (lparenPosition == -1) {
-			commandIdEscaped = serializedParameterizedCommand;
-			serializedParameters = null;
-		} else {
-			commandIdEscaped = serializedParameterizedCommand.substring(0,
-					lparenPosition);
-
-			if (serializedParameterizedCommand
-					.charAt(serializedParameterizedCommand.length() - 1) != PARAMETER_END_CHAR) {
-				throw new SerializationException(
-						"Parentheses must be balanced in serialized ParameterizedCommand"); //$NON-NLS-1$
-			}
-
-			serializedParameters = serializedParameterizedCommand.substring(
-					lparenPosition + 1, // skip PARAMETER_START_CHAR
-					serializedParameterizedCommand.length() - 1); // skip
-			// PARAMETER_END_CHAR
-		}
-
-		final String commandId = unescape(commandIdEscaped);
-		final Command command = getCommand(commandId);
-		final IParameter[] parameters = command.getParameters();
-		final Parameterization[] parameterizations = getParameterizations(
-				serializedParameters, parameters);
-
-		return new ParameterizedCommand(command, parameterizations);
-	}
-
-	/**
-	 * Notifies all of the listeners to this manager that the set of defined
-	 * command identifiers has changed.
-	 * 
-	 * @param event
-	 *            The event to send to all of the listeners; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireCommandManagerChanged(final CommandManagerEvent event) {
-		if (event == null) {
-			throw new NullPointerException();
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final ICommandManagerListener listener = (ICommandManagerListener) listeners[i];
-			listener.commandManagerChanged(event);
-		}
-	}
-
-	/**
-	 * Returns all of the commands known by this manager -- defined and
-	 * undefined.
-	 * 
-	 * @return All of the commands; may be empty, but never <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Command[] getAllCommands() {
-		return (Command[]) handleObjectsById.values().toArray(
-				new Command[handleObjectsById.size()]);
-	}
-
-	/**
-	 * Gets the category with the given identifier. If no such category
-	 * currently exists, then the category will be created (but be undefined).
-	 * 
-	 * @param categoryId
-	 *            The identifier to find; must not be <code>null</code>. If
-	 *            the category is <code>null</code>, then a category suitable
-	 *            for uncategorized items is defined and returned.
-	 * @return The category with the given identifier; this value will never be
-	 *         <code>null</code>, but it might be undefined.
-	 * @see Category
-	 */
-	public final Category getCategory(final String categoryId) {
-		if (categoryId == null) {
-			return getCategory(AUTOGENERATED_CATEGORY_ID);
-		}
-
-		checkId(categoryId);
-
-		Category category = (Category) categoriesById.get(categoryId);
-		if (category == null) {
-			category = new Category(categoryId);
-			categoriesById.put(categoryId, category);
-			category.addCategoryListener(this);
-		}
-
-		return category;
-	}
-
-	/**
-	 * Gets the command with the given identifier. If no such command currently
-	 * exists, then the command will be created (but will be undefined).
-	 * 
-	 * @param commandId
-	 *            The identifier to find; must not be <code>null</code> and
-	 *            must not be zero-length.
-	 * @return The command with the given identifier; this value will never be
-	 *         <code>null</code>, but it might be undefined.
-	 * @see Command
-	 */
-	public final Command getCommand(final String commandId) {
-		checkId(commandId);
-
-		Command command = (Command) handleObjectsById.get(commandId);
-		if (command == null) {
-			command = new Command(commandId);
-			handleObjectsById.put(commandId, command);
-			command.addCommandListener(this);
-
-			if (executionListener != null) {
-				command.addExecutionListener(executionListener);
-			}
-		}
-
-		return command;
-	}
-
-	/**
-	 * Returns the categories that are defined.
-	 * 
-	 * @return The defined categories; this value may be empty, but it is never
-	 *         <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Category[] getDefinedCategories() {
-		final Category[] categories = new Category[definedCategoryIds.size()];
-		final Iterator categoryIdItr = definedCategoryIds.iterator();
-		int i = 0;
-		while (categoryIdItr.hasNext()) {
-			String categoryId = (String) categoryIdItr.next();
-			categories[i++] = getCategory(categoryId);
-		}
-		return categories;
-	}
-
-	/**
-	 * Returns the set of identifiers for those category that are defined.
-	 * 
-	 * @return The set of defined category identifiers; this value may be empty,
-	 *         but it is never <code>null</code>.
-	 */
-	public final Set getDefinedCategoryIds() {
-		return Collections.unmodifiableSet(definedCategoryIds);
-	}
-
-	/**
-	 * Returns the set of identifiers for those commands that are defined.
-	 * 
-	 * @return The set of defined command identifiers; this value may be empty,
-	 *         but it is never <code>null</code>.
-	 */
-	public final Set getDefinedCommandIds() {
-		return getDefinedHandleObjectIds();
-	}
-
-	/**
-	 * Returns the commands that are defined.
-	 * 
-	 * @return The defined commands; this value may be empty, but it is never
-	 *         <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Command[] getDefinedCommands() {
-		return (Command[]) definedHandleObjects
-				.toArray(new Command[definedHandleObjects.size()]);
-	}
-
-	/**
-	 * Returns the set of identifiers for those parameter types that are
-	 * defined.
-	 * 
-	 * @return The set of defined command parameter type identifiers; this value
-	 *         may be empty, but it is never <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Set getDefinedParameterTypeIds() {
-		return Collections.unmodifiableSet(definedParameterTypeIds);
-	}
-
-	/**
-	 * Returns the command parameter types that are defined.
-	 * 
-	 * @return The defined command parameter types; this value may be empty, but
-	 *         it is never <code>null</code>.
-	 * @since 3.2
-	 */
-	public final ParameterType[] getDefinedParameterTypes() {
-		final ParameterType[] parameterTypes = new ParameterType[definedParameterTypeIds
-				.size()];
-		final Iterator iterator = definedParameterTypeIds.iterator();
-		int i = 0;
-		while (iterator.hasNext()) {
-			final String parameterTypeId = (String) iterator.next();
-			parameterTypes[i++] = getParameterType(parameterTypeId);
-		}
-		return parameterTypes;
-	}
-
-	/**
-	 * Gets the help context identifier for a particular command. The command's
-	 * handler is first checked for a help context identifier. If the handler
-	 * does not have a help context identifier, then the help context identifier
-	 * for the command is returned. If neither has a help context identifier,
-	 * then <code>null</code> is returned.
-	 * 
-	 * @param command
-	 *            The command for which the help context should be retrieved;
-	 *            must not be <code>null</code>.
-	 * @return The help context identifier to use for the given command; may be
-	 *         <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the given command is not defined.
-	 * @since 3.2
-	 */
-	public final String getHelpContextId(final Command command)
-			throws NotDefinedException {
-		// Check if the command is defined.
-		if (!command.isDefined()) {
-			throw new NotDefinedException("The command is not defined. " //$NON-NLS-1$
-					+ command.getId());
-		}
-
-		// Check the handler.
-		final IHandler handler = command.getHandler();
-		if (handler != null) {
-			final String helpContextId = (String) helpContextIdsByHandler
-					.get(handler);
-			if (helpContextId != null) {
-				return helpContextId;
-			}
-		}
-
-		// Simply return whatever the command has as a help context identifier.
-		return command.getHelpContextId();
-	}
-
-	/**
-	 * Returns an array of parameterizations for the provided command by
-	 * deriving the parameter ids and values from the provided
-	 * <code>serializedParameters</code> string.
-	 * 
-	 * @param serializedParameters
-	 *            a String encoding parameter ids and values; must not be
-	 *            <code>null</code>.
-	 * @param parameters
-	 *            array of parameters of the command being deserialized; may be
-	 *            <code>null</code>.
-	 * @return an array of parameterizations; may be <code>null</code>.
-	 * @throws SerializationException
-	 *             if there is an error deserializing the parameters
-	 * @since 3.2
-	 */
-	private final Parameterization[] getParameterizations(
-			String serializedParameters, final IParameter[] parameters)
-			throws SerializationException {
-
-		if (serializedParameters == null
-				|| (serializedParameters.length() == 0)) {
-			return null;
-		}
-
-		if ((parameters == null) || (parameters.length == 0)) {
-			return null;
-		}
-
-		final ArrayList paramList = new ArrayList();
-
-		int commaPosition; // split off each param by looking for ','
-		do {
-			commaPosition = unescapedIndexOf(serializedParameters, ',');
-
-			final String idEqualsValue;
-			if (commaPosition == -1) {
-				// no more parameters after this
-				idEqualsValue = serializedParameters;
-			} else {
-				// take the first parameter...
-				idEqualsValue = serializedParameters
-						.substring(0, commaPosition);
-
-				// ... and put the rest back into serializedParameters
-				serializedParameters = serializedParameters
-						.substring(commaPosition + 1);
-			}
-
-			final int equalsPosition = unescapedIndexOf(idEqualsValue, '=');
-
-			final String parameterId;
-			final String parameterValue;
-			if (equalsPosition == -1) {
-				// missing values are null
-				parameterId = unescape(idEqualsValue);
-				parameterValue = null;
-			} else {
-				parameterId = unescape(idEqualsValue.substring(0,
-						equalsPosition));
-				parameterValue = unescape(idEqualsValue
-						.substring(equalsPosition + 1));
-			}
-
-			for (int i = 0; i < parameters.length; i++) {
-				final IParameter parameter = parameters[i];
-				if (parameter.getId().equals(parameterId)) {
-					paramList.add(new Parameterization(parameter,
-							parameterValue));
-					break;
-				}
-			}
-
-		} while (commaPosition != -1);
-
-		return (Parameterization[]) paramList
-				.toArray(new Parameterization[paramList.size()]);
-	}
-
-	/**
-	 * Gets the command {@link ParameterType} with the given identifier. If no
-	 * such command parameter type currently exists, then the command parameter
-	 * type will be created (but will be undefined).
-	 * 
-	 * @param parameterTypeId
-	 *            The identifier to find; must not be <code>null</code> and
-	 *            must not be zero-length.
-	 * @return The {@link ParameterType} with the given identifier; this value
-	 *         will never be <code>null</code>, but it might be undefined.
-	 * @since 3.2
-	 */
-	public final ParameterType getParameterType(final String parameterTypeId) {
-		checkId(parameterTypeId);
-
-		ParameterType parameterType = (ParameterType) parameterTypesById
-				.get(parameterTypeId);
-		if (parameterType == null) {
-			parameterType = new ParameterType(parameterTypeId);
-			parameterTypesById.put(parameterTypeId, parameterType);
-			parameterType.addListener(this);
-		}
-
-		return parameterType;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.2
-	 */
-	public final void parameterTypeChanged(
-			final ParameterTypeEvent parameterTypeEvent) {
-		if (parameterTypeEvent.isDefinedChanged()) {
-			final ParameterType parameterType = parameterTypeEvent
-					.getParameterType();
-			final String parameterTypeId = parameterType.getId();
-			final boolean parameterTypeIdAdded = parameterType.isDefined();
-			if (parameterTypeIdAdded) {
-				definedParameterTypeIds.add(parameterTypeId);
-			} else {
-				definedParameterTypeIds.remove(parameterTypeId);
-			}
-
-			fireCommandManagerChanged(new CommandManagerEvent(this,
-					parameterTypeId, parameterTypeIdAdded, true));
-		}
-	}
-
-	/**
-	 * Removes a listener from this command manager.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	public final void removeCommandManagerListener(
-			final ICommandManagerListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * Removes an execution listener from this command manager.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	public final void removeExecutionListener(final IExecutionListener listener) {
-		if (listener == null) {
-			throw new NullPointerException("Cannot remove a null listener"); //$NON-NLS-1$
-		}
-
-		if (executionListeners == null) {
-			return;
-		}
-
-		executionListeners.remove(listener);
-
-		if (executionListeners.isEmpty()) {
-			executionListeners = null;
-
-			// Remove the execution listener to every command.
-			final Iterator commandItr = handleObjectsById.values().iterator();
-			while (commandItr.hasNext()) {
-				final Command command = (Command) commandItr.next();
-				command.removeExecutionListener(executionListener);
-			}
-			executionListener = null;
-
-		}
-	}
-
-	/**
-	 * Block updates all of the handlers for all of the commands. If the handler
-	 * is <code>null</code> or the command id does not exist in the map, then
-	 * the command becomes unhandled. Otherwise, the handler is set to the
-	 * corresponding value in the map.
-	 * 
-	 * @param handlersByCommandId
-	 *            A map of command identifiers (<code>String</code>) to
-	 *            handlers (<code>IHandler</code>). This map may be
-	 *            <code>null</code> if all handlers should be cleared.
-	 *            Similarly, if the map is empty, then all commands will become
-	 *            unhandled.
-	 */
-	public final void setHandlersByCommandId(final Map handlersByCommandId) {
-		// Make that all the reference commands are created.
-		final Iterator commandIdItr = handlersByCommandId.keySet().iterator();
-		while (commandIdItr.hasNext()) {
-			getCommand((String) commandIdItr.next());
-		}
-
-		// Now, set-up the handlers on all of the existing commands.
-		final Iterator commandItr = handleObjectsById.values().iterator();
-		while (commandItr.hasNext()) {
-			final Command command = (Command) commandItr.next();
-			final String commandId = command.getId();
-			final Object value = handlersByCommandId.get(commandId);
-			if (value instanceof IHandler) {
-				command.setHandler((IHandler) value);
-			} else {
-				command.setHandler(null);
-			}
-		}
-	}
-
-	/**
-	 * Sets the help context identifier to associate with a particular handler.
-	 * 
-	 * @param handler
-	 *            The handler with which to register a help context identifier;
-	 *            must not be <code>null</code>.
-	 * @param helpContextId
-	 *            The help context identifier to register; may be
-	 *            <code>null</code> if the help context identifier should be
-	 *            removed.
-	 * @since 3.2
-	 */
-	public final void setHelpContextId(final IHandler handler,
-			final String helpContextId) {
-		if (handler == null) {
-			throw new NullPointerException("The handler cannot be null"); //$NON-NLS-1$
-		}
-		if (helpContextId == null) {
-			helpContextIdsByHandler.remove(handler);
-		} else {
-			helpContextIdsByHandler.put(handler, helpContextId);
-		}
-	}
-
-	/**
-	 * Searches for the index of a <code>char</code> in a <code>String</code>
-	 * but disregards characters prefixed with the {@link #ESCAPE_CHAR} escape
-	 * character. This is used by {@link #deserialize(String)} and
-	 * {@link #getParameterizations(String, IParameter[])} to parse the
-	 * serialized parameterized command string.
-	 * 
-	 * @param escapedText
-	 *            the string to search for the index of <code>ch</code> in
-	 * @param ch
-	 *            a character to search for in <code>escapedText</code>
-	 * @return the index of the first unescaped occurrence of the character in
-	 *         <code>escapedText</code>, or <code>-1</code> if the
-	 *         character does not occur unescaped.
-	 * @see String#indexOf(int)
-	 */
-	private final int unescapedIndexOf(final String escapedText, final char ch) {
-
-		int pos = escapedText.indexOf(ch);
-
-		// first char can't be escaped
-		if (pos == 0) {
-			return pos;
-		}
-
-		while (pos != -1) {
-			// look back for the escape character
-			if (escapedText.charAt(pos - 1) != ESCAPE_CHAR) {
-				return pos;
-			}
-
-			// scan for the next instance of ch
-			pos = escapedText.indexOf(ch, pos + 1);
-		}
-
-		return pos;
-
-	}
-	
-	/**
-	 * Fires the <code>notEnabled</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command about to execute, never
-	 *            <code>null</code>.
-	 * @param exception
-	 *            The exception, never <code>null</code>.
-	 * @since 3.4
-	 */
-	public void fireNotEnabled(String commandId, NotEnabledException exception) {
-		if (executionListener != null) {
-			executionListener.notEnabled(commandId, exception);
-		}
-	}
-	
-	/**
-	 * Fires the <code>notDefined</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command about to execute, never
-	 *            <code>null</code>.
-	 * @param exception
-	 *            The exception, never <code>null</code>.
-	 * @since 3.4
-	 */
-	public void fireNotDefined(String commandId, NotDefinedException exception) {
-		if (executionListener != null) {
-			executionListener.notDefined(commandId, exception);
-		}
-	}
-	
-	/**
-	 * Fires the <code>preExecute</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command about to execute, never
-	 *            <code>null</code>.
-	 * @param event
-	 *            The event that triggered the command, may be <code>null</code>.
-	 * @since 3.4
-	 */
-	public void firePreExecute(String commandId, ExecutionEvent event) {
-		if (executionListener != null) {
-			executionListener.preExecute(commandId, event);
-		}
-	}
-	
-	/**
-	 * Fires the <code>postExecuteSuccess</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command executed, never
-	 *            <code>null</code>.
-	 * @param returnValue
-	 *            The value returned from the command, may be <code>null</code>.
-	 * @since 3.4
-	 */
-	public void firePostExecuteSuccess(String commandId, Object returnValue) {
-		if (executionListener != null) {
-			executionListener.postExecuteSuccess(commandId, returnValue);
-		}
-	}
-	
-	/**
-	 * Fires the <code>postExecuteFailure</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command executed, never
-	 *            <code>null</code>.
-	 * @param exception
-	 *            The exception, never <code>null</code>.
-	 * @since 3.4
-	 */
-	public void firePostExecuteFailure(String commandId, 
-			ExecutionException exception) {
-		if (executionListener != null) {
-			executionListener.postExecuteFailure(commandId, exception);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java
deleted file mode 100644
index 440e213..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * <p>
- * An event indicating that the set of defined command identifiers has changed.
- * </p>
- * 
- * @since 3.1
- * @see ICommandManagerListener#commandManagerChanged(CommandManagerEvent)
- */
-public final class CommandManagerEvent {
-
-	/**
-	 * The bit used to represent whether the given category has become defined.
-	 * If this bit is not set and there is no category id, then no category has
-	 * become defined nor undefined. If this bit is not set and there is a
-	 * category id, then the category has become undefined.
-	 */
-	private static final int CHANGED_CATEGORY_DEFINED = 1;
-
-	/**
-     * The bit used to represent whether the given command has become defined.
-     * If this bit is not set and there is no command id, then no command has
-     * become defined nor undefined. If this bit is not set and there is a
-     * command id, then the command has become undefined.
-     */
-	private static final int CHANGED_COMMAND_DEFINED = 1 << 1;
-	
-	/**
-	 * The bit used to represent whether the given command parameter type has
-	 * become defined. If this bit is not set and there is no parameter type id,
-	 * then no parameter type has become defined nor undefined. If this bit is
-	 * not set and there is a parameter type id, then the parameter type has
-	 * become undefined.
-	 * 
-	 * @since 3.2
-	 */
-	private static final int CHANGED_PARAMETER_TYPE_DEFINED = 1 << 2;
-
-	/**
-	 * The category identifier that was added or removed from the list of
-	 * defined category identifiers. This value is <code>null</code> if the
-	 * list of defined category identifiers did not change.
-	 */
-	private final String categoryId;
-
-	/**
-	 * A collection of bits representing whether certain values have changed. A
-	 * bit is set (i.e., <code>1</code>) if the corresponding property has
-	 * changed.
-	 */
-	private final int changedValues;
-
-	/**
-	 * The command identifier that was added or removed from the list of defined
-	 * command identifiers. This value is <code>null</code> if the list of
-	 * defined command identifiers did not change.
-	 */
-	private final String commandId;
-	
-	/**
-	 * The command parameter type identifier that was added or removed from the
-	 * list of defined parameter type identifiers. This value is
-	 * <code>null</code> if the list of defined parameter type identifiers did
-	 * not change.
-	 * 
-	 * @since 3.2
-	 */
-	private final String parameterTypeId;
-
-	/**
-	 * The command manager that has changed.
-	 */
-	private final CommandManager commandManager;
-
-	/**
-	 * Creates a new <code>CommandManagerEvent</code> instance to describe
-	 * changes to commands and/or categories.
-	 * 
-	 * @param commandManager
-	 *            the instance of the interface that changed; must not be
-	 *            <code>null</code>.
-	 * @param commandId
-	 *            The command identifier that was added or removed; must not be
-	 *            <code>null</code> if commandIdChanged is <code>true</code>.
-	 * @param commandIdAdded
-	 *            Whether the command identifier became defined (otherwise, it
-	 *            became undefined).
-	 * @param commandIdChanged
-	 *            Whether the list of defined command identifiers has changed.
-	 * @param categoryId
-	 *            The category identifier that was added or removed; must not be
-	 *            <code>null</code> if categoryIdChanged is <code>true</code>.
-	 * @param categoryIdAdded
-	 *            Whether the category identifier became defined (otherwise, it
-	 *            became undefined).
-	 * @param categoryIdChanged
-	 *            Whether the list of defined category identifiers has changed.
-	 */
-	public CommandManagerEvent(final CommandManager commandManager,
-			final String commandId, final boolean commandIdAdded,
-			final boolean commandIdChanged, final String categoryId,
-			final boolean categoryIdAdded, final boolean categoryIdChanged) {
-		if (commandManager == null) {
-			throw new NullPointerException(
-					"An event must refer to its command manager"); //$NON-NLS-1$
-		}
-
-		if (commandIdChanged && (commandId == null)) {
-			throw new NullPointerException(
-					"If the list of defined commands changed, then the added/removed command must be mentioned"); //$NON-NLS-1$
-		}
-
-		if (categoryIdChanged && (categoryId == null)) {
-			throw new NullPointerException(
-					"If the list of defined categories changed, then the added/removed category must be mentioned"); //$NON-NLS-1$
-		}
-
-		this.commandManager = commandManager;
-		this.commandId = commandId;
-		this.categoryId = categoryId;
-		
-		// this constructor only works for changes to commands and categories
-		this.parameterTypeId = null;
-
-		int changedValues = 0;
-		if (categoryIdChanged && categoryIdAdded) {
-			changedValues |= CHANGED_CATEGORY_DEFINED;
-		}
-		if (commandIdChanged && commandIdAdded) {
-			changedValues |= CHANGED_COMMAND_DEFINED;
-		}
-		this.changedValues = changedValues;
-	}
-	
-	/**
-	 * Creates a new <code>CommandManagerEvent</code> instance to describe
-	 * changes to command parameter types.
-	 * 
-	 * @param commandManager
-	 *            the instance of the interface that changed; must not be
-	 *            <code>null</code>.
-	 * @param parameterTypeId
-	 *            The command parameter type identifier that was added or
-	 *            removed; must not be <code>null</code> if
-	 *            parameterTypeIdChanged is <code>true</code>.
-	 * @param parameterTypeIdAdded
-	 *            Whether the parameter type identifier became defined
-	 *            (otherwise, it became undefined).
-	 * @param parameterTypeIdChanged
-	 *            Whether the list of defined parameter type identifiers has
-	 *            changed.
-	 * 
-	 * @since 3.2
-	 */
-	public CommandManagerEvent(final CommandManager commandManager,
-			final String parameterTypeId, final boolean parameterTypeIdAdded,
-			final boolean parameterTypeIdChanged) {
-
-		if (commandManager == null) {
-			throw new NullPointerException(
-					"An event must refer to its command manager"); //$NON-NLS-1$
-		}
-
-		if (parameterTypeIdChanged && (parameterTypeId == null)) {
-			throw new NullPointerException(
-					"If the list of defined command parameter types changed, then the added/removed parameter type must be mentioned"); //$NON-NLS-1$
-		}
-
-		this.commandManager = commandManager;
-		this.commandId = null;
-		this.categoryId = null;
-
-		this.parameterTypeId = parameterTypeId;
-
-		int changedValues = 0;
-		if (parameterTypeIdChanged && parameterTypeIdAdded) {
-			changedValues |= CHANGED_PARAMETER_TYPE_DEFINED;
-		}
-
-		this.changedValues = changedValues;
-	}
-
-	/**
-	 * Returns the category identifier that was added or removed.
-	 * 
-	 * @return The category identifier that was added or removed; may be
-	 *         <code>null</code>.
-	 */
-	public final String getCategoryId() {
-		return categoryId;
-	}
-
-	/**
-	 * Returns the command identifier that was added or removed.
-	 * 
-	 * @return The command identifier that was added or removed; may be
-	 *         <code>null</code>.
-	 */
-	public final String getCommandId() {
-		return commandId;
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final CommandManager getCommandManager() {
-		return commandManager;
-	}
-	
-	/**
-	 * Returns the command parameter type identifier that was added or removed.
-	 * 
-	 * @return The command parameter type identifier that was added or removed;
-	 *         may be <code>null</code>.
-	 *         
-	 * @since 3.2
-	 */
-	public final String getParameterTypeId() {
-		return parameterTypeId;
-	}
-
-	/**
-	 * Returns whether the list of defined category identifiers has changed.
-	 * 
-	 * @return <code>true</code> if the list of category identifiers has
-	 *         changed; <code>false</code> otherwise.
-	 */
-	public final boolean isCategoryChanged() {
-		return (categoryId != null);
-	}
-
-	/**
-	 * Returns whether the category identifier became defined. Otherwise, the
-	 * category identifier became undefined.
-	 * 
-	 * @return <code>true</code> if the category identifier became defined;
-	 *         <code>false</code> if the category identifier became undefined.
-	 */
-	public final boolean isCategoryDefined() {
-		return (((changedValues & CHANGED_CATEGORY_DEFINED) != 0) && (categoryId != null));
-	}
-
-	/**
-	 * Returns whether the list of defined command identifiers has changed.
-	 * 
-	 * @return <code>true</code> if the list of command identifiers has
-	 *         changed; <code>false</code> otherwise.
-	 */
-	public final boolean isCommandChanged() {
-		return (commandId != null);
-	}
-
-	/**
-	 * Returns whether the command identifier became defined. Otherwise, the
-	 * command identifier became undefined.
-	 * 
-	 * @return <code>true</code> if the command identifier became defined;
-	 *         <code>false</code> if the command identifier became undefined.
-	 */
-	public final boolean isCommandDefined() {
-		return (((changedValues & CHANGED_COMMAND_DEFINED) != 0) && (commandId != null));
-	}
-	
-	/**
-	 * Returns whether the list of defined command parameter type identifiers
-	 * has changed.
-	 * 
-	 * @return <code>true</code> if the list of command parameter type
-	 *         identifiers has changed; <code>false</code> otherwise.
-	 * 
-	 * @since 3.2
-	 */
-	public final boolean isParameterTypeChanged() {
-		return (parameterTypeId != null);
-	}
-	
-	/**
-	 * Returns whether the command parameter type identifier became defined.
-	 * Otherwise, the command parameter type identifier became undefined.
-	 * 
-	 * @return <code>true</code> if the command parameter type identifier
-	 *         became defined; <code>false</code> if the command parameter
-	 *         type identifier became undefined.
-	 * 
-	 * @since 3.2
-	 */
-	public final boolean isParameterTypeDefined() {
-		return (((changedValues & CHANGED_PARAMETER_TYPE_DEFINED) != 0) && (parameterTypeId != null));
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java
deleted file mode 100644
index 4a650f9..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import java.util.Collections;
-import java.util.Map;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-
-/**
- * <p>
- * The data object to pass to the command (and its handler) as it executes. This
- * carries information about the current state of the application, and the
- * application context in which the command was executed.
- * </p>
- * <p>
- * An execution event carries three blocks of data: the parameters, the trigger,
- * and the application context. How these blocks are used is application
- * dependent. In the Eclipse workbench, the trigger is an SWT event, and the
- * application context contains information about the selection and active part.
- * </p>
- * 
- * @since 3.1
- */
-public final class ExecutionEvent {
-
-	/**
-	 * The state of the application at the time the execution was triggered. In
-	 * the Eclipse workbench, this might contain information about the active
-	 * part of the active selection (for example). This value may be
-	 * <code>null</code>.
-	 */
-	private final Object applicationContext;
-
-	/**
-	 * The command being executed. This value may be <code>null</code>.
-	 */
-	private final Command command;
-
-	/**
-	 * The parameters to qualify the execution. For handlers that normally
-	 * prompt for additional information, these can be used to avoid prompting.
-	 * This value may be empty, but it is never <code>null</code>.
-	 */
-	private final Map parameters;
-
-	/**
-	 * The object that triggered the execution. In an event-driven architecture,
-	 * this is typically just another event. In the Eclipse workbench, this is
-	 * typically an SWT event. This value may be <code>null</code>.
-	 */
-	private final Object trigger;
-
-	/**
-	 * Constructs a new instance of <code>ExecutionEvent</code> with no
-	 * parameters, no trigger and no application context. This is just a
-	 * convenience method.
-	 * 
-	 * @since 3.2
-	 */
-	public ExecutionEvent() {
-		this(null, Collections.EMPTY_MAP, null, null);
-	}
-
-	/**
-	 * Constructs a new instance of <code>ExecutionEvent</code>.
-	 * 
-	 * @param parameters
-	 *            The parameters to qualify the execution; must not be
-	 *            <code>null</code>. This must be a map of parameter ids (<code>String</code>)
-	 *            to parameter values (<code>String</code>).
-	 * @param trigger
-	 *            The object that triggered the execution; may be
-	 *            <code>null</code>.
-	 * @param applicationContext
-	 *            The state of the application at the time the execution was
-	 *            triggered; may be <code>null</code>.
-	 * @deprecated use
-	 *             {@link ExecutionEvent#ExecutionEvent(Command, Map, Object, Object)}
-	 */
-	public ExecutionEvent(final Map parameters, final Object trigger,
-			final Object applicationContext) {
-		this(null, parameters, trigger, applicationContext);
-	}
-
-	/**
-	 * Constructs a new instance of <code>ExecutionEvent</code>.
-	 * 
-	 * @param command
-	 *            The command being executed; may be <code>null</code>.
-	 * @param parameters
-	 *            The parameters to qualify the execution; must not be
-	 *            <code>null</code>. This must be a map of parameter ids (<code>String</code>)
-	 *            to parameter values (<code>String</code>).
-	 * @param trigger
-	 *            The object that triggered the execution; may be
-	 *            <code>null</code>.
-	 * @param applicationContext
-	 *            The state of the application at the time the execution was
-	 *            triggered; may be <code>null</code>.
-	 * @since 3.2
-	 */
-	public ExecutionEvent(final Command command, final Map parameters,
-			final Object trigger, final Object applicationContext) {
-		if (parameters == null) {
-			throw new NullPointerException(
-					"An execution event must have a non-null map of parameters"); //$NON-NLS-1$
-		}
-
-		this.command = command;
-		this.parameters = parameters;
-		this.trigger = trigger;
-		this.applicationContext = applicationContext;
-	}
-
-	/**
-	 * Returns the state of the application at the time the execution was
-	 * triggered.
-	 * 
-	 * @return The application context; may be <code>null</code>.
-	 */
-	public final Object getApplicationContext() {
-		return applicationContext;
-	}
-
-	/**
-	 * Returns the command being executed.
-	 * 
-	 * @return The command being executed.
-	 * @since 3.2
-	 */
-	public final Command getCommand() {
-		return command;
-	}
-
-	/**
-	 * Returns the object represented by the string value of the parameter with
-	 * the provided id.
-	 * <p>
-	 * This is intended to be used in the scope of an
-	 * {@link IHandler#execute(ExecutionEvent)} method, so any problem getting
-	 * the object value causes <code>ExecutionException</code> to be thrown.
-	 * </p>
-	 * 
-	 * @param parameterId
-	 *            The id of a parameter to retrieve the object value of.
-	 * @return The object value of the parameter with the provided id.
-	 * @throws ExecutionException
-	 *             if the parameter object value could not be obtained for any
-	 *             reason
-	 * @since 3.2
-	 */
-	public final Object getObjectParameterForExecution(final String parameterId)
-			throws ExecutionException {
-		if (command == null) {
-			throw new ExecutionException(
-					"No command is associated with this execution event"); //$NON-NLS-1$
-		}
-
-		try {
-			final ParameterType parameterType = command
-					.getParameterType(parameterId);
-			if (parameterType == null) {
-				throw new ExecutionException(
-						"Command does not have a parameter type for the given parameter"); //$NON-NLS-1$
-			}
-			final AbstractParameterValueConverter valueConverter = parameterType
-					.getValueConverter();
-			if (valueConverter == null) {
-				throw new ExecutionException(
-						"Command does not have a value converter"); //$NON-NLS-1$
-			}
-			final String stringValue = getParameter(parameterId);
-			final Object objectValue = valueConverter
-					.convertToObject(stringValue);
-			return objectValue;
-		} catch (final NotDefinedException e) {
-			throw new ExecutionException("Command is not defined", e); //$NON-NLS-1$
-		} catch (final ParameterValueConversionException e) {
-			throw new ExecutionException(
-					"The parameter string could not be converted to an object", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Returns the value of the parameter with the given id.
-	 * 
-	 * @param parameterId
-	 *            The id of the parameter to retrieve; may be <code>null</code>.
-	 * @return The parameter value; <code>null</code> if the parameter cannot
-	 *         be found.
-	 */
-	public final String getParameter(final String parameterId) {
-		return (String) parameters.get(parameterId);
-	}
-
-	/**
-	 * Returns all of the parameters.
-	 * 
-	 * @return The parameters; never <code>null</code>, but may be empty.
-	 */
-	public final Map getParameters() {
-		return parameters;
-	}
-
-	/**
-	 * Returns the object that triggered the execution
-	 * 
-	 * @return The trigger; <code>null</code> if there was no trigger.
-	 */
-	public final Object getTrigger() {
-		return trigger;
-	}
-
-	/**
-	 * The string representation of this execution event -- for debugging
-	 * purposes only. This string should not be shown to an end user.
-	 * 
-	 * @return The string representation; never <code>null</code>.
-	 */
-	public final String toString() {
-		final StringBuffer stringBuffer = new StringBuffer();
-		stringBuffer.append("ExecutionEvent("); //$NON-NLS-1$
-		stringBuffer.append(command);
-		stringBuffer.append(',');
-		stringBuffer.append(parameters);
-		stringBuffer.append(',');
-		stringBuffer.append(trigger);
-		stringBuffer.append(',');
-		stringBuffer.append(applicationContext);
-		stringBuffer.append(')');
-		return stringBuffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.java
deleted file mode 100644
index 37f222c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that an exception occured during the execution of a command.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class ExecutionException extends CommandException {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3258130262767448120L;
-
-    /**
-	 * Creates a new instance of this class with the specified detail message.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 * @since 3.2
-	 */
-	public ExecutionException(final String message) {
-		super(message);
-	}
-    
-    /**
-     * Creates a new instance of this class with the specified detail message
-     * and cause.
-     * 
-     * @param message
-     *            the detail message; may be <code>null</code>.
-     * @param cause
-     *            the cause; may be <code>null</code>.
-     */
-    public ExecutionException(final String message, final Throwable cause) {
-        super(message, cause);
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java
deleted file mode 100644
index 46b9205..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.AbstractBitSetEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>IHandler</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see IHandlerListener#handlerChanged(HandlerEvent)
- */
-public final class HandlerEvent extends AbstractBitSetEvent {
-
-	/**
-	 * The bit used to represent whether the handler has changed its enabled
-	 * state.
-	 */
-	private static final int CHANGED_ENABLED = 1;
-
-	/**
-	 * The bit used to represent whether the handler has changed its handled
-	 * state.
-	 */
-	private static final int CHANGED_HANDLED = 1 << 1;
-
-	/**
-	 * The handler that changed; this value is never <code>null</code>.
-	 */
-	private final IHandler handler;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param handler
-	 *            the instance of the interface that changed; must not be
-     *            <code>null</code>.
-	 * @param enabledChanged
-	 *            Whether the enabled state of the handler has changed.
-	 * @param handledChanged
-	 *            Whether the handled state of the handler has changed.
-	 */
-	public HandlerEvent(final IHandler handler, final boolean enabledChanged,
-			final boolean handledChanged) {
-		if (handler == null) {
-			throw new NullPointerException();
-		}
-		this.handler = handler;
-
-		if (enabledChanged) {
-			changedValues |= CHANGED_ENABLED;
-		}
-		if (handledChanged) {
-			changedValues |= CHANGED_HANDLED;
-		}
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public IHandler getHandler() {
-		return handler;
-	}
-
-	/**
-	 * Returns whether or not the enabled property changed.
-	 * 
-	 * @return <code>true</code>, iff the enabled property changed.
-	 */
-	public boolean isEnabledChanged() {
-		return ((changedValues & CHANGED_ENABLED) != 0);
-	}
-
-	/**
-	 * Returns whether or not the handled property changed.
-	 * 
-	 * @return <code>true</code>, iff the handled property changed.
-	 */
-	public boolean isHandledChanged() {
-		return ((changedValues & CHANGED_HANDLED) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICategoryListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICategoryListener.java
deleted file mode 100644
index abd1b64..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICategoryListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>Category</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see Category#addCategoryListener(ICategoryListener)
- * @see Category#removeCategoryListener(ICategoryListener)
- */
-public interface ICategoryListener {
-
-	/**
-	 * Notifies that one or more properties of an instance of
-	 * <code>Category</code> have changed. Specific details are described in
-	 * the <code>CategoryEvent</code>.
-	 * 
-	 * @param categoryEvent
-	 *            the category event. Guaranteed not to be <code>null</code>.
-	 */
-	void categoryChanged(CategoryEvent categoryEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandListener.java
deleted file mode 100644
index 061bc05..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>Command</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see Command#addCommandListener(ICommandListener)
- * @see Command#removeCommandListener(ICommandListener)
- */
-public interface ICommandListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>Command</code> have changed. Specific details are described in
-     * the <code>CommandEvent</code>.
-     * 
-     * @param commandEvent
-     *            the command event. Guaranteed not to be <code>null</code>.
-     */
-    void commandChanged(CommandEvent commandEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandManagerListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandManagerListener.java
deleted file mode 100644
index 0c665da..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandManagerListener.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>ICommandManager</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see CommandManager#addCommandManagerListener(ICommandManagerListener)
- * @see CommandManager#removeCommandManagerListener(ICommandManagerListener)
- */
-public interface ICommandManagerListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>ICommandManager</code> have changed. Specific details are
-     * described in the <code>CommandManagerEvent</code>.
-     * 
-     * @param commandManagerEvent
-     *            the commandManager event. Guaranteed not to be
-     *            <code>null</code>.
-     */
-    void commandManagerChanged(CommandManagerEvent commandManagerEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListener.java
deleted file mode 100644
index 9ea4349..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListener.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands;
-
-/**
- * <p>
- * A listener to the execution of commands. This listener will be notified if a
- * command is about to execute, and when that execution completes. It is not
- * possible for the listener to prevent the execution, only to respond to it in
- * some way.
- * </p>
- * 
- * @since 3.1
- */
-public interface IExecutionListener {
-
-	/**
-	 * Notifies the listener that an attempt was made to execute a command with
-	 * no handler.
-	 * 
-	 * @param commandId
-	 *            The identifier of command that is not handled; never
-	 *            <code>null</code>
-	 * @param exception
-	 *            The exception that occurred; never <code>null</code>.
-	 */
-	public void notHandled(String commandId, NotHandledException exception);
-
-	/**
-	 * Notifies the listener that a command has failed to complete execution.
-	 * 
-	 * @param commandId
-	 *            The identifier of the command that has executed; never
-	 *            <code>null</code>.
-	 * @param exception
-	 *            The exception that occurred; never <code>null</code>.
-	 */
-	public void postExecuteFailure(String commandId,
-			ExecutionException exception);
-
-	/**
-	 * Notifies the listener that a command has completed execution
-	 * successfully.
-	 * 
-	 * @param commandId
-	 *            The identifier of the command that has executed; never
-	 *            <code>null</code>.
-	 * @param returnValue
-	 *            The return value from the command; may be <code>null</code>.
-	 */
-	public void postExecuteSuccess(String commandId, Object returnValue);
-
-	/**
-	 * Notifies the listener that a command is about to execute.
-	 * 
-	 * @param commandId
-	 *            The identifier of the command that is about to execute, never
-	 *            <code>null</code>.
-	 * @param event
-	 *            The event that will be passed to the <code>execute</code>
-	 *            method; never <code>null</code>.
-	 */
-	public void preExecute(String commandId, ExecutionEvent event);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.java
deleted file mode 100644
index 62b0442..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-
-/**
- * <p>
- * A listener to the execution of commands. This listener will be notified if
- * someone tries to execute a command and it is not enabled or not defined. The
- * listener also be notified if a command is about to execute, and when that
- * execution completes. It is not possible for the listener to prevent the
- * execution, only to respond to it in some way.
- * </p>
- * <p>
- * Clients may implement, but must not extend.
- * </p>
- * 
- * @since 3.2
- */
-public interface IExecutionListenerWithChecks extends IExecutionListener {
-
-	/**
-	 * Notifies the listener that an attempt was made to execute a command that
-	 * is not defined.
-	 * 
-	 * @param commandId
-	 *            The identifier of command that is not defined; never
-	 *            <code>null</code>
-	 * @param exception
-	 *            The exception that occurred; never <code>null</code>.
-	 */
-	public void notDefined(String commandId, NotDefinedException exception);
-
-	/**
-	 * Notifies the listener that an attempt was made to execute a command that
-	 * is disabled.
-	 * 
-	 * @param commandId
-	 *            The identifier of command that is not enabled; never
-	 *            <code>null</code>
-	 * @param exception
-	 *            The exception that occurred; never <code>null</code>.
-	 */
-	public void notEnabled(String commandId, NotEnabledException exception);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.java
deleted file mode 100644
index 6e977ef..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * A handler is the pluggable piece of a command that handles execution. Each
- * command can have zero or more handlers associated with it (in general), of
- * which only one will be active at any given moment in time. When the command
- * is asked to execute, it will simply pass that request on to its active
- * handler, if any.
- * 
- * @see AbstractHandler
- * @since 3.1
- */
-public interface IHandler {
-
-	/**
-	 * Registers an instance of <code>IHandlerListener</code> to listen for
-	 * changes to properties of this instance.
-	 * 
-	 * @param handlerListener
-	 *            the instance to register. Must not be <code>null</code>. If
-	 *            an attempt is made to register an instance which is already
-	 *            registered with this instance, no operation is performed.
-	 */
-	void addHandlerListener(IHandlerListener handlerListener);
-
-	/**
-	 * Disposes of this handler. This method is run once when the object is no
-	 * longer referenced. This can be used as an opportunity to unhook listeners
-	 * from other objects.
-	 */
-	public void dispose();
-
-	/**
-	 * Executes with the map of parameter values by name.
-	 * 
-	 * @param event
-	 *            An event containing all the information about the current
-	 *            state of the application; must not be <code>null</code>.
-	 * @return the result of the execution. Reserved for future use, must be
-	 *         <code>null</code>.
-	 * @throws ExecutionException
-	 *             if an exception occurred during execution.
-	 */
-	Object execute(ExecutionEvent event) throws ExecutionException;
-
-	/**
-	 * Returns whether this handler is capable of executing at this moment in
-	 * time. If the enabled state is other than true clients should also
-	 * consider implementing IHandler2 so they can be notified about framework
-	 * execution contexts.
-	 * 
-	 * @return <code>true</code> if the command is enabled; <code>false</code>
-	 *         otherwise.
-	 * @see IHandler2#setEnabled(Object)
-	 */
-	public boolean isEnabled();
-
-	/**
-	 * Returns whether this handler is really capable of handling delegation. In
-	 * the case of a handler that is a composition of other handlers, this reply
-	 * is intended to indicate whether the handler is truly capable of receiving
-	 * delegated responsibilities at this time.
-	 * 
-	 * @return <code>true</code> if the handler is handled; <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isHandled();
-
-	/**
-	 * Unregisters an instance of <code>IHandlerListener</code> listening for
-	 * changes to properties of this instance.
-	 * 
-	 * @param handlerListener
-	 *            the instance to unregister. Must not be <code>null</code>.
-	 *            If an attempt is made to unregister an instance which is not
-	 *            already registered with this instance, no operation is
-	 *            performed.
-	 */
-	void removeHandlerListener(IHandlerListener handlerListener);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler2.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler2.java
deleted file mode 100644
index c76b78c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler2.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands;
-
-/**
- * Extend the IHandler interface to provide some context for isEnabled()
- * requests. Clients should use {@link AbstractHandler} unless they need to
- * provide their own listener mechanism.
- * 
- * @since 3.4
- * @see AbstractHandler
- */
-public interface IHandler2 extends IHandler {
-	/**
-	 * Called by the framework to allow the handler to update its enabled state.
-	 * 
-	 * @param evaluationContext
-	 *            the state to evaluate against. May be <code>null</code>
-	 *            which indicates that the handler can query whatever model that
-	 *            is necessary. This context must not be cached.
-	 */
-	public void setEnabled(Object evaluationContext);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerAttributes.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerAttributes.java
deleted file mode 100644
index 8eef7e5..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerAttributes.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * <p>
- * Attribute constants that have special meanings within this package.  These
- * attributes can be used to communicate extra information from the handler to
- * either the command or the command manager.
- * </p>
- * 
- * @since 3.1
- */
-public interface IHandlerAttributes {
-
-	/**
-	 * <p>
-	 * The name of the attribute indicating whether the handler is handled.
-	 * This is intended largely for backward compatibility with the workbench
-	 * <code>RetargetAction</code> class.  It is used to indicate that while
-	 * the handler is handling a command, it should not be treated as such.
-	 * The command should act and behave as if it has no handler.
-	 * </p>
-	 */
-	public static final String ATTRIBUTE_HANDLED = "handled"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerListener.java
deleted file mode 100644
index 93bd38e..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>IHandler</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see IHandler#addHandlerListener(IHandlerListener)
- * @see IHandler#removeHandlerListener(IHandlerListener)
- */
-public interface IHandlerListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>IHandler</code> have changed. Specific details are described in
-     * the <code>HandlerEvent</code>.
-     * 
-     * @param handlerEvent
-     *            the handler event. Guaranteed not to be <code>null</code>.
-     */
-    void handlerChanged(HandlerEvent handlerEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java
deleted file mode 100644
index d93062c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-/**
- * <p>
- * State identifiers that are understood by named handle objects that implement
- * {@link IObjectWithState}.
- * </p>
- * <p>
- * Clients may implement or extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public interface INamedHandleStateIds {
-
-	/**
-	 * The state id used for overriding the description of a named handle
-	 * object. This state's value must return a {@link String}.
-	 */
-	public static String DESCRIPTION = "DESCRIPTION"; //$NON-NLS-1$
-
-	/**
-	 * The state id used for overriding the name of a named handle object. This
-	 * state's value must return a {@link String}.
-	 */
-	public static String NAME = "NAME"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java
deleted file mode 100644
index d447c7a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-/**
- * <p>
- * An object that holds zero or more state objects. This state information can
- * be shared between different instances of <code>IObjectWithState</code>.
- * </p>
- * <p>
- * Clients may implement, but must not extend this interface.
- * </p>
- * 
- * @see AbstractHandlerWithState
- * @since 3.2
- */
-public interface IObjectWithState {
-
-	/**
-	 * Adds state to this object.
-	 * 
-	 * @param id
-	 *            The identifier indicating the type of state being added; must
-	 *            not be <code>null</code>.
-	 * @param state
-	 *            The new state to add to this object; must not be
-	 *            <code>null</code>.
-	 */
-	public void addState(String id, State state);
-
-	/**
-	 * Gets the state with the given id.
-	 * 
-	 * @param stateId
-	 *            The identifier of the state to retrieve; must not be
-	 *            <code>null</code>.
-	 * @return The state; may be <code>null</code> if there is no state with
-	 *         the given id.
-	 */
-	public State getState(String stateId);
-
-	/**
-	 * Gets the identifiers for all of the state associated with this object.
-	 * 
-	 * @return All of the state identifiers; may be empty, but never
-	 *         <code>null</code>.
-	 */
-	public String[] getStateIds();
-
-	/**
-	 * Removes state from this object.
-	 * 
-	 * @param stateId
-	 *            The id of the state to remove from this object; must not be
-	 *            <code>null</code>.
-	 */
-	public void removeState(String stateId);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameter.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameter.java
deleted file mode 100644
index 1bc9229..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands;
-
-/**
- * <p>
- * A parameter for a command. A parameter identifies a type of information that
- * the command might accept. For example, a "Show View" command might accept the
- * id of a view for display. This parameter also identifies possible values, for
- * display in the user interface.
- * </p>
- * 
- * @since 3.1
- */
-public interface IParameter {
-
-	/**
-	 * Returns the identifier for this parameter.
-	 * 
-	 * @return The identifier; never <code>null</code>.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the human-readable name for this parameter.
-	 * 
-	 * @return The parameter name; never <code>null</code>.
-	 */
-	public String getName();
-
-	/**
-	 * Returns the values associated with this parameter.
-	 * 
-	 * @return The values associated with this parameter. This must not be
-	 *         <code>null</code>.
-	 * @throws ParameterValuesException
-	 *             If the values can't be retrieved for some reason.
-	 */
-	public IParameterValues getValues() throws ParameterValuesException;
-
-	/**
-	 * Returns whether parameter is optional. Otherwise, it is required.
-	 * 
-	 * @return <code>true</code> if the parameter is optional;
-	 *         <code>false</code> if it is required.
-	 */
-	public boolean isOptional();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.java
deleted file mode 100644
index efd4fa6..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of {@link ParameterType}.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * @see ParameterType#addListener(IParameterTypeListener)
- * @see ParameterType#removeListener(IParameterTypeListener)
- */
-public interface IParameterTypeListener {
-
-	/**
-	 * Notifies that one or more properties of an instance of
-	 * {@link ParameterType} have changed. Specific details are described in the
-	 * {@link ParameterTypeEvent}.
-	 * 
-	 * @param parameterTypeEvent
-	 *            the event. Guaranteed not to be <code>null</code>.
-	 */
-	void parameterTypeChanged(ParameterTypeEvent parameterTypeEvent);
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterValues.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterValues.java
deleted file mode 100644
index 9d5dec6..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterValues.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import java.util.Map;
-
-/**
- * <p>
- * The parameters for a command. This interface will only be consulted if the
- * parameters need to be displayed to the user. Otherwise, they will be ignored.
- * </p>
- * 
- * @since 3.1
- */
-public interface IParameterValues {
-
-	/**
-	 * Returns a map keyed by externalized names for parameter values. These
-	 * names should be human-readable, and are generally for display to the user
-	 * in a user interface of some sort. The values should be actual values that
-	 * will be interpreted by the handler for the command.
-	 * 
-	 * @return A map of the externalizable name of the parameter value (<code>String</code>)
-	 *         to the actual value of the parameter (<code>String</code>).
-	 */
-	public Map getParameterValues();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.java
deleted file mode 100644
index d45235c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-/**
- * <p>
- * A listener to changes in some state.
- * </p>
- * <p>
- * Clients may implement, but must not extend this interface.
- * </p>
- * 
- * @since 3.2
- */
-public interface IStateListener {
-
-	/**
-	 * Handles a change to the value in some state.
-	 * 
-	 * @param state
-	 *            The state that has changed; never <code>null</code>. The
-	 *            value for this state has been updated to the new value.
-	 * @param oldValue
-	 *            The old value; may be anything.
-	 */
-	public void handleStateChange(State state, Object oldValue);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.java
deleted file mode 100644
index 86fc992..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * A command parameter that has a declared type. This interface is intended to
- * be implemented by implementors of {@link IParameter} that will support
- * parameter types.
- * 
- * @since 3.2
- */
-public interface ITypedParameter {
-
-	/**
-	 * Returns the {@link ParameterType} associated with a command parameter or
-	 * <code>null</code> if the parameter does not declare a type.
-	 * <p>
-	 * Note that the parameter type returned may be undefined.
-	 * </p>
-	 * 
-	 * @return the parameter type associated with a command parameter or
-	 *         <code>null</code> if the parameter does not declare a type
-	 */
-	public ParameterType getParameterType();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java
deleted file mode 100644
index 89b6db5..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-
-/**
- * <p>
- * A named handle object that can carry state with it. This state can be used to
- * override the name or description.
- * </p>
- * <p>
- * Clients may neither instantiate nor extend this class.
- * </p>
- * 
- * @since 3.2
- */
-abstract class NamedHandleObjectWithState extends NamedHandleObject implements
-		IObjectWithState {
-
-	/**
-	 * An empty string array, which can be returned from {@link #getStateIds()}
-	 * if there is no state.
-	 */
-	private static final String[] NO_STATE = new String[0];
-
-	/**
-	 * The map of states currently held by this command. If this command has no
-	 * state, then this will be <code>null</code>.
-	 */
-	private Map states = null;
-
-	/**
-	 * Constructs a new instance of <code>NamedHandleObject<WithState/code>.
-	 * 
-	 * @param id
-	 *            The identifier for this handle; must not be <code>null</code>.
-	 */
-	protected NamedHandleObjectWithState(final String id) {
-		super(id);
-	}
-
-	public void addState(final String stateId, final State state) {
-		if (state == null) {
-			throw new NullPointerException("Cannot add a null state"); //$NON-NLS-1$
-		}
-
-		if (states == null) {
-			states = new HashMap(3);
-		}
-		states.put(stateId, state);
-	}
-
-	public final String getDescription() throws NotDefinedException {
-		final String description = super.getDescription(); // Trigger a NDE.
-
-		final State descriptionState = getState(INamedHandleStateIds.DESCRIPTION);
-		if (descriptionState != null) {
-			final Object value = descriptionState.getValue();
-			if (value != null) {
-				return value.toString();
-			}
-		}
-
-		return description;
-	}
-
-	public final String getName() throws NotDefinedException {
-		final String name = super.getName(); // Trigger a NDE, if necessary.
-
-		final State nameState = getState(INamedHandleStateIds.NAME);
-		if (nameState != null) {
-			final Object value = nameState.getValue();
-			if (value != null) {
-				return value.toString();
-			}
-		}
-
-		return name;
-	}
-
-	public final State getState(final String stateId) {
-		if ((states == null) || (states.isEmpty())) {
-			return null;
-		}
-
-		return (State) states.get(stateId);
-	}
-
-	public final String[] getStateIds() {
-		if ((states == null) || (states.isEmpty())) {
-			return NO_STATE;
-		}
-
-		final Set stateIds = states.keySet();
-		return (String[]) stateIds.toArray(new String[stateIds.size()]);
-	}
-
-	public void removeState(final String id) {
-		if (id == null) {
-			throw new NullPointerException("Cannot remove a null id"); //$NON-NLS-1$
-		}
-
-		if (states != null) {
-			states.remove(id);
-			if (states.isEmpty()) {
-				states = null;
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotEnabledException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotEnabledException.java
deleted file mode 100644
index 3659eda..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotEnabledException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that an attempt was made to execute a command that is not enabled.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.2
- */
-public final class NotEnabledException extends CommandException {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3257572788998124596L;
-
-    /**
-     * Creates a new instance of this class with the specified detail message.
-     * 
-     * @param s
-     *            the detail message; may be <code>null</code>.
-     */
-    public NotEnabledException(final String s) {
-        super(s);
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotHandledException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotHandledException.java
deleted file mode 100644
index 2b6bf34..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotHandledException.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that an attempt was made to access the properties of an unhandled
- * object.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class NotHandledException extends CommandException {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3256446914827726904L;
-
-    /**
-     * Creates a new instance of this class with the specified detail message.
-     * 
-     * @param s
-     *            the detail message.
-     */
-    public NotHandledException(final String s) {
-        super(s);
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java
deleted file mode 100644
index cfc6c45..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.HandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * Provides information about the type of a command parameter. Clients can use a
- * parameter type to check if an object matches the type of the parameter with
- * {@link #isCompatible(Object)} and can get an
- * {@link AbstractParameterValueConverter} to convert between objects matching
- * the parameter type and strings that encode the object's identity.
- * </p>
- * <p>
- * A command parameter is not required to declare a type. To determine if a
- * given parameter has a type, check if an {@link IParameter} implements
- * {@link ITypedParameter} and if so, use
- * {@link ITypedParameter#getParameterType()} like this:
- * </p>
- * 
- * <pre>
- *                   IParameter parameter = // ... get IParameter from Command
- *                   if (parameter instanceof ITypedParameter) {
- *                     ParameterType type = ((ITypedParameter)parameter).getParameterType();
- *                     if (type != null) {
- *                       // this parameter has a ParameterType
- *                     }
- *                   }
- * </pre>
- * 
- * @see IParameter
- * @see ITypedParameter#getParameterType()
- * @since 3.2
- */
-public final class ParameterType extends HandleObject implements Comparable {
-
-	/**
-	 * TODO: this was copied from
-	 * org.eclipse.core.internal.expressions.Expressions is there a better place
-	 * to reference this?
-	 * 
-	 * @param element
-	 *            The element to test; may be <code>null</code>.
-	 * @param type
-	 *            The type against which we are testing;may be <code>null</code>.
-	 * @return <code>true</code> if the <code>element</code> is an instance
-	 *         of <code>type</code>; <code>false</code> otherwise.
-	 */
-	private static final boolean isInstanceOf(final Object element,
-			final String type) {
-		// null isn't an instanceof of anything.
-		if (element == null) {
-			return false;
-		}
-		return isSubtype(element.getClass(), type);
-	}
-
-	/**
-	 * TODO: this was copied from
-	 * org.eclipse.core.internal.expressions.Expressions is there a better place
-	 * to reference this?
-	 * 
-	 * @param clazz
-	 *            The class to match; may be <code>null</code>.
-	 * @param type
-	 *            The type against which we are testing;may be <code>null</code>.
-	 * @return <code>true</code> if the <code>element</code> is an instance
-	 *         of <code>type</code>; <code>false</code> otherwise.
-	 */
-	private static final boolean isSubtype(final Class clazz, final String type) {
-		if (clazz.getName().equals(type)) {
-			return true;
-		}
-		final Class superClass = clazz.getSuperclass();
-		if (superClass != null && isSubtype(superClass, type)) {
-			return true;
-		}
-		final Class[] interfaces = clazz.getInterfaces();
-		for (int i = 0; i < interfaces.length; i++) {
-			if (isSubtype(interfaces[i], type)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * An {@link AbstractParameterValueConverter} for converting parameter
-	 * values between objects and strings. This may be <code>null</code>.
-	 */
-	private transient AbstractParameterValueConverter parameterTypeConverter;
-
-	/**
-	 * A string specifying the object type of this parameter type. This will be
-	 * <code>null</code> when the parameter type is undefined but never null
-	 * when it is defined.
-	 */
-	private transient String type = null;
-
-	/**
-	 * Constructs a new instance based on the given identifier. When a parameter
-	 * type is first constructed, it is undefined. Parameter types should only
-	 * be constructed by the {@link CommandManager} to ensure that the
-	 * identifier remains unique.
-	 * 
-	 * @param id
-	 *            The identifier for this type. This value must not be
-	 *            <code>null</code>, and must be unique amongst all parameter
-	 *            types.
-	 */
-	ParameterType(final String id) {
-		super(id);
-	}
-
-	/**
-	 * Adds a listener to this parameter type that will be notified when its
-	 * state changes.
-	 * 
-	 * @param listener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	public final void addListener(final IParameterTypeListener listener) {
-		addListenerObject(listener);
-	}
-
-	/**
-	 * Compares this parameter type with another object by comparing each of the
-	 * non-transient attributes.
-	 * 
-	 * @param object
-	 *            The object with which to compare; must be an instance of
-	 *            {@link ParameterType}.
-	 * @return A negative integer, zero or a positive integer, if the object is
-	 *         greater than, equal to or less than this parameter type.
-	 */
-	public final int compareTo(final Object object) {
-		final ParameterType castedObject = (ParameterType) object;
-		int compareTo = Util.compare(defined, castedObject.defined);
-		if (compareTo == 0) {
-			compareTo = Util.compare(id, castedObject.id);
-		}
-		return compareTo;
-	}
-
-	/**
-	 * <p>
-	 * Defines this parameter type, setting the defined property to
-	 * <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param type
-	 *            a string identifying the Java object type for this parameter
-	 *            type; <code>null</code> is interpreted as
-	 *            <code>"java.lang.Object"</code>
-	 * @param parameterTypeConverter
-	 *            an {@link AbstractParameterValueConverter} to perform
-	 *            string/object conversions for parameter values; may be
-	 *            <code>null</code>
-	 */
-	public final void define(final String type,
-			final AbstractParameterValueConverter parameterTypeConverter) {
-
-		final boolean definedChanged = !this.defined;
-		this.defined = true;
-
-		this.type = (type == null) ? Object.class.getName() : type;
-		this.parameterTypeConverter = parameterTypeConverter;
-
-		fireParameterTypeChanged(new ParameterTypeEvent(this, definedChanged));
-	}
-
-	/**
-	 * Notifies all listeners that this parameter type has changed. This sends
-	 * the given event to all of the listeners, if any.
-	 * 
-	 * @param event
-	 *            The event to send to the listeners; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireParameterTypeChanged(final ParameterTypeEvent event) {
-		if (event == null) {
-			throw new NullPointerException(
-					"Cannot send a null event to listeners."); //$NON-NLS-1$
-		}
-
-		if (!isListenerAttached()) {
-			return;
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IParameterTypeListener listener = (IParameterTypeListener) listeners[i];
-			listener.parameterTypeChanged(event);
-		}
-	}
-
-	/**
-	 * Returns the value converter associated with this parameter, if any.
-	 * 
-	 * @return The parameter value converter, or <code>null</code> if there is
-	 *         no value converter for this parameter.
-	 * @throws NotDefinedException
-	 *             if the parameter type is not currently defined
-	 */
-	public final AbstractParameterValueConverter getValueConverter()
-			throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot use getValueConverter() with an undefined ParameterType"); //$NON-NLS-1$
-		}
-
-		return parameterTypeConverter;
-	}
-
-	/**
-	 * Returns whether the provided value is compatible with this parameter
-	 * type. An object is compatible with a parameter type if the object is an
-	 * instance of the class defined as the parameter's type class.
-	 * 
-	 * @param value
-	 *            an object to check for compatibility with this parameter type;
-	 *            may be <code>null</code>.
-	 * @return <code>true</code> if the value is compatible with this type,
-	 *         <code>false</code> otherwise
-	 * @throws NotDefinedException
-	 *             if the parameter type is not currently defined
-	 */
-	public boolean isCompatible(Object value) throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot use isCompatible() with an undefined ParameterType"); //$NON-NLS-1$
-		}
-		return isInstanceOf(value, type);
-	}
-
-	/**
-	 * Unregisters listener for changes to properties of this parameter type.
-	 * 
-	 * @param listener
-	 *            the instance to unregister. Must not be <code>null</code>.
-	 *            If an attempt is made to unregister an instance which is not
-	 *            already registered with this instance, no operation is
-	 *            performed.
-	 */
-	public final void removeListener(final IParameterTypeListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * The string representation of this parameter type. For debugging purposes
-	 * only. This string should not be shown to an end user.
-	 * 
-	 * @return The string representation; never <code>null</code>.
-	 */
-	public final String toString() {
-		if (string == null) {
-			final StringBuffer stringBuffer = new StringBuffer();
-			stringBuffer.append("ParameterType("); //$NON-NLS-1$
-			stringBuffer.append(id);
-			stringBuffer.append(',');
-			stringBuffer.append(defined);
-			stringBuffer.append(')');
-			string = stringBuffer.toString();
-		}
-		return string;
-	}
-
-	/**
-	 * Makes this parameter type become undefined. Notification is sent to all
-	 * listeners.
-	 */
-	public final void undefine() {
-		string = null;
-
-		final boolean definedChanged = defined;
-		defined = false;
-
-		type = null;
-		parameterTypeConverter = null;
-
-		fireParameterTypeChanged(new ParameterTypeEvent(this, definedChanged));
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java
deleted file mode 100644
index cc51534..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.AbstractHandleObjectEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * {@link ParameterType}.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @see IParameterTypeListener#parameterTypeChanged(ParameterTypeEvent)
- * @since 3.2
- */
-public final class ParameterTypeEvent extends AbstractHandleObjectEvent {
-
-	/**
-	 * The parameter type that has changed. This value is never
-	 * <code>null</code>.
-	 */
-	private final ParameterType parameterType;
-
-	/**
-	 * Constructs a new instance.
-	 * 
-	 * @param parameterType
-	 *            The parameter type that changed; must not be <code>null</code>.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 */
-	ParameterTypeEvent(final ParameterType parameterType,
-			final boolean definedChanged) {
-
-		super(definedChanged);
-
-		if (parameterType == null) {
-			throw new NullPointerException();
-		}
-
-		this.parameterType = parameterType;
-	}
-
-	/**
-	 * Returns the instance of the parameter type that changed.
-	 * 
-	 * @return the instance of the parameter type that changed. Guaranteed not
-	 *         to be <code>null</code>.
-	 */
-	public final ParameterType getParameterType() {
-		return parameterType;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.java
deleted file mode 100644
index f871558..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that a problem occurred while converting a command parameter value
- * from string to object, or object to string.
- * 
- * @see AbstractParameterValueConverter
- * @since 3.2
- */
-public class ParameterValueConversionException extends CommandException {
-
-	/**
-	 * Generated serial version UID for this class.
-	 */
-	private static final long serialVersionUID = 4703077729505066104L;
-
-	/**
-	 * Creates a new instance of this class with the specified detail message.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 */
-	public ParameterValueConversionException(final String message) {
-		super(message);
-	}
-	
-	/**
-	 * Creates a new instance of this class with the specified detail message
-	 * and cause.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 * @param cause
-	 *            the cause; may be <code>null</code>.
-	 */
-	public ParameterValueConversionException(final String message,
-			final Throwable cause) {
-		super(message, cause);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValuesException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValuesException.java
deleted file mode 100644
index 4ec5183..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValuesException.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * <p>
- * Signals that a problem has occurred while trying to create an instance of
- * <code>IParameterValues</code>. In applications based on the registry
- * provided by core, this usually indicates a problem creating an
- * <code>IExecutableExtension</code>. For other applications, this exception
- * could be used to signify any general problem during initialization.
- * </p>
- * 
- * @since 3.1
- * 
- */
-public final class ParameterValuesException extends CommandException {
-
-	/**
-	 * Generated serial version UID for this class.
-	 */
-	private static final long serialVersionUID = 3618976793520845623L;
-
-	/**
-	 * Creates a new instance of this class with the specified detail message
-	 * and cause.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 * @param cause
-	 *            the cause; may be <code>null</code>.
-	 */
-	public ParameterValuesException(final String message, final Throwable cause) {
-		super(message, cause);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Parameterization.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Parameterization.java
deleted file mode 100644
index 3835ec2..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Parameterization.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A parameter with a specific value. This is usually a part of a
- * <code>ParameterizedCommand</code>, which is used to refer to a command
- * with a collection of parameterizations.
- * </p>
- * 
- * @since 3.1
- */
-public final class Parameterization {
-
-	/**
-	 * The constant integer hash code value meaning the hash code has not yet
-	 * been computed.
-	 */
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-
-	/**
-	 * A factor for computing the hash code for all parameterized commands.
-	 */
-	private static final int HASH_FACTOR = 89;
-
-	/**
-	 * The seed for the hash code for all parameterized commands.
-	 */
-	private static final int HASH_INITIAL = Parameterization.class.getName()
-			.hashCode();
-
-	/**
-	 * The hash code for this object. This value is computed lazily, and marked
-	 * as invalid when one of the values on which it is based changes.
-	 */
-	private transient int hashCode = HASH_CODE_NOT_COMPUTED;
-
-	/**
-	 * The parameter that is being parameterized. This value is never
-	 * <code>null</code>.
-	 */
-	private final IParameter parameter;
-
-	/**
-	 * The value that defines the parameterization. This value may be
-	 * <code>null</code>.
-	 */
-	private final String value;
-
-	/**
-	 * Constructs a new instance of <code>Parameterization</code>.
-	 * 
-	 * @param parameter
-	 *            The parameter that is being parameterized; must not be
-	 *            <code>null</code>.
-	 * @param value
-	 *            The value for the parameter; may be <code>null</code>.
-	 */
-	public Parameterization(final IParameter parameter, final String value) {
-		if (parameter == null) {
-			throw new NullPointerException(
-					"You cannot parameterize a null parameter"); //$NON-NLS-1$
-		}
-
-		this.parameter = parameter;
-		this.value = value;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public final boolean equals(final Object object) {
-		if (this == object) {
-			return true;
-		}
-
-		if (!(object instanceof Parameterization)) {
-			return false;
-		}
-
-		final Parameterization parameterization = (Parameterization) object;
-		if (!(Util.equals(this.parameter.getId(), parameterization.parameter
-				.getId()))) {
-			return false;
-		}
-
-		return Util.equals(this.value, parameterization.value);
-	}
-
-	/**
-	 * Returns the parameter that is being parameterized.
-	 * 
-	 * @return The parameter; never <code>null</code>.
-	 */
-	public final IParameter getParameter() {
-		return parameter;
-	}
-
-	/**
-	 * Returns the value for the parameter in this parameterization.
-	 * 
-	 * @return The value; may be <code>null</code>.
-	 */
-	public final String getValue() {
-		return value;
-	}
-
-	/**
-	 * Returns the human-readable name for the current value, if any. If the
-	 * name cannot be found, then it simply returns the value. It also ensures
-	 * that any <code>null</code> values are converted into an empty string.
-	 * 
-	 * @return The human-readable name of the value; never <code>null</code>.
-	 * @throws ParameterValuesException
-	 *             If the parameter needed to be initialized, but couldn't be.
-	 */
-	public final String getValueName() throws ParameterValuesException {
-		final Map parameterValues = parameter.getValues().getParameterValues();
-		final Iterator parameterValueItr = parameterValues.entrySet()
-				.iterator();
-		String returnValue = null;
-		while (parameterValueItr.hasNext()) {
-			final Map.Entry entry = (Map.Entry) parameterValueItr.next();
-			final String currentValue = (String) entry.getValue();
-			if (Util.equals(value, currentValue)) {
-				returnValue = (String) entry.getKey();
-				break;
-			}
-		}
-
-		if (returnValue == null) {
-			return Util.ZERO_LENGTH_STRING;
-		}
-
-		return returnValue;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public final int hashCode() {
-		if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			hashCode = HASH_INITIAL * HASH_FACTOR + Util.hashCode(parameter);
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(value);
-			if (hashCode == HASH_CODE_NOT_COMPUTED) {
-				hashCode++;
-			}
-		}
-		return hashCode;
-
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java
deleted file mode 100644
index fdcc471..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java
+++ /dev/null
@@ -1,719 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Benjamin Muskalla - bug 222861 [Commands] ParameterizedCommand#equals broken
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A command that has had one or more of its parameters specified. This class
- * serves as a utility class for developers that need to manipulate commands
- * with parameters. It handles the behaviour of generating a parameter map and a
- * human-readable name.
- * </p>
- * 
- * @since 3.1
- */
-public final class ParameterizedCommand implements Comparable {
-
-	/**
-	 * The constant integer hash code value meaning the hash code has not yet
-	 * been computed.
-	 */
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-
-	/**
-	 * A factor for computing the hash code for all parameterized commands.
-	 */
-	private static final int HASH_FACTOR = 89;
-
-	/**
-	 * The seed for the hash code for all parameterized commands.
-	 */
-	private static final int HASH_INITIAL = ParameterizedCommand.class
-			.getName().hashCode();
-
-	/**
-	 * The index of the parameter id in the parameter values.
-	 * 
-	 * @deprecated no longer used
-	 */
-	public static final int INDEX_PARAMETER_ID = 0;
-
-	/**
-	 * The index of the human-readable name of the parameter itself, in the
-	 * parameter values.
-	 * 
-	 * @deprecated no longer used
-	 */
-	public static final int INDEX_PARAMETER_NAME = 1;
-
-	/**
-	 * The index of the human-readable name of the value of the parameter for
-	 * this command.
-	 * 
-	 * @deprecated no longer used
-	 */
-	public static final int INDEX_PARAMETER_VALUE_NAME = 2;
-
-	/**
-	 * The index of the value of the parameter that the command can understand.
-	 * 
-	 * @deprecated no longer used
-	 */
-	public static final int INDEX_PARAMETER_VALUE_VALUE = 3;
-
-	/**
-	 * Escapes special characters in the command id, parameter ids and parameter
-	 * values for {@link #serialize()}. The special characters
-	 * {@link CommandManager#PARAMETER_START_CHAR},
-	 * {@link CommandManager#PARAMETER_END_CHAR},
-	 * {@link CommandManager#ID_VALUE_CHAR},
-	 * {@link CommandManager#PARAMETER_SEPARATOR_CHAR} and
-	 * {@link CommandManager#ESCAPE_CHAR} are escaped by prepending a
-	 * {@link CommandManager#ESCAPE_CHAR} character.
-	 * 
-	 * @param rawText
-	 *            a <code>String</code> to escape special characters in for
-	 *            serialization.
-	 * @return a <code>String</code> representing <code>rawText</code> with
-	 *         special serialization characters escaped
-	 * @since 3.2
-	 */
-	private static final String escape(final String rawText) {
-
-		// defer initialization of a StringBuffer until we know we need one
-		StringBuffer buffer = null;
-
-		for (int i = 0; i < rawText.length(); i++) {
-
-			char c = rawText.charAt(i);
-			switch (c) {
-			case CommandManager.PARAMETER_START_CHAR:
-			case CommandManager.PARAMETER_END_CHAR:
-			case CommandManager.ID_VALUE_CHAR:
-			case CommandManager.PARAMETER_SEPARATOR_CHAR:
-			case CommandManager.ESCAPE_CHAR:
-				if (buffer == null) {
-					buffer = new StringBuffer(rawText.substring(0, i));
-				}
-				buffer.append(CommandManager.ESCAPE_CHAR);
-				buffer.append(c);
-				break;
-			default:
-				if (buffer != null) {
-					buffer.append(c);
-				}
-				break;
-			}
-
-		}
-
-		if (buffer == null) {
-			return rawText;
-		}
-		return buffer.toString();
-	}
-
-	/**
-	 * Generates every possible combination of parameter values for the given
-	 * parameters. Parameters values that cannot be initialized are just
-	 * ignored. Optional parameters are considered.
-	 * 
-	 * @param startIndex
-	 *            The index in the <code>parameters</code> that we should
-	 *            process. This must be a valid index.
-	 * @param parameters
-	 *            The parameters in to process; must not be <code>null</code>.
-	 * @return A collection (<code>Collection</code>) of combinations (<code>List</code>
-	 *         of <code>Parameterization</code>).
-	 */
-	private static final Collection expandParameters(final int startIndex,
-			final IParameter[] parameters) {
-		final int nextIndex = startIndex + 1;
-		final boolean noMoreParameters = (nextIndex >= parameters.length);
-
-		final IParameter parameter = parameters[startIndex];
-		final List parameterizations = new ArrayList();
-		if (parameter.isOptional()) {
-			parameterizations.add(null);
-		}
-
-		IParameterValues values = null;
-		try {
-			values = parameter.getValues();
-		} catch (final ParameterValuesException e) {
-			if (noMoreParameters) {
-				return parameterizations;
-			}
-
-			// Make recursive call
-			return expandParameters(nextIndex, parameters);
-		}
-		final Map parameterValues = values.getParameterValues();
-		final Iterator parameterValueItr = parameterValues.entrySet()
-				.iterator();
-		while (parameterValueItr.hasNext()) {
-			final Map.Entry entry = (Map.Entry) parameterValueItr.next();
-			final Parameterization parameterization = new Parameterization(
-					parameter, (String) entry.getValue());
-			parameterizations.add(parameterization);
-		}
-
-		// Check if another iteration will produce any more names.
-		final int parameterizationCount = parameterizations.size();
-		if (noMoreParameters) {
-			// This is it, so just return the current parameterizations.
-			for (int i = 0; i < parameterizationCount; i++) {
-				final Parameterization parameterization = (Parameterization) parameterizations
-						.get(i);
-				final List combination = new ArrayList(1);
-				combination.add(parameterization);
-				parameterizations.set(i, combination);
-			}
-			return parameterizations;
-		}
-
-		// Make recursive call
-		final Collection suffixes = expandParameters(nextIndex, parameters);
-		while (suffixes.remove(null)) {
-			// just keep deleting the darn things.
-		}
-		if (suffixes.isEmpty()) {
-			// This is it, so just return the current parameterizations.
-			for (int i = 0; i < parameterizationCount; i++) {
-				final Parameterization parameterization = (Parameterization) parameterizations
-						.get(i);
-				final List combination = new ArrayList(1);
-				combination.add(parameterization);
-				parameterizations.set(i, combination);
-			}
-			return parameterizations;
-		}
-		final Collection returnValue = new ArrayList();
-		final Iterator suffixItr = suffixes.iterator();
-		while (suffixItr.hasNext()) {
-			final List combination = (List) suffixItr.next();
-			final int combinationSize = combination.size();
-			for (int i = 0; i < parameterizationCount; i++) {
-				final Parameterization parameterization = (Parameterization) parameterizations
-						.get(i);
-				final List newCombination = new ArrayList(combinationSize + 1);
-				newCombination.add(parameterization);
-				newCombination.addAll(combination);
-				returnValue.add(newCombination);
-			}
-		}
-
-		return returnValue;
-	}
-
-	/**
-	 * <p>
-	 * Generates all the possible combinations of command parameterizations for
-	 * the given command. If the command has no parameters, then this is simply
-	 * a parameterized version of that command. If a parameter is optional, both
-	 * the included and not included cases are considered.
-	 * </p>
-	 * <p>
-	 * If one of the parameters cannot be loaded due to a
-	 * <code>ParameterValuesException</code>, then it is simply ignored.
-	 * </p>
-	 * 
-	 * @param command
-	 *            The command for which the parameter combinations should be
-	 *            generated; must not be <code>null</code>.
-	 * @return A collection of <code>ParameterizedCommand</code> instances
-	 *         representing all of the possible combinations. This value is
-	 *         never empty and it is never <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the command is not defined.
-	 */
-	public static final Collection generateCombinations(final Command command)
-			throws NotDefinedException {
-		final IParameter[] parameters = command.getParameters();
-		if (parameters == null) {
-			return Collections
-					.singleton(new ParameterizedCommand(command, null));
-		}
-
-		final Collection expansion = expandParameters(0, parameters);
-		final Collection combinations = new ArrayList(expansion.size());
-		final Iterator expansionItr = expansion.iterator();
-		while (expansionItr.hasNext()) {
-			final List combination = (List) expansionItr.next();
-			if (combination == null) {
-				combinations.add(new ParameterizedCommand(command, null));
-			} else {
-				while (combination.remove(null)) {
-					// Just keep removing while there are null entries left.
-				}
-				if (combination.isEmpty()) {
-					combinations.add(new ParameterizedCommand(command, null));
-				} else {
-					final Parameterization[] parameterizations = (Parameterization[]) combination
-							.toArray(new Parameterization[combination.size()]);
-					combinations.add(new ParameterizedCommand(command,
-							parameterizations));
-				}
-			}
-		}
-
-		return combinations;
-	}
-
-	/**
-	 * Take a command and a map of parameter IDs to values, and generate the
-	 * appropriate parameterized command.
-	 * 
-	 * @param command
-	 *            The command object. Must not be <code>null</code>.
-	 * @param parameters
-	 *            A map of String parameter ids to objects. May be
-	 *            <code>null</code>.
-	 * @return the parameterized command, or <code>null</code> if it could not
-	 *         be generated
-	 * @since 3.4
-	 */
-	public static final ParameterizedCommand generateCommand(Command command,
-			Map parameters) {
-		// no parameters
-		if (parameters == null || parameters.isEmpty()) {
-			return new ParameterizedCommand(command, null);
-		}
-
-		try {
-			ArrayList parms = new ArrayList();
-			Iterator i = parameters.keySet().iterator();
-
-			// iterate over given parameters
-			while (i.hasNext()) {
-				String key = (String) i.next();
-				IParameter parameter = null;
-				// get the parameter from the command
-				parameter = command.getParameter(key);
-
-				// if the parameter is defined add it to the parameter list
-				if (parameter == null) {
-					return null;
-				}
-				ParameterType parameterType = command.getParameterType(key);
-				if (parameterType == null) {
-					parms.add(new Parameterization(parameter,
-							(String) parameters.get(key)));
-				} else {
-					AbstractParameterValueConverter valueConverter = parameterType
-							.getValueConverter();
-					if (valueConverter != null) {
-						String val = valueConverter.convertToString(parameters
-								.get(key));
-						parms.add(new Parameterization(parameter, val));
-					} else {
-						parms.add(new Parameterization(parameter,
-								(String) parameters.get(key)));
-					}
-				}
-			}
-
-			// convert the parameters to an Parameterization array and create
-			// the command
-			return new ParameterizedCommand(command, (Parameterization[]) parms
-					.toArray(new Parameterization[parms.size()]));
-		} catch (NotDefinedException e) {
-		} catch (ParameterValueConversionException e) {
-		}
-		return null;
-	}
-
-	/**
-	 * The base command which is being parameterized. This value is never
-	 * <code>null</code>.
-	 */
-	private final Command command;
-
-	/**
-	 * The hash code for this object. This value is computed lazily, and marked
-	 * as invalid when one of the values on which it is based changes.
-	 */
-	private transient int hashCode = HASH_CODE_NOT_COMPUTED;
-
-	/**
-	 * This is an array of parameterization defined for this command. This value
-	 * may be <code>null</code> if the command has no parameters.
-	 */
-	private final Parameterization[] parameterizations;
-
-	private String name;
-
-	/**
-	 * Constructs a new instance of <code>ParameterizedCommand</code> with
-	 * specific values for zero or more of its parameters.
-	 * 
-	 * @param command
-	 *            The command that is parameterized; must not be
-	 *            <code>null</code>.
-	 * @param parameterizations
-	 *            An array of parameterizations binding parameters to values for
-	 *            the command. This value may be <code>null</code>.
-	 */
-	public ParameterizedCommand(final Command command,
-			final Parameterization[] parameterizations) {
-		if (command == null) {
-			throw new NullPointerException(
-					"A parameterized command cannot have a null command"); //$NON-NLS-1$
-		}
-
-		this.command = command;
-		IParameter[] parms = null;
-		try {
-			parms = command.getParameters();
-		} catch (NotDefinedException e) {
-			// This should not happen.
-		}
-		if (parameterizations != null && parameterizations.length>0 && parms != null) {
-			int parmIndex = 0;
-			Parameterization[] params = new Parameterization[parameterizations.length];
-			for (int j = 0; j < parms.length; j++) {
-				for (int i = 0; i < parameterizations.length; i++) {
-					Parameterization pm = parameterizations[i];
-					if (parms[j].equals(pm.getParameter())) {
-						params[parmIndex++] = pm;
-					}
-				}
-			}
-			this.parameterizations = params;
-		} else {
-			this.parameterizations = null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Comparable#compareTo(java.lang.Object)
-	 */
-	public final int compareTo(final Object object) {
-		final ParameterizedCommand command = (ParameterizedCommand) object;
-		final boolean thisDefined = this.command.isDefined();
-		final boolean otherDefined = command.command.isDefined();
-		if (!thisDefined || !otherDefined) {
-			return Util.compare(thisDefined, otherDefined);
-		}
-
-		try {
-			final int compareTo = getName().compareTo(command.getName());
-			if (compareTo == 0) {
-				return getId().compareTo(command.getId());
-			}
-			return compareTo;
-		} catch (final NotDefinedException e) {
-			throw new Error(
-					"Concurrent modification of a command's defined state"); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public final boolean equals(final Object object) {
-		if (this == object) {
-			return true;
-		}
-
-		if (!(object instanceof ParameterizedCommand)) {
-			return false;
-		}
-
-		final ParameterizedCommand command = (ParameterizedCommand) object;
-		if (!Util.equals(this.command, command.command)) {
-			return false;
-		}
-
-		return Util.equals(this.parameterizations, command.parameterizations);
-	}
-
-	/**
-	 * Executes this command with its parameters. This method will succeed
-	 * regardless of whether the command is enabled or defined. It is
-	 * preferrable to use {@link #executeWithChecks(Object, Object)}.
-	 * 
-	 * @param trigger
-	 *            The object that triggered the execution; may be
-	 *            <code>null</code>.
-	 * @param applicationContext
-	 *            The state of the application at the time the execution was
-	 *            triggered; may be <code>null</code>.
-	 * @return The result of the execution; may be <code>null</code>.
-	 * @throws ExecutionException
-	 *             If the handler has problems executing this command.
-	 * @throws NotHandledException
-	 *             If there is no handler.
-	 * @deprecated Please use {@link #executeWithChecks(Object, Object)}
-	 *             instead.
-	 */
-	public final Object execute(final Object trigger,
-			final Object applicationContext) throws ExecutionException,
-			NotHandledException {
-		return command.execute(new ExecutionEvent(command, getParameterMap(),
-				trigger, applicationContext));
-	}
-
-	/**
-	 * Executes this command with its parameters. This does extra checking to
-	 * see if the command is enabled and defined. If it is not both enabled and
-	 * defined, then the execution listeners will be notified and an exception
-	 * thrown.
-	 * 
-	 * @param trigger
-	 *            The object that triggered the execution; may be
-	 *            <code>null</code>.
-	 * @param applicationContext
-	 *            The state of the application at the time the execution was
-	 *            triggered; may be <code>null</code>.
-	 * @return The result of the execution; may be <code>null</code>.
-	 * @throws ExecutionException
-	 *             If the handler has problems executing this command.
-	 * @throws NotDefinedException
-	 *             If the command you are trying to execute is not defined.
-	 * @throws NotEnabledException
-	 *             If the command you are trying to execute is not enabled.
-	 * @throws NotHandledException
-	 *             If there is no handler.
-	 * @since 3.2
-	 */
-	public final Object executeWithChecks(final Object trigger,
-			final Object applicationContext) throws ExecutionException,
-			NotDefinedException, NotEnabledException, NotHandledException {
-		return command.executeWithChecks(new ExecutionEvent(command,
-				getParameterMap(), trigger, applicationContext));
-	}
-
-	/**
-	 * Returns the base command. It is possible for more than one parameterized
-	 * command to have the same identifier.
-	 * 
-	 * @return The command; never <code>null</code>, but may be undefined.
-	 */
-	public final Command getCommand() {
-		return command;
-	}
-
-	/**
-	 * Returns the command's base identifier. It is possible for more than one
-	 * parameterized command to have the same identifier.
-	 * 
-	 * @return The command id; never <code>null</code>.
-	 */
-	public final String getId() {
-		return command.getId();
-	}
-
-	/**
-	 * Returns a human-readable representation of this command with all of its
-	 * parameterizations.
-	 * 
-	 * @return The human-readable representation of this parameterized command;
-	 *         never <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the underlying command is not defined.
-	 */
-	public final String getName() throws NotDefinedException {
-		if (name == null) {
-			final StringBuffer nameBuffer = new StringBuffer();
-			nameBuffer.append(command.getName());
-			if (parameterizations != null) {
-				nameBuffer.append(" ("); //$NON-NLS-1$
-				final int parameterizationCount = parameterizations.length;
-				for (int i = 0; i < parameterizationCount; i++) {
-					final Parameterization parameterization = parameterizations[i];
-					nameBuffer
-							.append(parameterization.getParameter().getName());
-					nameBuffer.append(": "); //$NON-NLS-1$
-					try {
-						nameBuffer.append(parameterization.getValueName());
-					} catch (final ParameterValuesException e) {
-						/*
-						 * Just let it go for now. If someone complains we can
-						 * add more info later.
-						 */
-					}
-
-					// If there is another item, append a separator.
-					if (i + 1 < parameterizationCount) {
-						nameBuffer.append(", "); //$NON-NLS-1$
-					}
-				}
-				nameBuffer.append(')');
-			}
-			name = nameBuffer.toString();
-		}
-		return name;
-	}
-
-	/**
-	 * Returns the parameter map, as can be used to construct an
-	 * <code>ExecutionEvent</code>.
-	 * 
-	 * @return The map of parameter ids (<code>String</code>) to parameter
-	 *         values (<code>String</code>). This map is never
-	 *         <code>null</code>, but may be empty.
-	 */
-	public final Map getParameterMap() {
-		if ((parameterizations == null) || (parameterizations.length == 0)) {
-			return Collections.EMPTY_MAP;
-		}
-
-		final Map parameterMap = new HashMap();
-		for (int i = 0; i < parameterizations.length; i++) {
-			final Parameterization parameterization = parameterizations[i];
-			parameterMap.put(parameterization.getParameter().getId(),
-					parameterization.getValue());
-		}
-		return parameterMap;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public final int hashCode() {
-		if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			hashCode = HASH_INITIAL * HASH_FACTOR + Util.hashCode(command);
-			hashCode = hashCode * HASH_FACTOR;
-			if (parameterizations != null) {
-				for (int i = 0; i < parameterizations.length; i++) {
-					hashCode += Util.hashCode(parameterizations[i]);
-				}
-			}
-			if (hashCode == HASH_CODE_NOT_COMPUTED) {
-				hashCode++;
-			}
-		}
-		return hashCode;
-	}
-
-	/**
-	 * Returns a {@link String} containing the command id, parameter ids and
-	 * parameter values for this {@link ParameterizedCommand}. The returned
-	 * {@link String} can be stored by a client and later used to reconstruct an
-	 * equivalent {@link ParameterizedCommand} using the
-	 * {@link CommandManager#deserialize(String)} method.
-	 * <p>
-	 * The syntax of the returned {@link String} is as follows:
-	 * </p>
-	 * 
-	 * <blockquote>
-	 * <code>serialization = <u>commandId</u> [ '(' parameters ')' ]</code><br>
-	 * <code>parameters = parameter [ ',' parameters ]</code><br>
-	 * <code>parameter = <u>parameterId</u> [ '=' <u>parameterValue</u> ]</code>
-	 * </blockquote>
-	 * 
-	 * <p>
-	 * In the syntax above, sections inside square-brackets are optional. The
-	 * characters in single quotes (<code>(</code>, <code>)</code>,
-	 * <code>,</code> and <code>=</code>) indicate literal characters.
-	 * </p>
-	 * <p>
-	 * <code><u>commandId</u></code> represents the command id encoded with
-	 * separator characters escaped. <code><u>parameterId</u></code> and
-	 * <code><u>parameterValue</u></code> represent the parameter ids and
-	 * values encoded with separator characters escaped. The separator
-	 * characters <code>(</code>, <code>)</code>, <code>,</code> and
-	 * <code>=</code> are escaped by prepending a <code>%</code>. This
-	 * requires <code>%</code> to be escaped, which is also done by prepending
-	 * a <code>%</code>.
-	 * </p>
-	 * <p>
-	 * The order of the parameters is not defined (and not important). A missing
-	 * <code><u>parameterValue</u></code> indicates that the value of the
-	 * parameter is <code>null</code>.
-	 * </p>
-	 * <p>
-	 * For example, the string shown below represents a serialized parameterized
-	 * command that can be used to show the Resource perspective:
-	 * </p>
-	 * <p>
-	 * <code>org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.ui.resourcePerspective)</code>
-	 * </p>
-	 * <p>
-	 * This example shows the more general form with multiple parameters,
-	 * <code>null</code> value parameters, and escaped <code>=</code> in the
-	 * third parameter value.
-	 * </p>
-	 * <p>
-	 * <code>command.id(param1.id=value1,param2.id,param3.id=esc%=val3)</code>
-	 * </p>
-	 * 
-	 * @return A string containing the escaped command id, parameter ids and
-	 *         parameter values; never <code>null</code>.
-	 * @see CommandManager#deserialize(String)
-	 * @since 3.2
-	 */
-	public final String serialize() {
-		final String escapedId = escape(getId());
-
-		if ((parameterizations == null) || (parameterizations.length == 0)) {
-			return escapedId;
-		}
-
-		final StringBuffer buffer = new StringBuffer(escapedId);
-		buffer.append(CommandManager.PARAMETER_START_CHAR);
-
-		for (int i = 0; i < parameterizations.length; i++) {
-
-			if (i > 0) {
-				// insert separator between parameters
-				buffer.append(CommandManager.PARAMETER_SEPARATOR_CHAR);
-			}
-
-			final Parameterization parameterization = parameterizations[i];
-			final String parameterId = parameterization.getParameter().getId();
-			final String escapedParameterId = escape(parameterId);
-
-			buffer.append(escapedParameterId);
-
-			final String parameterValue = parameterization.getValue();
-			if (parameterValue != null) {
-				final String escapedParameterValue = escape(parameterValue);
-				buffer.append(CommandManager.ID_VALUE_CHAR);
-				buffer.append(escapedParameterValue);
-			}
-		}
-
-		buffer.append(CommandManager.PARAMETER_END_CHAR);
-
-		return buffer.toString();
-	}
-
-	public final String toString() {
-		final StringBuffer buffer = new StringBuffer();
-		buffer.append("ParameterizedCommand("); //$NON-NLS-1$
-		buffer.append(command);
-		buffer.append(',');
-		buffer.append(parameterizations);
-		buffer.append(')');
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.java
deleted file mode 100644
index 76da8a9..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that an exception occured while serializing a
- * {@link ParameterizedCommand} to a string or deserializing a String to a
- * {@link ParameterizedCommand}.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.2
- */
-public final class SerializationException extends CommandException {
-
-	/**
-	 * Generated serial version UID for this class.
-	 */
-	private static final long serialVersionUID = 2691599674561684949L;
-
-	/**
-	 * Creates a new instance of this class with the specified detail message.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 */
-	public SerializationException(final String message) {
-		super(message);
-	}
-	
-	/**
-	 * Creates a new instance of this class with the specified detail message
-	 * and cause.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 * @param cause
-	 *            the cause; may be <code>null</code>.
-	 */
-	public SerializationException(final String message, final Throwable cause) {
-		super(message, cause);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java
deleted file mode 100644
index 7a82373..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A piece of state information that can be shared between objects, and might be
- * persisted between sessions. This can be used for commands that toggle between
- * two states and wish to pass this state information between different
- * handlers.
- * </p>
- * <p>
- * This state object can either be used as a single state object shared between
- * several commands, or one state object per command -- depending on the needs
- * of the application.
- * </p>
- * <p>
- * Clients may instantiate or extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public class State extends EventManager {
-
-	/**
-	 * The identifier of the state; may be <code>null</code> if it has not
-	 * been initialized.
-	 */
-	private String id;
-
-	/**
-	 * The value held by this state; may be anything at all.
-	 */
-	private Object value;
-
-	/**
-	 * Adds a listener to changes for this state.
-	 * 
-	 * @param listener
-	 *            The listener to add; must not be <code>null</code>.
-	 */
-	public void addListener(final IStateListener listener) {
-		addListenerObject(listener);
-	}
-
-	/**
-	 * Disposes of this state. This allows the state to unregister itself with
-	 * any managers or as a listener.
-	 */
-	public void dispose() {
-		// The default implementation does nothing.
-	}
-
-	/**
-	 * Notifies listeners to this state that it has changed in some way.
-	 * 
-	 * @param oldValue
-	 *            The old value; may be anything.
-	 */
-	protected final void fireStateChanged(final Object oldValue) {
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IStateListener listener = (IStateListener) listeners[i];
-			listener.handleStateChange(this, oldValue);
-		}
-	}
-
-	/**
-	 * Returns the identifier for this state.
-	 * 
-	 * @return The id; may be <code>null</code>.
-	 */
-	public final String getId() {
-		return id;
-	}
-
-	/**
-	 * The current value associated with this state. This can be any type of
-	 * object, but implementations will usually restrict this value to a
-	 * particular type.
-	 * 
-	 * @return The current value; may be anything.
-	 */
-
-	public Object getValue() {
-		return value;
-	}
-
-	/**
-	 * Removes a listener to changes from this state.
-	 * 
-	 * @param listener
-	 *            The listener to remove; must not be <code>null</code>.
-	 */
-
-	public void removeListener(final IStateListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * Sets the identifier for this object.  This method should only be called
-	 * by the command framework.  Clients should not call this method.
-	 * 
-	 * @param id
-	 *            The id; must not be <code>null</code>.
-	 */
-	public void setId(final String id) {
-		this.id = id;
-	}
-
-	/**
-	 * Sets the value for this state object.
-	 * 
-	 * @param value
-	 *            The value to set; may be anything.
-	 */
-	public void setValue(final Object value) {
-		if (!Util.equals(this.value, value)) {
-			final Object oldValue = this.value;
-			this.value = value;
-			fireStateChanged(oldValue);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractBitSetEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractBitSetEvent.java
deleted file mode 100644
index c4a6a44..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractBitSetEvent.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.commands.common;
-
-/**
- * <p>
- * An event that carries with it two or more boolean values.  This provides a
- * single integer value which can then be used as a bit set.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class AbstractBitSetEvent {
-
-	/**
-	 * A collection of bits representing whether certain values have changed. A
-	 * bit is set (i.e., <code>1</code>) if the corresponding property has
-	 * changed. It can be assumed that this value will be correctly initialized
-	 * by the superconstructor.
-	 */
-	protected int changedValues = 0;
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractHandleObjectEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractHandleObjectEvent.java
deleted file mode 100644
index 250cfbc..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractHandleObjectEvent.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands.common;
-
-/**
- * <p>
- * An event fired from a <code>NamedHandleObject</code>. This provides
- * notification of changes to the defined state, the name and the description.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class AbstractHandleObjectEvent extends AbstractBitSetEvent {
-
-	/**
-	 * The bit used to represent whether the category has changed its defined
-	 * state.
-	 */
-	protected static final int CHANGED_DEFINED = 1;
-
-	/**
-	 * The last used bit so that subclasses can add more properties.
-	 */
-	protected static final int LAST_BIT_USED_ABSTRACT_HANDLE = CHANGED_DEFINED;
-
-	/**
-	 * Constructs a new instance of <code>AbstractHandleObjectEvent</code>.
-	 * 
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 */
-	protected AbstractHandleObjectEvent(final boolean definedChanged) {
-		if (definedChanged) {
-			changedValues |= CHANGED_DEFINED;
-		}
-	}
-
-	/**
-	 * Returns whether or not the defined property changed.
-	 * 
-	 * @return <code>true</code>, iff the defined property changed.
-	 */
-	public final boolean isDefinedChanged() {
-		return ((changedValues & CHANGED_DEFINED) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractNamedHandleEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractNamedHandleEvent.java
deleted file mode 100644
index b76a796..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractNamedHandleEvent.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands.common;
-
-/**
- * <p>
- * An event fired from a <code>NamedHandleObject</code>. This provides
- * notification of changes to the defined state, the name and the description.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class AbstractNamedHandleEvent extends
-		AbstractHandleObjectEvent {
-
-	/**
-	 * The bit used to represent whether the category has changed its
-	 * description.
-	 */
-	protected static final int CHANGED_DESCRIPTION = 1 << LAST_BIT_USED_ABSTRACT_HANDLE;
-
-	/**
-	 * The bit used to represent whether the category has changed its name.
-	 */
-	protected static final int CHANGED_NAME = 1 << LAST_BIT_USED_ABSTRACT_HANDLE;
-
-	/**
-	 * The last used bit so that subclasses can add more properties.
-	 */
-	protected static final int LAST_USED_BIT = CHANGED_NAME;
-
-	/**
-	 * Constructs a new instance of <code>AbstractHandleObjectEvent</code>.
-	 * 
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 */
-	protected AbstractNamedHandleEvent(final boolean definedChanged,
-			final boolean descriptionChanged, final boolean nameChanged) {
-		super(definedChanged);
-
-		if (descriptionChanged) {
-			changedValues |= CHANGED_DESCRIPTION;
-		}
-		if (nameChanged) {
-			changedValues |= CHANGED_NAME;
-		}
-	}
-
-	/**
-	 * Returns whether or not the description property changed.
-	 * 
-	 * @return <code>true</code>, iff the description property changed.
-	 */
-	public final boolean isDescriptionChanged() {
-		return ((changedValues & CHANGED_DESCRIPTION) != 0);
-	}
-
-	/**
-	 * Returns whether or not the name property changed.
-	 * 
-	 * @return <code>true</code>, iff the name property changed.
-	 */
-	public final boolean isNameChanged() {
-		return ((changedValues & CHANGED_NAME) != 0);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java
deleted file mode 100644
index 253fa61..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.common;
-
-/**
- * Signals that an exception occured within the command architecture.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @noextend This class is not intended to be subclassed by clients.
- */
-public abstract class CommandException extends Exception {
-	
-	/**
-	 * Generated serial version UID for this class.
-	 * 
-	 * @since 3.4
-	 */
-	private static final long serialVersionUID = 5389763628699257234L;
-	
-	/**
-	 * This member variable is required here to allow us to compile against JCL
-	 * foundation libraries.  The value may be <code>null</code>.
-	 */
-	private Throwable cause;
-	
-    /**
-     * Creates a new instance of this class with the specified detail message.
-     * 
-     * @param message
-     *            the detail message; may be <code>null</code>.
-     */
-    public CommandException(final String message) {
-        super(message);
-    }
-
-    /**
-     * Creates a new instance of this class with the specified detail message
-     * and cause.
-     * 
-     * @param message
-     *            the detail message; may be <code>null</code>.
-     * @param cause
-     *            the cause; may be <code>null</code>.
-     */
-    public CommandException(final String message, final Throwable cause) {
-        super(message);
-        // don't pass the cause to super, to allow compilation against JCL Foundation
-        this.cause = cause;
-    }
-    
-    /**
-     * Returns the cause of this throwable or <code>null</code> if the
-     * cause is nonexistent or unknown. 
-     * 
-     * @return the cause or <code>null</code>
-     */
-    public Throwable getCause() {
-        return cause;
-    }
-    
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
deleted file mode 100644
index 7c3406b..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.common;
-
-import org.eclipse.core.runtime.ListenerList;
-
-/**
- * <p>
- * A manager to which listeners can be attached. This handles the management of
- * a list of listeners -- optimizing memory and performance. All the methods on
- * this class are guaranteed to be thread-safe.
- * </p>
- * <p>
- * Clients may extend.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class EventManager {
-
-	/**
-	 * An empty array that can be returned from a call to
-	 * {@link #getListeners()} when {@link #listenerList} is <code>null</code>.
-	 */
-	private static final Object[] EMPTY_ARRAY = new Object[0];
-
-	/**
-	 * A collection of objects listening to changes to this manager. This
-	 * collection is <code>null</code> if there are no listeners.
-	 */
-	private transient ListenerList listenerList = null;
-
-	/**
-	 * Adds a listener to this manager that will be notified when this manager's
-	 * state changes.
-	 * 
-	 * @param listener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	protected synchronized final void addListenerObject(final Object listener) {
-		if (listenerList == null) {
-			listenerList = new ListenerList(ListenerList.IDENTITY);
-		}
-
-		listenerList.add(listener);
-	}
-
-	/**
-	 * Clears all of the listeners from the listener list.
-	 */
-	protected synchronized final void clearListeners() {
-		if (listenerList != null) {
-			listenerList.clear();
-		}
-	}
-
-	/**
-	 * Returns the listeners attached to this event manager.
-	 * 
-	 * @return The listeners currently attached; may be empty, but never
-	 *         <code>null</code>
-	 */
-	protected final Object[] getListeners() {
-		final ListenerList list = listenerList;
-		if (list == null) {
-			return EMPTY_ARRAY;
-		}
-
-		return list.getListeners();
-	}
-
-	/**
-	 * Whether one or more listeners are attached to the manager.
-	 * 
-	 * @return <code>true</code> if listeners are attached to the manager;
-	 *         <code>false</code> otherwise.
-	 */
-	protected final boolean isListenerAttached() {
-		return listenerList != null;
-	}
-
-	/**
-	 * Removes a listener from this manager.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	protected synchronized final void removeListenerObject(final Object listener) {
-		if (listenerList != null) {
-			listenerList.remove(listener);
-
-			if (listenerList.isEmpty()) {
-				listenerList = null;
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java
deleted file mode 100644
index bd01ede..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.common;
-
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * An object that can exist in one of two states: defined and undefined. This is
- * used by APIs that want to give a handle to an object, even though the object
- * does not fully exist yet. This way, users can attach listeners to objects
- * before they come into existence. It also protects the API from users that do
- * not release references when they should.
- * </p>
- * <p>
- * To enforce good coding practice, all handle objects must implement
- * <code>equals</code> and <code>toString</code>. Please use
- * <code>string</code> to cache the result for <code>toString</code> once
- * calculated.
- * </p>
- * <p>
- * All handle objects are referred to using a single identifier. This identifier
- * is a instance of <code>String</code>. It is important that this identifier
- * remain unique within whatever context that handle object is being used. For
- * example, there should only ever be one instance of <code>Command</code>
- * with a given identifier.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class HandleObject extends EventManager implements
-		IIdentifiable {
-
-	/**
-	 * The constant integer hash code value meaning the hash code has not yet
-	 * been computed.
-	 */
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-	
-    /**
-     * A factor for computing the hash code for all schemes.
-     */
-    private static final int HASH_FACTOR = 89;
-
-    /**
-     * The seed for the hash code for all schemes.
-     */
-    private static final int HASH_INITIAL = HandleObject.class.getName()
-            .hashCode();
-
-    /**
-     * Whether this object is defined. A defined object is one that has been
-     * fully initialized. By default, all objects start as undefined.
-     */
-    protected transient boolean defined = false;
-
-    /**
-     * The hash code for this object. This value is computed lazily, and marked
-     * as invalid when one of the values on which it is based changes.
-     */
-    private transient int hashCode = HASH_CODE_NOT_COMPUTED;
-
-    /**
-     * The identifier for this object. This identifier should be unique across
-     * all objects of the same type and should never change. This value will
-     * never be <code>null</code>.
-     */
-    protected final String id;
-
-    /**
-     * The string representation of this object. This string is for debugging
-     * purposes only, and is not meant to be displayed to the user. This value
-     * is computed lazily, and is cleared if one of its dependent values
-     * changes.
-     */
-    protected transient String string = null;
-
-    /**
-     * Constructs a new instance of <code>HandleObject</code>.
-     * 
-     * @param id
-     *            The id of this handle; must not be <code>null</code>.
-     */
-    protected HandleObject(final String id) {
-        if (id == null) {
-            throw new NullPointerException(
-                    "Cannot create a handle with a null id"); //$NON-NLS-1$
-        }
-
-        this.id = id;
-    }
-
-    /**
-     * Tests whether this object is equal to another object. A handle object is
-     * only equal to another handle object with the same id and the same class.
-     * 
-     * @param object
-     *            The object with which to compare; may be <code>null</code>.
-     * @return <code>true</code> if the objects are equal; <code>false</code>
-     *         otherwise.
-     */
-	public boolean equals(final Object object) {
-		// Check if they're the same.
-		if (object == this) {
-			return true;
-		}
-
-		// Check if they're the same type.
-		if (!(object instanceof HandleObject)) {
-			return false;
-		}
-
-		// Check each property in turn.
-		final HandleObject handle= (HandleObject) object;
-		return Util.equals(id, handle.id)
-				&& (this.getClass() == handle.getClass());
-	}
-	
-    public final String getId() {
-        return id;
-    }
-
-    /**
-     * Computes the hash code for this object based on the id.
-     * 
-     * @return The hash code for this object.
-     */
-    public final int hashCode() {
-        if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			hashCode = HASH_INITIAL * HASH_FACTOR + Util.hashCode(id);
-			if (hashCode == HASH_CODE_NOT_COMPUTED) {
-				hashCode++;
-			}
-		}
-		return hashCode;
-    }
-
-    /**
-     * Whether this instance is defined. A defined instance is one that has been
-     * fully initialized. This allows objects to effectively disappear even
-     * though other objects may still have references to them.
-     * 
-     * @return <code>true</code> if this object is defined; <code>false</code>
-     *         otherwise.
-     */
-    public final boolean isDefined() {
-        return defined;
-    }
-
-    /**
-     * The string representation of this object -- for debugging purposes only.
-     * This string should not be shown to an end user.
-     * 
-     * @return The string representation; never <code>null</code>.
-     */
-    public abstract String toString();
-
-    /**
-     * Makes this object becomes undefined. This method should make any defined
-     * properties <code>null</code>. It should also send notification to any
-     * listeners that these properties have changed.
-     */
-    public abstract void undefine();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java
deleted file mode 100644
index c6071b0..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.common;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * <p>
- * A manager of {@link HandleObject} instances. This has some common behaviour
- * which is shared between all such managers.
- * </p>
- * <p>
- * Clients may extend.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class HandleObjectManager extends EventManager {
-
-	/**
-	 * The set of handle objects that are defined. This value may be empty, but
-	 * it is never <code>null</code>.
-	 */
-	protected final Set definedHandleObjects = new HashSet();
-
-	/**
-	 * The map of identifiers (<code>String</code>) to handle objects (
-	 * <code>HandleObject</code>). This collection may be empty, but it is
-	 * never <code>null</code>.
-	 */
-	protected final Map handleObjectsById = new HashMap();
-
-	/**
-	 * Verifies that the identifier is valid. Exceptions will be thrown if the
-	 * identifier is invalid in some way.
-	 * 
-	 * @param id
-	 *            The identifier to validate; may be anything.
-	 */
-	protected final void checkId(final String id) {
-		if (id == null) {
-			throw new NullPointerException(
-					"A handle object may not have a null identifier"); //$NON-NLS-1$
-		}
-
-		if (id.length() < 1) {
-			throw new IllegalArgumentException(
-					"The handle object must not have a zero-length identifier"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Returns the set of identifiers for those handle objects that are defined.
-	 * 
-	 * @return The set of defined handle object identifiers; this value may be
-	 *         empty, but it is never <code>null</code>.
-	 */
-	protected final Set getDefinedHandleObjectIds() {
-		final HashSet definedHandleObjectIds = new HashSet(definedHandleObjects
-				.size());
-		final Iterator handleObjectItr = definedHandleObjects.iterator();
-		while (handleObjectItr.hasNext()) {
-			final HandleObject handleObject = (HandleObject) handleObjectItr
-					.next();
-			final String id = handleObject.getId();
-			definedHandleObjectIds.add(id);
-		}
-		return definedHandleObjectIds;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java
deleted file mode 100644
index d8b0fa7..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.common;
-
-/**
- * <p>
- * An object that is unique identifiable based on the combination of its class
- * and its identifier.
- * </p>
- * 
- * @see HandleObject
- * @since 3.2
- */
-public interface IIdentifiable {
-
-    /**
-     * Returns the identifier for this object.
-     * 
-     * @return The identifier; never <code>null</code>.
-     */
-	String getId();
-}
-
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java
deleted file mode 100644
index c20c79c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.common;
-
-/**
- * A handle object that carries with it a name and a description. This type of
- * handle object is quite common across the commands code base. For example,
- * <code>Command</code>, <code>Context</code> and <code>Scheme</code>.
- * 
- * @since 3.1
- */
-public abstract class NamedHandleObject extends HandleObject {
-
-	/**
-	 * The description for this handle. This value may be <code>null</code> if
-	 * the handle is undefined or has no description.
-	 */
-	protected String description = null;
-
-	/**
-	 * The name of this handle. This valud should not be <code>null</code>
-	 * unless the handle is undefined.
-	 */
-	protected String name = null;
-
-	/**
-	 * Constructs a new instance of <code>NamedHandleObject</code>.
-	 * 
-	 * @param id
-	 *            The identifier for this handle; must not be <code>null</code>.
-	 */
-	protected NamedHandleObject(final String id) {
-		super(id);
-	}
-
-	/**
-	 * Returns the description for this handle.
-	 * 
-	 * @return The description; may be <code>null</code> if there is no
-	 *         description.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 */
-	public String getDescription() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get a description from an undefined object. " //$NON-NLS-1$
-					+ id);
-		}
-
-		return description;
-	}
-
-	/**
-	 * Returns the name for this handle.
-	 * 
-	 * @return The name for this handle; never <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 */
-	public String getName() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get the name from an undefined object. " //$NON-NLS-1$
-					+ id);
-		}
-
-		return name;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java
deleted file mode 100644
index e2a54c1..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.common;
-
-import java.util.Comparator;
-
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * Comparator for instances of <code>NamedHandleObject</code> for display to
- * an end user. The comparison is based on the name of the instances.
- * 
- * @since 3.2
- */
-public class NamedHandleObjectComparator implements Comparator {
-
-	/**
-	 * Compares to instances of NamedHandleObject based on their names. This is
-	 * useful is they are display to an end user.
-	 * 
-	 * @param left
-	 *            The first obect to compare; may be <code>null</code>.
-	 * @param right
-	 *            The second object to compare; may be <code>null</code>.
-	 * @return <code>-1</code> if <code>left</code> is <code>null</code>
-	 *         and <code>right</code> is not <code>null</code>;
-	 *         <code>0</code> if they are both <code>null</code>;
-	 *         <code>1</code> if <code>left</code> is not <code>null</code>
-	 *         and <code>right</code> is <code>null</code>. Otherwise, the
-	 *         result of <code>left.compareTo(right)</code>.
-	 */
-	public final int compare(final Object left, final Object right) {
-		final NamedHandleObject a = (NamedHandleObject) left;
-		final NamedHandleObject b = (NamedHandleObject) right;
-
-		String aName = null;
-		try {
-			aName = a.getName();
-		} catch (final NotDefinedException e) {
-			// Leave aName as null.
-		}
-		String bName = null;
-		try {
-			bName = b.getName();
-		} catch (final NotDefinedException e) {
-			// Leave bName as null.
-		}
-
-		return Util.compare(aName, bName);
-	}
-}
-
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NotDefinedException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NotDefinedException.java
deleted file mode 100644
index 349209a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NotDefinedException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.common;
-
-/**
- * Signals that an attempt was made to access the properties of an undefined
- * object.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class NotDefinedException extends CommandException {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3257572788998124596L;
-
-    /**
-     * Creates a new instance of this class with the specified detail message.
-     * 
-     * @param s
-     *            the detail message; may be <code>null</code>.
-     */
-    public NotDefinedException(final String s) {
-        super(s);
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/package.html b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/package.html
deleted file mode 100644
index 357bc22..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/package.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Package-level Javadoc</title>
-<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
-	type="text/css">
-</head>
-<body style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0)">
-Application programming interfaces for common base classes.
-<h2>Package Specification</h2>
-<p>
-This package provides some common base classes and exceptions that are used in
-one or more packages elsewhere.  Nothing in this package is intended to be
-directly subclassed, or used.  The code here only supports code in other
-packages.
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java
deleted file mode 100644
index 75796f6..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.contexts;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A context is an answer to the question "when". Other services can listen for
- * the activation and deactivation of contexts, and change their own state in
- * response to these changes. For example, Eclipse's key binding service listens
- * to context activation and deactivation to determine which key bindings should
- * be active.
- * </p>
- * <p>
- * An instance of this interface can be obtained from an instance of
- * <code>ContextManager</code> for any identifier, whether or not an context
- * with that identifier is defined in the extension registry.
- * </p>
- * <p>
- * The handle-based nature of this API allows it to work well with runtime
- * plugin activation and deactivation. If a context is defined, that means that
- * its corresponding plug-in is active. If the plug-in is then deactivated, the
- * context will still exist but it will be undefined. An attempts to use an
- * undefined context will result in a <code>NotDefinedException</code> being
- * thrown.
- * </p>
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see ContextManager
- */
-public final class Context extends NamedHandleObject implements Comparable {
-
-    /**
-     * The collection of all objects listening to changes on this context. This
-     * value is <code>null</code> if there are no listeners.
-     */
-    private Set listeners = null;
-
-    /**
-     * The parent identifier for this context. The meaning of a parent is
-     * dependent on the system using contexts. This value can be
-     * <code>null</code> if the context has no parent.
-     */
-    private String parentId = null;
-
-    /**
-     * Constructs a new instance of <code>Context</code>.
-     * 
-     * @param id
-     *            The id for this context; must not be <code>null</code>.
-     */
-    Context(final String id) {
-        super(id);
-    }
-
-    /**
-     * Registers an instance of <code>IContextListener</code> to listen for
-     * changes to properties of this instance.
-     * 
-     * @param listener
-     *            the instance to register. Must not be <code>null</code>. If
-     *            an attempt is made to register an instance which is already
-     *            registered with this instance, no operation is performed.
-     */
-    public final void addContextListener(final IContextListener listener) {
-        if (listener == null) {
-            throw new NullPointerException();
-        }
-
-        if (listeners == null) {
-            listeners = new HashSet();
-        }
-
-        listeners.add(listener);
-    } 
-    
-    /* (non-Javadoc)
-     * @see java.lang.Comparable#compareTo(java.lang.Object)
-     */
-    public final int compareTo(final Object object) {
-        final Context scheme = (Context) object;
-        int compareTo = Util.compare(this.id, scheme.id);
-        if (compareTo == 0) {
-            compareTo = Util.compare(this.name, scheme.name);
-            if (compareTo == 0) {
-                compareTo = Util.compare(this.parentId, scheme.parentId);
-                if (compareTo == 0) {
-                    compareTo = Util.compare(this.description,
-                            scheme.description);
-                    if (compareTo == 0) {
-                        compareTo = Util.compare(this.defined, scheme.defined);
-                    }
-                }
-            }
-        }
-
-        return compareTo;
-    }
-
-    /**
-     * <p>
-     * Defines this context by giving it a name, and possibly a description and
-     * a parent identifier as well. The defined property automatically becomes
-     * <code>true</code>.
-     * </p>
-     * <p>
-     * Notification is sent to all listeners that something has changed.
-     * </p>
-     * 
-     * @param name
-     *            The name of this context; must not be <code>null</code>.
-     * @param description
-     *            The description for this context; may be <code>null</code>.
-     * @param parentId
-     *            The parent identifier for this context; may be
-     *            <code>null</code>.
-     */
-    public final void define(final String name, final String description,
-            final String parentId) {
-        if (name == null) {
-            throw new NullPointerException(
-                    "The name of a scheme cannot be null"); //$NON-NLS-1$
-        }
-
-        final boolean definedChanged = !this.defined;
-        this.defined = true;
-
-        final boolean nameChanged = !Util.equals(this.name, name);
-        this.name = name;
-
-        final boolean descriptionChanged = !Util.equals(this.description,
-                description);
-        this.description = description;
-
-        final boolean parentIdChanged = !Util.equals(this.parentId, parentId);
-        this.parentId = parentId;
-
-        fireContextChanged(new ContextEvent(this, definedChanged, nameChanged,
-                descriptionChanged, parentIdChanged));
-    }
-
-    /**
-     * Notifies all listeners that this context has changed. This sends the
-     * given event to all of the listeners, if any.
-     * 
-     * @param event
-     *            The event to send to the listeners; must not be
-     *            <code>null</code>.
-     */
-    private final void fireContextChanged(final ContextEvent event) {
-        if (event == null) {
-            throw new NullPointerException(
-                    "Cannot send a null event to listeners."); //$NON-NLS-1$
-        }
-
-        if (listeners == null) {
-            return;
-        }
-
-        final Iterator listenerItr = listeners.iterator();
-        while (listenerItr.hasNext()) {
-            final IContextListener listener = (IContextListener) listenerItr
-                    .next();
-            listener.contextChanged(event);
-        }
-    }
-
-    /**
-     * Returns the identifier of the parent of this instance.
-     * <p>
-     * Notification is sent to all registered listeners if this property
-     * changes.
-     * </p>
-     * 
-     * @return the identifier of the parent of this instance. May be
-     *         <code>null</code>.
-     * @throws NotDefinedException
-     *             if this instance is not defined.
-     */
-    public final String getParentId() throws NotDefinedException {
-        if (!defined) {
-            throw new NotDefinedException(
-                    "Cannot get the parent identifier from an undefined context. " //$NON-NLS-1$
-            		+id);
-        }
-
-        return parentId;
-    }
-
-    /**
-     * Unregisters an instance of <code>IContextListener</code> listening for
-     * changes to properties of this instance.
-     * 
-     * @param contextListener
-     *            the instance to unregister. Must not be <code>null</code>.
-     *            If an attempt is made to unregister an instance which is not
-     *            already registered with this instance, no operation is
-     *            performed.
-     */
-    public final void removeContextListener(
-            final IContextListener contextListener) {
-        if (contextListener == null) {
-            throw new NullPointerException("Cannot remove a null listener."); //$NON-NLS-1$
-        }
-
-        if (listeners == null) {
-            return;
-        }
-
-        listeners.remove(contextListener);
-
-        if (listeners.isEmpty()) {
-            listeners = null;
-        }
-    }
-
-    /**
-     * The string representation of this context -- for debugging purposes only.
-     * This string should not be shown to an end user.
-     * 
-     * @return The string representation; never <code>null</code>.
-     */
-    public final String toString() {
-        if (string == null) {
-            final StringBuffer stringBuffer = new StringBuffer();
-            stringBuffer.append("Context("); //$NON-NLS-1$
-            stringBuffer.append(id);
-            stringBuffer.append(',');
-            stringBuffer.append(name);
-            stringBuffer.append(',');
-            stringBuffer.append(description);
-            stringBuffer.append(',');
-            stringBuffer.append(parentId);
-            stringBuffer.append(',');
-            stringBuffer.append(defined);
-            stringBuffer.append(')');
-            string = stringBuffer.toString();
-        }
-        return string;
-    }
-
-    /**
-     * Makes this context become undefined. This has the side effect of changing
-     * the name, description and parent identifier to <code>null</code>.
-     * Notification is sent to all listeners.
-     */
-    public final void undefine() {
-        string = null;
-
-        final boolean definedChanged = defined;
-        defined = false;
-
-        final boolean nameChanged = name != null;
-        name = null;
-
-        final boolean descriptionChanged = description != null;
-        description = null;
-
-        final boolean parentIdChanged = parentId != null;
-        parentId = null;
-
-        fireContextChanged(new ContextEvent(this, definedChanged, nameChanged,
-                descriptionChanged, parentIdChanged));
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java
deleted file mode 100644
index d1dd2a7..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.contexts;
-
-import org.eclipse.core.commands.common.AbstractNamedHandleEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>IContext</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see IContextListener#contextChanged(ContextEvent)
- */
-public final class ContextEvent extends AbstractNamedHandleEvent {
-
-	/**
-	 * The bit used to represent whether the context has changed its parent.
-	 */
-	private static final int CHANGED_PARENT_ID = LAST_USED_BIT << 1;
-
-	/**
-	 * The context that has changed. This value is never <code>null</code>.
-	 */
-	private final Context context;
-
-	/**
-     * Creates a new instance of this class.
-     * 
-     * @param context
-     *            the instance of the interface that changed; must not be
-     *            <code>null</code>.
-     * @param definedChanged
-     *            <code>true</code>, iff the defined property changed.
-     * @param nameChanged
-     *            <code>true</code>, iff the name property changed.
-     * @param descriptionChanged
-     *            <code>true</code>, iff the description property changed.
-     * @param parentIdChanged
-     *            <code>true</code>, iff the parentId property changed.
-     */
-	public ContextEvent(final Context context, final boolean definedChanged,
-			final boolean nameChanged, final boolean descriptionChanged,
-			final boolean parentIdChanged) {
-		super(definedChanged, descriptionChanged, nameChanged);
-		
-		if (context == null) {
-			throw new NullPointerException();
-		}
-		this.context = context;
-		
-		if (parentIdChanged) {
-			changedValues |= CHANGED_PARENT_ID;
-		}
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final Context getContext() {
-		return context;
-	}
-
-	/**
-	 * Returns whether or not the parentId property changed.
-	 * 
-	 * @return <code>true</code>, iff the parentId property changed.
-	 */
-	public final boolean isParentIdChanged() {
-		return ((changedValues & CHANGED_PARENT_ID) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java
deleted file mode 100644
index 8037b93..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.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 {
-	
-	private static final String DEFER_EVENTS = "org.eclipse.ui.internal.contexts.deferEvents"; //$NON-NLS-1$
-	private static final String SEND_EVENTS = "org.eclipse.ui.internal.contexts.sendEvents"; //$NON-NLS-1$
-
-	/**
-	 * This flag can be set to <code>true</code> if the context manager should
-	 * print information to <code>System.out</code> when certain boundary
-	 * conditions occur.
-	 */
-	public static boolean DEBUG = false;
-
-	/**
-	 * The set of active context identifiers. This value may be empty, but it is
-	 * never <code>null</code>.
-	 */
-	private Set activeContextIds = new HashSet();
-
-	// allow the ContextManager to send one event for a larger delta
-	private boolean caching = false;
-	
-	private int cachingRef = 0;
-
-	private boolean activeContextsChange = false;
-	
-	private Set oldIds = null;
-
-	/**
-	 * 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 (DEFER_EVENTS.equals(contextId)) {
-			cachingRef++;
-			if (cachingRef==1) {
-				setEventCaching(true);
-			}
-			return;
-		} else if (SEND_EVENTS.equals(contextId)) {
-			cachingRef--;
-			if (cachingRef==0) {
-				setEventCaching(false);
-			}
-			return;
-		}
-		
-		if (activeContextIds.contains(contextId)) {
-			return;
-		}
-		activeContextsChange = true;
-
-		if (caching) {
-			activeContextIds.add(contextId);
-		} else {
-			final Set previouslyActiveContextIds = new HashSet(activeContextIds);
-			activeContextIds.add(contextId);
-
-			fireContextManagerChanged(new ContextManagerEvent(this, null,
-					false, true, previouslyActiveContextIds));
-		}
-
-		if (DEBUG) {
-			Tracing.printTrace("CONTEXTS", activeContextIds.toString()); //$NON-NLS-1$
-		}
-
-	}
-
-	/**
-	 * Adds a listener to this context manager. The listener will be notified
-	 * when the set of defined contexts changes. This can be used to track the
-	 * global appearance and disappearance of contexts.
-	 * 
-	 * @param listener
-	 *            The listener to attach; must not be <code>null</code>.
-	 */
-	public final void addContextManagerListener(
-			final IContextManagerListener listener) {
-		addListenerObject(listener);
-	}
-
-	public final void contextChanged(final ContextEvent contextEvent) {
-		if (contextEvent.isDefinedChanged()) {
-			final Context context = contextEvent.getContext();
-			final String contextId = context.getId();
-			final boolean contextIdAdded = context.isDefined();
-			if (contextIdAdded) {
-				definedHandleObjects.add(context);
-			} else {
-				definedHandleObjects.remove(context);
-			}
-			if (isListenerAttached()) {
-				fireContextManagerChanged(new ContextManagerEvent(this,
-						contextId, contextIdAdded, false, null));
-			}
-		}
-	}
-
-	/**
-	 * Notifies all of the listeners to this manager that the set of defined
-	 * context identifiers has changed.
-	 * 
-	 * @param event
-	 *            The event to send to all of the listeners; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireContextManagerChanged(final ContextManagerEvent event) {
-		if (event == null) {
-			throw new NullPointerException();
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IContextManagerListener listener = (IContextManagerListener) listeners[i];
-			listener.contextManagerChanged(event);
-		}
-	}
-
-	/**
-	 * Returns the set of active context identifiers.
-	 * 
-	 * @return The set of active context identifiers; this value may be
-	 *         <code>null</code> if no active contexts have been set yet. If
-	 *         the set is not <code>null</code>, then it contains only
-	 *         instances of <code>String</code>.
-	 */
-	public final Set getActiveContextIds() {
-		return Collections.unmodifiableSet(activeContextIds);
-	}
-
-	/**
-	 * Gets the context with the given identifier. If no such context currently
-	 * exists, then the context will be created (but be undefined).
-	 * 
-	 * @param contextId
-	 *            The identifier to find; must not be <code>null</code>.
-	 * @return The context with the given identifier; this value will never be
-	 *         <code>null</code>, but it might be undefined.
-	 * @see Context
-	 */
-	public final Context getContext(final String contextId) {
-		checkId(contextId);
-
-		Context context = (Context) handleObjectsById.get(contextId);
-		if (context == null) {
-			context = new Context(contextId);
-			handleObjectsById.put(contextId, context);
-			context.addContextListener(this);
-		}
-
-		return context;
-	}
-
-	/**
-	 * Returns the set of identifiers for those contexts that are defined.
-	 * 
-	 * @return The set of defined context identifiers; this value may be empty,
-	 *         but it is never <code>null</code>.
-	 */
-	public final Set getDefinedContextIds() {
-		return getDefinedHandleObjectIds();
-	}
-
-	/**
-	 * Returns the those contexts that are defined.
-	 * 
-	 * @return The defined contexts; this value may be empty, but it is never
-	 *         <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Context[] getDefinedContexts() {
-		return (Context[]) definedHandleObjects
-				.toArray(new Context[definedHandleObjects.size()]);
-	}
-
-	/**
-	 * Deactivates a context in this context manager.
-	 * 
-	 * @param contextId
-	 *            The identifier of the context to deactivate; must not be
-	 *            <code>null</code>.
-	 */
-	public final void removeActiveContext(final String contextId) {
-		if (!activeContextIds.contains(contextId)) {
-			return;
-		}
-
-		activeContextsChange = true;
-		if (caching) {
-			activeContextIds.remove(contextId);
-		} else {
-			final Set previouslyActiveContextIds = new HashSet(activeContextIds);
-			activeContextIds.remove(contextId);
-
-			fireContextManagerChanged(new ContextManagerEvent(this, null,
-					false, true, previouslyActiveContextIds));
-		}
-
-		if (DEBUG) {
-			Tracing.printTrace("CONTEXTS", activeContextIds.toString()); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Removes a listener from this context manager.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	public final void removeContextManagerListener(
-			final IContextManagerListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * Changes the set of active contexts for this context manager. The whole
-	 * set is required so that internal consistency can be maintained and so
-	 * that excessive recomputations do nothing occur.
-	 * 
-	 * @param activeContextIds
-	 *            The new set of active context identifiers; may be
-	 *            <code>null</code>.
-	 */
-	public final void setActiveContextIds(final Set activeContextIds) {
-		if (Util.equals(this.activeContextIds, activeContextIds)) {
-			return;
-		}
-
-		activeContextsChange = true;
-		
-		final Set previouslyActiveContextIds = this.activeContextIds;
-		if (activeContextIds != null) {
-			this.activeContextIds = new HashSet();
-			this.activeContextIds.addAll(activeContextIds);
-		} else {
-			this.activeContextIds = null;
-		}
-
-		if (DEBUG) {
-			Tracing.printTrace("CONTEXTS", (activeContextIds == null) ? "none" //$NON-NLS-1$ //$NON-NLS-2$
-					: activeContextIds.toString());
-		}
-
-		if (!caching) {
-			fireContextManagerChanged(new ContextManagerEvent(this, null,
-					false, true, previouslyActiveContextIds));
-		}
-	}
-	
-	/**
-	 * Set the manager to cache context id changes.
-	 * 
-	 * @param cache
-	 *            <code>true</code> to turn caching on, <code>false</code>
-	 *            to turn caching off and send an event if necessary.
-	 * @since 3.3
-	 */
-	private void setEventCaching(boolean cache) {
-		if (caching == cache) {
-			return;
-		}
-		caching = cache;
-		boolean fireChange = activeContextsChange;
-		Set holdOldIds = (oldIds==null?Collections.EMPTY_SET:oldIds);
-		
-		if (caching) {
-			oldIds = new HashSet(activeContextIds);
-		} else {
-			oldIds = null;
-		}
-		activeContextsChange = false;
-
-		if (!caching && fireChange) {
-			fireContextManagerChanged(new ContextManagerEvent(this, null,
-					false, true, holdOldIds));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManagerEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManagerEvent.java
deleted file mode 100644
index e5dfa5d..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManagerEvent.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.contexts;
-
-import java.util.Set;
-
-import org.eclipse.core.commands.common.AbstractBitSetEvent;
-
-/**
- * <p>
- * An event indicating that the set of defined context identifiers has changed.
- * </p>
- * 
- * @since 3.1
- * @see IContextManagerListener#contextManagerChanged(ContextManagerEvent)
- */
-public final class ContextManagerEvent extends AbstractBitSetEvent {
-
-	/**
-	 * The bit used to represent whether the set of defined contexts has
-	 * changed.
-	 */
-	private static final int CHANGED_CONTEXT_DEFINED = 1 << 1;
-
-	/**
-	 * The bit used to represent whether the set of active contexts has changed.
-	 */
-	private static final int CHANGED_CONTEXTS_ACTIVE = 1;
-
-	/**
-	 * The context identifier that was added or removed from the list of defined
-	 * context identifiers.
-	 */
-	private final String contextId;
-
-	/**
-	 * The context manager that has changed.
-	 */
-	private final ContextManager contextManager;
-
-	/**
-	 * The set of context identifiers (strings) that were active before the
-	 * change occurred. If the active contexts did not changed, then this value
-	 * is <code>null</code>.
-	 */
-	private final Set previouslyActiveContextIds;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param contextManager
-	 *            the instance of the interface that changed; must not be
-	 *            <code>null</code>.
-	 * @param contextId
-	 *            The context identifier that was added or removed; may be
-	 *            <code>null</code> if the active contexts are changing.
-	 * @param contextIdAdded
-	 *            Whether the context identifier became defined (otherwise, it
-	 *            became undefined).
-	 * @param activeContextsChanged
-	 *            Whether the list of active contexts has changed.
-	 * @param previouslyActiveContextIds
-	 *            the set of identifiers of previously active contexts. This set
-	 *            may be empty. If this set is not empty, it must only contain
-	 *            instances of <code>String</code>. This set must be
-	 *            <code>null</code> if activeContextChanged is
-	 *            <code>false</code> and must not be null if
-	 *            activeContextChanged is <code>true</code>.
-	 */
-	public ContextManagerEvent(final ContextManager contextManager,
-			final String contextId, final boolean contextIdAdded,
-			final boolean activeContextsChanged,
-			final Set previouslyActiveContextIds) {
-		if (contextManager == null) {
-			throw new NullPointerException();
-		}
-
-		this.contextManager = contextManager;
-		this.contextId = contextId;
-		this.previouslyActiveContextIds = previouslyActiveContextIds;
-
-		if (contextIdAdded) {
-			changedValues |= CHANGED_CONTEXT_DEFINED;
-		}
-		if (activeContextsChanged) {
-			changedValues |= CHANGED_CONTEXTS_ACTIVE;
-		}
-	}
-
-	/**
-	 * Returns the context identifier that was added or removed.
-	 * 
-	 * @return The context identifier that was added or removed. This value may
-	 *         be <code>null</code> if no context identifier was added or
-	 *         removed.
-	 */
-	public final String getContextId() {
-		return contextId;
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final ContextManager getContextManager() {
-		return contextManager;
-	}
-
-	/**
-     * Returns the set of identifiers to previously active contexts.
-     * 
-     * @return the set of identifiers to previously active contexts. This set
-     *         may be empty. If this set is not empty, it is guaranteed to only
-     *         contain instances of <code>String</code>. This set is
-     *         guaranteed to be <code>null</code> if
-     *         haveActiveContextChanged() is <code>false</code> and is
-     *         guaranteed to not be <code>null</code> if
-     *         haveActiveContextsChanged() is <code>true</code>.
-     */
-	public final Set getPreviouslyActiveContextIds() {
-		return previouslyActiveContextIds;
-	}
-
-	/**
-	 * Returns whether the active context identifiers have changed.
-	 * 
-	 * @return <code>true</code> if the collection of active contexts changed;
-	 *         <code>false</code> otherwise.
-	 */
-	public final boolean isActiveContextsChanged() {
-		return ((changedValues & CHANGED_CONTEXTS_ACTIVE) != 0);
-	}
-
-	/**
-	 * Returns whether the list of defined context identifiers has changed.
-	 * 
-	 * @return <code>true</code> if the list of context identifiers has
-	 *         changed; <code>false</code> otherwise.
-	 */
-	public final boolean isContextChanged() {
-		return (contextId != null);
-	}
-
-	/**
-	 * Returns whether the context identifier became defined. Otherwise, the
-	 * context identifier became undefined.
-	 * 
-	 * @return <code>true</code> if the context identifier became defined;
-	 *         <code>false</code> if the context identifier became undefined.
-	 */
-	public final boolean isContextDefined() {
-		return (((changedValues & CHANGED_CONTEXT_DEFINED) != 0) && (contextId != null));
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextListener.java
deleted file mode 100644
index fe3f2e7..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextListener.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.contexts;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>IContext</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see Context#addContextListener(IContextListener)
- * @see Context#removeContextListener(IContextListener)
- */
-public interface IContextListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>IContext</code> have changed. Specific details are described in
-     * the <code>ContextEvent</code>.
-     * 
-     * @param contextEvent
-     *            the context event. Guaranteed not to be <code>null</code>.
-     */
-    void contextChanged(ContextEvent contextEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextManagerListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextManagerListener.java
deleted file mode 100644
index 5d23a34..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextManagerListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.contexts;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>IContextManager</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see ContextManager#addContextManagerListener(IContextManagerListener)
- * @see ContextManager#removeContextManagerListener(IContextManagerListener)
- */
-public interface IContextManagerListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>IContextManager</code> have changed. Specific details are
-     * described in the <code>ContextManagerEvent</code>.
-     * 
-     * @param contextManagerEvent
-     *            the context manager event. Guaranteed not to be
-     *            <code>null</code>.
-     */
-    void contextManagerChanged(ContextManagerEvent contextManagerEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/package.html b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/package.html
deleted file mode 100644
index f5d4ceb..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/package.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Package-level Javadoc</title>
-<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
-	type="text/css">
-</head>
-<body style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0)">
-Application programming interfaces for contexts.
-<h2>Package Specification</h2>
-<p>
-This package provides API and implementation classes to define abstract
-representations of application state.  These representations of application
-state can be used as an abstraction of the event-listener model -- where
-different sections of code do not (or cannot) refer to each directly.
-</p>
-<p>
-This package is designed so that its elements can be public and dynamic.  That
-is, elements in this package can appear and disappear over the life of the
-application.
-</p>
-<h3>Context</h3>
-<p>
-A context is an answer to the question, "When?"  For example, there might be a
-context called "server running".  When the server is running, then that context
-would be active.  If a program module other than the server wants to test for
-this, they can simply check to see if the context is active.  This allows the
-two program modules to be decoupled from each other.  In fact, a different
-server module could be dropped in place of the first.
-</p>
-<p>
-Contexts are managed by an instance of <code>ContextManager</code>.  In fact, a
-context cannot be constructed directly.  Contexts are constructed using the
-method <code>ContextManager.getContext(String)</code>.  This ensures that there
-is only ever one context with a given identifier ever associated with a context
-manager.
-</p>
-<p>
-When a context is first constructed, it is undefined.  An undefined context is
-one that is carrying no information except for an id.  Attempts to interact
-with a context that is undefined will result in a 
-<code>NotDefinedException</code>.  Through this mechanism, it is possible for
-clients to hold references to contexts, and still have those contexts
-"disappear" (i.e., become undefined).  This is particularly useful in a system
-built around dynamic components (e.g., plug-ins).
-</p>
-<p>
-It is also possible to attach listeners to both contexts and context managers.
-A listener on a context manager will be notified if the list of defined
-contexts changes.
-</p>
-<h4>Examples</h4>
-<blockquote><pre><code>
-	ContextManager manager = new ContextManager();
-	Context context = manager.getContext("contextId");
-	context.define("name", "description", null);
-</code></pre></blockquote>
-<p>
-This example shows how to create a context from scratch -- with no existing
-manager.
-</p>
-<blockquote><pre><code>
-	context.undefine();
-	context = null;
-</code></pre></blockquote>
-<p>
-If you wish to get rid of the context, then you simply undefine it.  This
-will send notification to the appropriate listeners, and future attempts to
-access it will fail.  If you are the only one holding on to the context, then
-it will be garbage collected.  However, if other people still have a reference
-to the context, then the stub will remain until they respond to the change.
-</p>
-<blockquote><pre><code>
-	String name;
-	try {
-		name = context.getName();
-	} catch (NotDefinedException e) {
-		// Clean-up my reference to the context.
-		context = null;
-		return;
-	}
-</code></pre></blockquote>
-<p>
-This shows one way of dealing with contexts.  Instead of listening for
-changes to the contexts, you can simply listen for the exceptions to be thrown.
-When a <code>NotDefinedException</code> is thrown, you can clean up your own
-code.  How you clean up is application dependent.  In this case, the reference
-is cleared and we return from the method.
-</p>
-<blockquote><pre><code>
-	try {
-		String name = context.getName();
-		
-		// Do all your work in the block.
-		
-	} catch (NotDefinedException e) {
-		// Ignore, or possibly throw an error
-	}
-	
-	...
-	
-	public contextChanged(ContextEvent e) {
-		if (e.hasDefinedChanged()) {
-			context.removeListener(this);
-			context = null;
-		}
-	}
-</code></pre></blockquote>
-<p>
-Another way is to attach a listener, and then simply ignore the exceptions.
-When the context becomes undefined, you will be notified.  This gives your the
-opportunity to unhook your listener and release your reference.
-</p>
-<blockquote><pre><code>
-	ContextManager manager = new ContextManager();
-	Context parent = manager.getContext("parentId");
-	parent.define("name", "description", null);
-	Context child = manager.getContext("childId");
-	child.define("name", "description", "parentId");
-</code></pre></blockquote>
-<p>
-Contexts can be related to each other with a parent-child relationship.  How
-your application deals with this is up to you.  In the case of the keyboard
-shortcuts in Eclipse, this is used to allow behaviour attributed to child
-contexts to override behaviour attributed to parent contexts.
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java
deleted file mode 100644
index 90ab371..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * Abstract implementation for an undoable operation. At a minimum, subclasses
- * should implement behavior for
- * {@link IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)},
- * {@link IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)},
- * and
- * {@link IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * </p>
- * 
- * @see org.eclipse.core.commands.operations.IUndoableOperation
- * 
- * @since 3.1
- */
-public abstract class AbstractOperation implements IUndoableOperation {
-	List contexts = new ArrayList();
-
-	private String label = ""; //$NON-NLS-1$
-
-	/**
-	 * Construct an operation that has the specified label.
-	 * 
-	 * @param label
-	 *            the label to be used for the operation. Should never be
-	 *            <code>null</code>.
-	 */
-	public AbstractOperation(String label) {
-		Assert.isNotNull(label);
-		this.label = label;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#addContext(org.eclipse.core.commands.operations.IUndoContext)
-	 * 
-	 * <p> Subclasses may override this method. </p>
-	 */
-	public void addContext(IUndoContext context) {
-		if (!contexts.contains(context)) {
-			contexts.add(context);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canExecute()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 * 
-	 */
-	public boolean canExecute() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canRedo()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-	public boolean canRedo() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canUndo()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-	public boolean canUndo() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#dispose()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-	public void dispose() {
-		// nothing to dispose.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public abstract IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	public final IUndoContext[] getContexts() {
-		return (IUndoContext[]) contexts.toArray(new IUndoContext[contexts
-				.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#getLabel()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Set the label of the operation to the specified name.
-	 * 
-	 * @param name
-	 *            the string to be used for the label. Should never be
-	 *            <code>null</code>.
-	 */
-	public void setLabel(String name) {
-		label = name;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#hasContext(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public final boolean hasContext(IUndoContext context) {
-		Assert.isNotNull(context);
-		for (int i = 0; i < contexts.size(); i++) {
-			IUndoContext otherContext = (IUndoContext) contexts.get(i);
-			// have to check both ways because one context may be more general
-			// in
-			// its matching rules than another.
-			if (context.matches(otherContext) || otherContext.matches(context)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public abstract IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#removeContext(org.eclipse.core.commands.operations.IUndoContext)
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-
-	public void removeContext(IUndoContext context) {
-		contexts.remove(context);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public abstract IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * The string representation of this operation. Used for debugging purposes
-	 * only. This string should not be shown to an end user.
-	 * 
-	 * @return The string representation.
-	 */
-	public String toString() {
-		final StringBuffer stringBuffer = new StringBuffer();
-		stringBuffer.append(getLabel());
-		stringBuffer.append("("); //$NON-NLS-1$
-		IUndoContext[] contexts = getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			stringBuffer.append(contexts[i].toString());
-			if (i != contexts.length - 1) {
-				stringBuffer.append(',');
-			}
-		}
-		stringBuffer.append(')');
-		return stringBuffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
deleted file mode 100644
index f82e908..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
+++ /dev/null
@@ -1,1382 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.util.Tracing;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-
-/**
- * <p>
- * A base implementation of IOperationHistory that implements a linear undo and
- * redo model . The most recently added operation is available for undo, and the
- * most recently undone operation is available for redo.
- * </p>
- * <p>
- * If the operation eligible for undo is not in a state where it can be undone,
- * then no undo is available. No other operations are considered. Likewise, if
- * the operation available for redo cannot be redone, then no redo is available.
- * </p>
- * <p>
- * Implementations for the direct undo and redo of a specified operation are
- * available. If a strict linear undo is to be enforced, than an
- * IOperationApprover should be installed that prevents undo and redo of any
- * operation that is not the most recently undone or redone operation in all of
- * its undo contexts.
- * </p>
- * <p>
- * The data structures used by the DefaultOperationHistory are synchronized, and
- * entry points that modify the undo and redo history concurrently are also
- * synchronized. This means that the DefaultOperationHistory is relatively
- * "thread-friendly" in its implementation. Outbound notifications or operation
- * approval requests will occur on the thread that initiated the request.
- * Clients may use DefaultOperationHistory API from any thread; however,
- * listeners or operation approvers that receive notifications from the
- * DefaultOperationHistory must be prepared to receive these notifications from
- * a background thread. Any UI access occurring inside these notifications must
- * be properly synchronized using the techniques specified by the client's
- * widget library.
- * </p>
- * 
- * <p>
- * This implementation is not intended to be subclassed.
- * </p>
- * 
- * @see org.eclipse.core.commands.operations.IOperationHistory
- * @see org.eclipse.core.commands.operations.IOperationApprover
- * 
- * @since 3.1
- */
-public final class DefaultOperationHistory implements IOperationHistory {
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> whenever notifications about
-	 * changes to the history occur. This flag should be used for debug purposes
-	 * only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_NOTIFICATION = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> whenever an unexpected condition
-	 * arises. This flag should be used for debug purposes only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_UNEXPECTED = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> whenever an undo context is
-	 * disposed. This flag should be used for debug purposes only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_DISPOSE = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> during the open/close sequence.
-	 * This flag should be used for debug purposes only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_OPENOPERATION = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> whenever an operation is not
-	 * approved. This flag should be used for debug purposes only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_APPROVAL = false;
-
-	static final int DEFAULT_LIMIT = 20;
-
-	/**
-	 * the list of {@link IOperationApprover}s
-	 */
-	ListenerList approvers = new ListenerList(ListenerList.IDENTITY);
-
-	/**
-	 * a map of undo limits per context
-	 */
-	private Map limits = Collections.synchronizedMap(new HashMap());
-
-	/**
-	 * the list of {@link IOperationHistoryListener}s
-	 */
-	ListenerList listeners = new ListenerList(ListenerList.IDENTITY);
-
-	/**
-	 * the list of operations available for redo, LIFO
-	 */
-	private List redoList = Collections.synchronizedList(new ArrayList());
-
-	/**
-	 * the list of operations available for undo, LIFO
-	 */
-	private List undoList = Collections.synchronizedList(new ArrayList());
-
-	/**
-	 * a lock that is used to synchronize access between the undo and redo
-	 * history
-	 */
-	final Object undoRedoHistoryLock = new Object();
-
-	/**
-	 * An operation that is "absorbing" all other operations while it is open.
-	 * When this is not null, other operations added or executed are added to
-	 * this composite.
-	 * 
-	 */
-	private ICompositeOperation openComposite = null;
-
-	/**
-	 * a lock that is used to synchronize access to the open composite.
-	 */
-	final Object openCompositeLock = new Object();
-
-	/**
-	 * Create an instance of DefaultOperationHistory.
-	 */
-	public DefaultOperationHistory() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#add(org.eclipse.core.commands.operations.IUndoableOperation)
-	 */
-	public void add(IUndoableOperation operation) {
-		Assert.isNotNull(operation);
-
-		/*
-		 * If we are in the middle of executing an open batching operation, and
-		 * this is not that operation, then we need only add the context of the
-		 * new operation to the batch. The operation itself is disposed since we
-		 * will never undo or redo it. We consider it to be triggered by the
-		 * batching operation and assume that its undo will be triggered by the
-		 * batching operation undo.
-		 */
-		synchronized (openCompositeLock) {
-			if (openComposite != null && openComposite != operation) {
-				openComposite.add(operation);
-				return;
-			}
-		}
-
-		if (checkUndoLimit(operation)) {
-			synchronized (undoRedoHistoryLock) {
-				undoList.add(operation);
-			}
-			notifyAdd(operation);
-
-			// flush redo stack for related contexts
-			IUndoContext[] contexts = operation.getContexts();
-			for (int i = 0; i < contexts.length; i++) {
-				flushRedo(contexts[i]);
-			}
-		} else {
-			// Dispose the operation since we will not have a reference to it.
-			operation.dispose();
-		}
-	}
-
-	/**
-	 * <p>
-	 * Add the specified approver to the list of operation approvers consulted
-	 * by the operation history before an undo or redo is allowed to proceed.
-	 * This method has no effect if the instance being added is already in the
-	 * list.
-	 * </p>
-	 * <p>
-	 * Operation approvers must be prepared to receive these the operation
-	 * approval messages from a background thread. Any UI access occurring
-	 * inside the implementation must be properly synchronized using the
-	 * techniques specified by the client's widget library.
-	 * </p>
-	 * 
-	 * @param approver
-	 *            the IOperationApprover to be added as an approver.
-	 * 
-	 */
-
-	public void addOperationApprover(IOperationApprover approver) {
-		approvers.add(approver);
-	}
-
-	/**
-	 * <p>
-	 * Add the specified listener to the list of operation history listeners
-	 * that are notified about changes in the history or operations that are
-	 * executed, undone, or redone. This method has no effect if the instance
-	 * being added is already in the list.
-	 * </p>
-	 * <p>
-	 * Operation history listeners must be prepared to receive notifications
-	 * from a background thread. Any UI access occurring inside the
-	 * implementation must be properly synchronized using the techniques
-	 * specified by the client's widget library.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the IOperationHistoryListener to be added as a listener.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistoryListener
-	 * @see org.eclipse.core.commands.operations.OperationHistoryEvent
-	 */
-	public void addOperationHistoryListener(IOperationHistoryListener listener) {
-		listeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#canRedo(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public boolean canRedo(IUndoContext context) {
-		// null context is allowed and passed through
-		IUndoableOperation operation = getRedoOperation(context);
-		return (operation != null && operation.canRedo());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#canUndo(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public boolean canUndo(IUndoContext context) {
-		// null context is allowed and passed through
-		IUndoableOperation operation = getUndoOperation(context);
-		return (operation != null && operation.canUndo());
-	}
-
-	/**
-	 * Check the redo limit before adding an operation. In theory the redo limit
-	 * should never be reached, because the redo items are transferred from the
-	 * undo history, which has the same limit. The redo history is cleared
-	 * whenever a new operation is added. We check for completeness since
-	 * implementations may change over time.
-	 * 
-	 * Return a boolean indicating whether the redo should proceed.
-	 */
-	private boolean checkRedoLimit(IUndoableOperation operation) {
-		IUndoContext[] contexts = operation.getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			int limit = getLimit(contexts[i]);
-			if (limit > 0) {
-				forceRedoLimit(contexts[i], limit - 1);
-			} else {
-				// this context has a 0 limit
-				operation.removeContext(contexts[i]);
-			}
-		}
-		return operation.getContexts().length > 0;
-	}
-
-	/**
-	 * Check the undo limit before adding an operation. Return a boolean
-	 * indicating whether the undo should proceed.
-	 */
-	private boolean checkUndoLimit(IUndoableOperation operation) {
-		IUndoContext[] contexts = operation.getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			int limit = getLimit(contexts[i]);
-			if (limit > 0) {
-				forceUndoLimit(contexts[i], limit - 1);
-			} else {
-				// this context has a 0 limit
-				operation.removeContext(contexts[i]);
-			}
-		}
-		return operation.getContexts().length > 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#dispose(org.eclipse.core.commands.operations.IUndoContext,
-	 *      boolean, boolean, boolean)
-	 */
-	public void dispose(IUndoContext context, boolean flushUndo,
-			boolean flushRedo, boolean flushContext) {
-		// dispose of any limit that was set for the context if it is not to be
-		// used again.
-		if (flushContext) {
-			if (DEBUG_OPERATION_HISTORY_DISPOSE) {
-				Tracing.printTrace("OPERATIONHISTORY", "Flushing context " //$NON-NLS-1$//$NON-NLS-2$
-						+ context);
-			}
-			flushUndo(context);
-			flushRedo(context);
-			limits.remove(context);
-			return;
-		}
-		if (flushUndo) {
-			flushUndo(context);
-		}
-		if (flushRedo) {
-			flushRedo(context);
-		}
-
-	}
-
-	/**
-	 * Perform the redo. All validity checks have already occurred.
-	 * 
-	 * @param monitor
-	 * @param operation
-	 */
-	private IStatus doRedo(IProgressMonitor monitor, IAdaptable info,
-			IUndoableOperation operation) throws ExecutionException {
-
-		IStatus status = getRedoApproval(operation, info);
-		if (status.isOK()) {
-			notifyAboutToRedo(operation);
-			try {
-				status = operation.redo(monitor, info);
-			} catch (OperationCanceledException e) {
-				status = Status.CANCEL_STATUS;
-			} catch (ExecutionException e) {
-				notifyNotOK(operation);
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"ExecutionException while redoing " + operation); //$NON-NLS-1$
-				}
-				throw e;
-			} catch (Exception e) {
-				notifyNotOK(operation);
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Exception while redoing " + operation); //$NON-NLS-1$
-				}
-				throw new ExecutionException(
-						"While redoing the operation, an exception occurred", e); //$NON-NLS-1$
-			}
-		}
-
-		// if successful, the operation is removed from the redo history and
-		// placed back in the undo history.
-		if (status.isOK()) {
-			boolean addedToUndo = true;
-			synchronized (undoRedoHistoryLock) {
-				redoList.remove(operation);
-				if (checkUndoLimit(operation)) {
-					undoList.add(operation);
-				} else {
-					addedToUndo = false;
-				}
-			}
-			// dispose the operation since we could not add it to the
-			// stack and will no longer have a reference to it.
-			if (!addedToUndo) {
-				operation.dispose();
-			}
-
-			// notify listeners must happen after history is updated
-			notifyRedone(operation);
-		} else {
-			notifyNotOK(operation, status);
-		}
-
-		return status;
-	}
-
-	/**
-	 * Perform the undo. All validity checks have already occurred.
-	 * 
-	 * @param monitor
-	 * @param operation
-	 */
-	private IStatus doUndo(IProgressMonitor monitor, IAdaptable info,
-			IUndoableOperation operation) throws ExecutionException {
-		IStatus status = getUndoApproval(operation, info);
-		if (status.isOK()) {
-			notifyAboutToUndo(operation);
-			try {
-				status = operation.undo(monitor, info);
-			} catch (OperationCanceledException e) {
-				status = Status.CANCEL_STATUS;
-			} catch (ExecutionException e) {
-				notifyNotOK(operation);
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"ExecutionException while undoing " + operation); //$NON-NLS-1$
-				}
-				throw e;
-			} catch (Exception e) {
-				notifyNotOK(operation);
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Exception while undoing " + operation); //$NON-NLS-1$
-				}
-				throw new ExecutionException(
-						"While undoing the operation, an exception occurred", e); //$NON-NLS-1$
-			}
-		}
-		// if successful, the operation is removed from the undo history and
-		// placed in the redo history.
-		if (status.isOK()) {
-			boolean addedToRedo = true;
-			synchronized (undoRedoHistoryLock) {
-				undoList.remove(operation);
-				if (checkRedoLimit(operation)) {
-					redoList.add(operation);
-				} else {
-					addedToRedo = false;
-				}
-			}
-			// dispose the operation since we could not add it to the
-			// stack and will no longer have a reference to it.
-			if (!addedToRedo) {
-				operation.dispose();
-			}
-			// notification occurs after the undo and redo histories are
-			// adjusted
-			notifyUndone(operation);
-		} else {
-			notifyNotOK(operation, status);
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#execute(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		Assert.isNotNull(operation);
-
-		// error if operation is invalid
-		if (!operation.canExecute()) {
-			return IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-
-		// check with the operation approvers
-		IStatus status = getExecuteApproval(operation, info);
-		if (!status.isOK()) {
-			// not approved. No notifications are sent, just return the status.
-			return status;
-		}
-
-		/*
-		 * If we are in the middle of an open composite, then we will add this
-		 * operation to the open operation rather than add the operation to the
-		 * history. We will still execute it.
-		 */
-		boolean merging = false;
-		synchronized (openCompositeLock) {
-			if (openComposite != null) {
-				// the composite shouldn't be executed explicitly while it is
-				// still
-				// open
-				if (openComposite == operation) {
-					return IOperationHistory.OPERATION_INVALID_STATUS;
-				}
-				openComposite.add(operation);
-				merging = true;
-			}
-		}
-
-		/*
-		 * Execute the operation
-		 */
-		if (!merging) {
-			notifyAboutToExecute(operation);
-		}
-		try {
-			status = operation.execute(monitor, info);
-		} catch (OperationCanceledException e) {
-			status = Status.CANCEL_STATUS;
-		} catch (ExecutionException e) {
-			notifyNotOK(operation);
-			throw e;
-		} catch (Exception e) {
-			notifyNotOK(operation);
-			throw new ExecutionException(
-					"While executing the operation, an exception occurred", e); //$NON-NLS-1$
-		}
-
-		// if successful, the notify listeners are notified and the operation is
-		// added to the history
-		if (!merging) {
-			if (status.isOK()) {
-				notifyDone(operation);
-				add(operation);
-			} else {
-				notifyNotOK(operation, status);
-				// dispose the operation since we did not add it to the stack
-				// and will no longer have a reference to it.
-				operation.dispose();
-			}
-		}
-		// all other severities are not interpreted. Simply return the status.
-		return status;
-	}
-
-	/*
-	 * Filter the specified list to include only the specified undo context.
-	 */
-	private IUndoableOperation[] filter(List list, IUndoContext context) {
-		/*
-		 * This method is used whenever there is a need to filter the undo or
-		 * redo history on a particular context. Currently there are no caches
-		 * kept to optimize repeated requests for the same filter. If benchmarks
-		 * show this to be a common pattern that causes performances problems,
-		 * we could implement a filtered cache here that is nullified whenever
-		 * the global history changes.
-		 */
-
-		List filtered = new ArrayList();
-		Iterator iterator = list.iterator();
-		synchronized (undoRedoHistoryLock) {
-			while (iterator.hasNext()) {
-				IUndoableOperation operation = (IUndoableOperation) iterator
-						.next();
-				if (operation.hasContext(context)) {
-					filtered.add(operation);
-				}
-			}
-		}
-		return (IUndoableOperation[]) filtered
-				.toArray(new IUndoableOperation[filtered.size()]);
-	}
-
-	/*
-	 * Flush the redo stack of all operations that have the given context.
-	 */
-	private void flushRedo(IUndoContext context) {
-		if (DEBUG_OPERATION_HISTORY_DISPOSE) {
-			Tracing.printTrace("OPERATIONHISTORY", "Flushing redo history for " //$NON-NLS-1$ //$NON-NLS-2$
-					+ context);
-		}
-
-		Object[] filtered = filter(redoList, context);
-		for (int i = 0; i < filtered.length; i++) {
-			IUndoableOperation operation = (IUndoableOperation) filtered[i];
-			if (context == GLOBAL_UNDO_CONTEXT
-					|| operation.getContexts().length == 1) {
-				// remove the operation if it only has the context or we are
-				// flushing all
-				redoList.remove(operation);
-				internalRemove(operation);
-			} else {
-				// remove the reference to the context.
-				// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=161786
-				// It is not enough to simply remove the context. There could
-				// be one or more contexts that match the one we are trying to
-				// dispose.
-				IUndoContext[] contexts = operation.getContexts();
-				for (int j = 0; j < contexts.length; j++) {
-					if (contexts[j].matches(context)) {
-						operation.removeContext(contexts[j]);
-					}
-				}
-				if (operation.getContexts().length == 0) {
-					redoList.remove(operation);
-					internalRemove(operation);
-				}
-			}
-		}
-	}
-
-	/*
-	 * Flush the undo stack of all operations that have the given context.
-	 */
-	private void flushUndo(IUndoContext context) {
-		if (DEBUG_OPERATION_HISTORY_DISPOSE) {
-			Tracing.printTrace("OPERATIONHISTORY", "Flushing undo history for " //$NON-NLS-1$ //$NON-NLS-2$
-					+ context);
-		}
-
-		// Get all operations that have the context (or one that matches)
-		Object[] filtered = filter(undoList, context);
-		for (int i = 0; i < filtered.length; i++) {
-			IUndoableOperation operation = (IUndoableOperation) filtered[i];
-			if (context == GLOBAL_UNDO_CONTEXT
-					|| operation.getContexts().length == 1) {
-				// remove the operation if it only has the context or we are
-				// flushing all
-				undoList.remove(operation);
-				internalRemove(operation);
-			} else {
-				// remove the reference to the context.
-				// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=161786
-				// It is not enough to simply remove the context. There could
-				// be one or more contexts that match the one we are trying to
-				// dispose.
-				IUndoContext[] contexts = operation.getContexts();
-				for (int j = 0; j < contexts.length; j++) {
-					if (contexts[j].matches(context)) {
-						operation.removeContext(contexts[j]);
-					}
-				}
-				if (operation.getContexts().length == 0) {
-					undoList.remove(operation);
-					internalRemove(operation);
-				}
-			}
-		}
-		/*
-		 * There may be an open composite. If it has this context, then the
-		 * context must be removed. If it has only this context or we are
-		 * flushing all operations, then null it out and notify that we are
-		 * ending it. We don't remove it since it was never added.
-		 */
-		ICompositeOperation endedComposite = null;
-		synchronized (openCompositeLock) {
-			if (openComposite != null) {
-				if (openComposite.hasContext(context)) {
-					if (context == GLOBAL_UNDO_CONTEXT
-							|| openComposite.getContexts().length == 1) {
-						endedComposite = openComposite;
-						openComposite = null;
-					} else {
-						openComposite.removeContext(context);
-					}
-				}
-			}
-		}
-		// notify outside of the synchronized block.
-		if (endedComposite != null) {
-			notifyNotOK(endedComposite);
-		}
-	}
-
-	/*
-	 * Force the redo history for the given context to contain max or less
-	 * items.
-	 */
-	private void forceRedoLimit(IUndoContext context, int max) {
-		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(final OperationHistoryEvent event) {
-		if (event.getOperation() instanceof IAdvancedUndoableOperation) {
-			final IAdvancedUndoableOperation advancedOp = (IAdvancedUndoableOperation) event
-					.getOperation();
-			SafeRunner.run(new ISafeRunnable() {
-				public void handleException(Throwable exception) {
-					if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-						Tracing
-								.printTrace(
-										"OPERATIONHISTORY", //$NON-NLS-1$
-										"Exception during notification callback " + exception); //$NON-NLS-1$
-					}
-				}
-
-				public void run() throws Exception {
-					advancedOp.aboutToNotify(event);
-				}
-			});
-		}
-		final Object[] listenerArray = listeners.getListeners();
-		for (int i = 0; i < listenerArray.length; i++) {
-			final IOperationHistoryListener listener = (IOperationHistoryListener) listenerArray[i];
-			SafeRunner.run(new ISafeRunnable() {
-				public void handleException(Throwable exception) {
-					if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-						Tracing
-								.printTrace(
-										"OPERATIONHISTORY", //$NON-NLS-1$
-										"Exception during notification callback " + exception); //$NON-NLS-1$
-					}
-				}
-
-				public void run() throws Exception {
-					listener.historyNotification(event);
-				}
-			});
-		}
-	}
-
-	private void notifyAboutToExecute(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "ABOUT_TO_EXECUTE " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.ABOUT_TO_EXECUTE, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation is about to redo.
-	 */
-	private void notifyAboutToRedo(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "ABOUT_TO_REDO " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.ABOUT_TO_REDO, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation is about to undo.
-	 */
-	private void notifyAboutToUndo(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "ABOUT_TO_UNDO " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.ABOUT_TO_UNDO, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation has been added.
-	 */
-	private void notifyAdd(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "OPERATION_ADDED " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.OPERATION_ADDED, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation is done executing.
-	 */
-	private void notifyDone(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "DONE " + operation); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		notifyListeners(new OperationHistoryEvent(OperationHistoryEvent.DONE,
-				this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation did not succeed after an attempt to
-	 * execute, undo, or redo was made.
-	 */
-	private void notifyNotOK(IUndoableOperation operation) {
-		notifyNotOK(operation, null);
-	}
-
-	/*
-	 * Notify listeners that an operation did not succeed after an attempt to
-	 * execute, undo, or redo was made. Include the status associated with the
-	 * attempt.
-	 * 
-	 * @since 3.2
-	 */
-	private void notifyNotOK(IUndoableOperation operation, IStatus status) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "OPERATION_NOT_OK " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.OPERATION_NOT_OK, this, operation, status));
-	}
-
-	/*
-	 * Notify listeners that an operation was redone.
-	 */
-	private void notifyRedone(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "REDONE " + operation); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		notifyListeners(new OperationHistoryEvent(OperationHistoryEvent.REDONE,
-				this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation has been removed from the history.
-	 */
-	private void notifyRemoved(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "OPERATION_REMOVED " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.OPERATION_REMOVED, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation has been undone.
-	 */
-	private void notifyUndone(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "UNDONE " + operation); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		notifyListeners(new OperationHistoryEvent(OperationHistoryEvent.UNDONE,
-				this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation has been undone.
-	 */
-	private void notifyChanged(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "OPERATION_CHANGED " //$NON-NLS-1$//$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.OPERATION_CHANGED, this, operation));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#redo(org.eclipse.core.commands.operations.IUndoContext,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IUndoContext context, IProgressMonitor monitor,
-			IAdaptable info) throws ExecutionException {
-		Assert.isNotNull(context);
-		IUndoableOperation operation = getRedoOperation(context);
-
-		// info if there is no operation
-		if (operation == null) {
-			return IOperationHistory.NOTHING_TO_REDO_STATUS;
-		}
-
-		// error if operation is invalid
-		if (!operation.canRedo()) {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-						"Redo operation not valid - " + operation); //$NON-NLS-1$
-			}
-
-			return IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-
-		return doRedo(monitor, info, operation);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#redoOperation(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-
-	public IStatus redoOperation(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		Assert.isNotNull(operation);
-		IStatus status;
-		if (operation.canRedo()) {
-			status = doRedo(monitor, info, operation);
-		} else {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-						"Redo operation not valid - " + operation); //$NON-NLS-1$
-			}
-			status = IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#removeOperationApprover(org.eclipse.core.commands.operations.IOperationApprover)
-	 */
-	public void removeOperationApprover(IOperationApprover approver) {
-		approvers.remove(approver);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#removeOperationHistoryListener(org.eclipse.core.commands.operations.IOperationHistoryListener)
-	 */
-	public void removeOperationHistoryListener(
-			IOperationHistoryListener listener) {
-		listeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#replaceOperation(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IUndoableOperation [])
-	 */
-	public void replaceOperation(IUndoableOperation operation,
-			IUndoableOperation[] replacements) {
-		// check the undo history first.
-		boolean inUndo = false;
-		synchronized (undoRedoHistoryLock) {
-			int index = undoList.indexOf(operation);
-			if (index > -1) {
-				inUndo = true;
-				undoList.remove(operation);
-				// notify listeners after the lock on undoList is released
-				ArrayList allContexts = new ArrayList(replacements.length);
-				for (int i = 0; i < replacements.length; i++) {
-					IUndoContext[] opContexts = replacements[i].getContexts();
-					for (int j = 0; j < opContexts.length; j++) {
-						allContexts.add(opContexts[j]);
-					}
-					undoList.add(index, replacements[i]);
-					// notify listeners after the lock on the history is
-					// released
-				}
-				// recheck all the limits. We do this at the end so the index
-				// doesn't change during replacement
-				for (int i = 0; i < allContexts.size(); i++) {
-					IUndoContext context = (IUndoContext) allContexts.get(i);
-					forceUndoLimit(context, getLimit(context));
-				}
-			}
-		}
-		if (inUndo) {
-			// notify listeners of operations added and removed
-			internalRemove(operation);
-			for (int i = 0; i < replacements.length; i++) {
-				notifyAdd(replacements[i]);
-			}
-			return;
-		}
-
-		// operation was not in the undo history. Check the redo history.
-
-		synchronized (undoRedoHistoryLock) {
-			int index = redoList.indexOf(operation);
-			if (index == -1) {
-				return;
-			}
-			ArrayList allContexts = new ArrayList(replacements.length);
-			redoList.remove(operation);
-			// notify listeners after we release the lock on redoList
-			for (int i = 0; i < replacements.length; i++) {
-				IUndoContext[] opContexts = replacements[i].getContexts();
-				for (int j = 0; j < opContexts.length; j++) {
-					allContexts.add(opContexts[j]);
-				}
-				redoList.add(index, replacements[i]);
-				// notify listeners after we release the lock on redoList
-			}
-			// recheck all the limits. We do this at the end so the index
-			// doesn't change during replacement
-			for (int i = 0; i < allContexts.size(); i++) {
-				IUndoContext context = (IUndoContext) allContexts.get(i);
-				forceRedoLimit(context, getLimit(context));
-			}
-		}
-		// send listener notifications after we release the lock on the history
-		internalRemove(operation);
-		for (int i = 0; i < replacements.length; i++) {
-			notifyAdd(replacements[i]);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#setLimit(org.eclipse.core.commands.operations.IUndoContext,
-	 *      int)
-	 */
-	public void setLimit(IUndoContext context, int limit) {
-		Assert.isTrue(limit >= 0);
-		/*
-		 * The limit checking methods interpret a null context as a global limit
-		 * to be enforced. We do not wish to support a global limit in this
-		 * implementation, so we throw an exception for a null context. The rest
-		 * of the implementation can handle a null context, so subclasses can
-		 * override this if a global limit is desired.
-		 */
-		Assert.isNotNull(context);
-		limits.put(context, new Integer(limit));
-		forceUndoLimit(context, limit);
-		forceRedoLimit(context, limit);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#undo(org.eclipse.core.commands.operations.IUndoContext,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IUndoContext context, IProgressMonitor monitor,
-			IAdaptable info) throws ExecutionException {
-		Assert.isNotNull(context);
-		IUndoableOperation operation = getUndoOperation(context);
-
-		// info if there is no operation
-		if (operation == null) {
-			return IOperationHistory.NOTHING_TO_UNDO_STATUS;
-		}
-
-		// error if operation is invalid
-		if (!operation.canUndo()) {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-						"Undo operation not valid - " + operation); //$NON-NLS-1$
-			}
-			return IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-
-		return doUndo(monitor, info, operation);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#undoOperation(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undoOperation(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		Assert.isNotNull(operation);
-		IStatus status;
-		if (operation.canUndo()) {
-			status = doUndo(monitor, info, operation);
-		} else {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-						"Undo operation not valid - " + operation); //$NON-NLS-1$
-			}
-			status = IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#openOperation(org.eclipse.core.commands.operations.ICompositeOperation)
-	 */
-	public void openOperation(ICompositeOperation operation, int mode) {
-		synchronized (openCompositeLock) {
-			if (openComposite != null && openComposite != operation) {
-				// unexpected nesting of operations.
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Open operation called while another operation is open.  old: " //$NON-NLS-1$
-									+ openComposite + "; new:  " + operation); //$NON-NLS-1$
-				}
-
-				throw new IllegalStateException(
-						"Cannot open an operation while one is already open"); //$NON-NLS-1$
-			}
-			openComposite = operation;
-		}
-		if (DEBUG_OPERATION_HISTORY_OPENOPERATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "Opening operation " //$NON-NLS-1$ //$NON-NLS-2$
-					+ openComposite);
-		}
-
-		if (mode == EXECUTE) {
-			notifyAboutToExecute(openComposite);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#closeOperation(boolean,
-	 *      boolean)
-	 */
-	public void closeOperation(boolean operationOK, boolean addToHistory,
-			int mode) {
-		ICompositeOperation endedComposite = null;
-
-		synchronized (openCompositeLock) {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				if (openComposite == null) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Attempted to close operation when none was open"); //$NON-NLS-1$
-					return;
-				}
-			}
-			// notifications will occur outside the synchonized block
-			if (openComposite != null) {
-				if (DEBUG_OPERATION_HISTORY_OPENOPERATION) {
-					Tracing.printTrace("OPERATIONHISTORY", "Closing operation " //$NON-NLS-1$ //$NON-NLS-2$
-							+ openComposite);
-				}
-				endedComposite = openComposite;
-				openComposite = null;
-			}
-		}
-		// any mode other than EXECUTE was triggered by a request to undo or
-		// redo something already in the history, so undo and redo
-		// notification will occur at the end of that sequence.
-		if (endedComposite != null) {
-			if (operationOK) {
-				if (mode == EXECUTE) {
-					notifyDone(endedComposite);
-				}
-				if (addToHistory) {
-					add(endedComposite);
-				}
-			} else {
-				if (mode == EXECUTE) {
-					notifyNotOK(endedComposite);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#operationChanged(org.eclipse.core.commands.operations.IUndoableOperation)
-	 */
-	public void operationChanged(IUndoableOperation operation) {
-		if (undoList.contains(operation) || redoList.contains(operation)) {
-			notifyChanged(operation);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation.java
deleted file mode 100644
index ce6c80b..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IAdvancedUndoableOperation defines an interface for undoable operations that
- * modify one or more elements in a model and attempt to keep model listeners up
- * to date with changes that occur in the undo and redo history involving particular
- * model elements.  It also defines methods for computing the validity of an operation
- * for undo or redo before attempting to perform the undo or redo.
- * </p>
- * <p>
- * This interface is intended to be used by legacy frameworks that are adapting
- * their original undo and redo support to this framework. The methods in this
- * interface allow legacy clients to maintain features not supported in the
- * basic operations framework.
- * </p>
- * 
- * @since 3.1
- * 
- */
-public interface IAdvancedUndoableOperation {
-
-	/**
-	 * <p>
-	 * An operation history notification about this operation is about to be
-	 * sent to operation history listeners. Any preparation needed before
-	 * listeners are notified about this operation should be performed here.
-	 * 
-	 * <p>
-	 * This method has been added to support legacy undo frameworks that are
-	 * adapting to IUndoableOperation. Operations that previously relied on
-	 * notification from their containing history or stack before any listeners
-	 * are notified about changes to the operation should implement this
-	 * interface.
-	 * 
-	 * @param event 
-	 *            the event that is about to be sent with the pending
-	 *            notification
-	 * 
-	 */
-	void aboutToNotify(OperationHistoryEvent event);
-
-	/**
-	 * <p>
-	 * Return an array of objects that are affected by executing, undoing, or
-	 * redoing this operation. If it cannot be determined which objects are
-	 * affected, return null.
-	 * </p>
-	 * 
-	 * @return the array of Objects modified by this operation, or
-	 *         <code>null</code> if the affected objects cannot be determined.
-	 */
-	Object[] getAffectedObjects();
-
-	/**
-	 * Return a status indicating the projected outcome of undoing the receiver.
-	 * 
-	 * This method should be used to report the possible outcome of an undo and
-	 * is used when computing the validity of an undo is too expensive to
-	 * perform in {@link IUndoableOperation#canUndo()}. It is not called by the
-	 * operation history, but instead is used by clients (such as implementers
-	 * of {@link IOperationApprover}) who wish to perform advanced validation of
-	 * an operation before attempting to undo it.
-	 * 
-	 * If the result of this method is the discovery that an operation can in
-	 * fact not be undone, then the operation is expected to correctly answer
-	 * <code>false</code> on subsequent calls to
-	 * {@link IUndoableOperation#canUndo()}.
-	 * 
-	 * @param monitor 
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user while computing the validity.
-	 * 
-	 * @return the IStatus indicating the validity of the undo. The status
-	 *         severity should be set to <code>OK</code> if the undo can
-	 *         successfully be performed, and <code>ERROR</code> if it
-	 *         cannnot. Any other status is assumed to represent an ambiguous
-	 *         state.
-	 * @throws ExecutionException
-	 *             if an exception occurs while computing the validity.
-	 */
-	IStatus computeUndoableStatus(IProgressMonitor monitor)
-			throws ExecutionException;
-
-	/**
-	 * Return a status indicating the projected outcome of redoing the receiver.
-	 * 
-	 * This method should be used to report the possible outcome of a redo and
-	 * is used when computing the validity of a redo is too expensive to perform
-	 * in {@link IUndoableOperation#canRedo()}. It is not called by the
-	 * operation history, but instead is used by clients (such as implementers
-	 * of {@link IOperationApprover}) who wish to perform advanced validation of
-	 * an operation before attempting to redo it.
-	 * 
-	 * If the result of this method is the discovery that an operation can in
-	 * fact not be redone, then the operation is expected to correctly answer
-	 * <code>false</code> on subsequent calls to
-	 * {@link IUndoableOperation#canRedo()}.
-	 * 
-	 * @param monitor 
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user while computing the validity.
-	 * 
-	 * @return the IStatus indicating the validity of the redo. The status
-	 *         severity should be set to <code>OK</code> if the redo can
-	 *         successfully be performed, and <code>ERROR</code> if it
-	 *         cannnot. Any other status is assumed to represent an ambiguous
-	 *         state.
-	 * @throws ExecutionException
-	 *             if an exception occurs while computing the validity.
-	 */
-	IStatus computeRedoableStatus(IProgressMonitor monitor)
-			throws ExecutionException;
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.java
deleted file mode 100644
index 1cb4280..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IAdvancedUndoableOperation2 defines a method for computing the validity of
- * executing an operation before attempting to execute it. It also defines a way
- * for clients to specify that computing status should be done quietly, without
- * consulting the user. This interface is useful when implementing
- * {@link IOperationApprover2}, or any other object that performs validation of
- * the undo history. It also allows operations to specify whether they should be
- * run in the UI thread.
- * </p>
- * 
- * @since 3.3
- * 
- */
-public interface IAdvancedUndoableOperation2 {
-	/**
-	 * Return a status indicating the projected outcome of executing the
-	 * receiver.
-	 * 
-	 * This method should be used to report the possible outcome of executing an
-	 * operation when computing the validity of an execute is too expensive to
-	 * perform in {@link IUndoableOperation#canExecute()}. It is not called by
-	 * the operation history, but instead is used by clients (such as
-	 * implementers of {@link IOperationApprover2}) who wish to perform
-	 * advanced validation of an operation before attempting to execute it.
-	 * 
-	 * If the result of this method is the discovery that an operation can in
-	 * fact not be executed, then the operation is expected to correctly answer
-	 * <code>false</code> on subsequent calls to
-	 * {@link IUndoableOperation#canExecute()}.
-	 * 
-	 * @param monitor
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user while computing the validity.
-	 * 
-	 * @return the IStatus indicating the validity of the execute. The status
-	 *         severity should be set to <code>OK</code> if the execute can
-	 *         successfully be performed, and <code>ERROR</code> if it cannot.
-	 *         Any other severity is assumed to represent an ambiguous state.
-	 * @throws ExecutionException
-	 *             if an exception occurs while computing the validity.
-	 */
-	IStatus computeExecutionStatus(IProgressMonitor monitor)
-			throws ExecutionException;
-
-	/**
-	 * Set a boolean that instructs whether the computation of the receiver's
-	 * execution, undo, or redo status should quietly compute status without
-	 * consulting or prompting the user. The default value is <code>false</code>.
-	 * This flag should only be set to <code>true</code> while the execution,
-	 * undo, or redo status computations are being performed in the background,
-	 * and should be restored to <code>false</code> when complete.
-	 * <p>
-	 * If the status computation methods typically need to consult the user in
-	 * order to determine the severity of a particular situation, the least
-	 * severe status that could be chosen by the user should be returned when
-	 * this flag is <code>true</code>. This can help to prevent overzealous
-	 * disposal of the operation history when an operation is in an ambiguous
-	 * state. Typically, the status computation methods are invoked with this
-	 * flag set to <code>false</code> just before the actual execution, undo,
-	 * or redo occurs, so the user can be consulted for the final outcome.
-	 * 
-	 * @param quiet
-	 *            <code>true</code> if it is inappropriate to consult or
-	 *            otherwise prompt the user while computing status, and
-	 *            <code>false</code> if the user may be prompted.
-	 * 
-	 * @see #computeExecutionStatus(IProgressMonitor)
-	 * @see IAdvancedUndoableOperation#computeUndoableStatus(IProgressMonitor)
-	 * @see IAdvancedUndoableOperation#computeRedoableStatus(IProgressMonitor)
-	 */
-	public void setQuietCompute(boolean quiet);
-
-	/**
-	 * Return a boolean that instructs whether the operation should be executed,
-	 * undone, or redone in a background thread.
-	 * 
-	 * @return <code>true</code> if the operation should be run in the
-	 *         background, <code>false</code> if it should not.
-	 */
-	public boolean runInBackground();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ICompositeOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ICompositeOperation.java
deleted file mode 100644
index 1653596..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ICompositeOperation.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-/**
- * <p>
- * ICompositeOperation defines an undoable operation that is composed of child
- * operations. Requests to execute, undo, or redo a composite result in the the
- * execution, undo, or redo of the composite as a whole. Similarly, a request to 
- * dispose the composite should result in all child operations being disposed.
- * </p>
- * 
- * @since 3.1
- */
-public interface ICompositeOperation extends IUndoableOperation {
-
-	/**
-	 * <p>
-	 * Add the specified operation as a child of this operation.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be added. If the operation instance has
-	 *            already been added, this method will have no effect.
-	 */
-	void add(IUndoableOperation operation);
-
-	/**
-	 * <p>
-	 * Remove the specified operation from this operation.
-	 * </p>
-	 * <p>
-	 * The composite operation should dispose the operation as part of removing
-	 * it.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be removed. The operation should be disposed
-	 *            by the receiver. This method will have no effect if the
-	 *            operation instance is not already a child.
-	 */
-	void remove(IUndoableOperation operation);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java
deleted file mode 100644
index 1ca00eb..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-/**
- * IContextReplacingOperation defines an interface for undoable operations that
- * can replace one undo context with another undo context. It is used by
- * operations, such as composite operations, where removing and adding an undo
- * context would not have the same semantic as replacing one undo context with
- * another.
- * 
- * @since 3.2
- * 
- */
-public interface IContextReplacingOperation {
-
-	/**
-	 * Replace the undo context of the receiver with the provided replacement
-	 * undo context.
-	 * <p>
-	 * This message has no effect if the original undo context is not present in
-	 * the receiver.
-	 * 
-	 * @param original the undo context which is to be replaced
-	 * @param replacement the undo context which is replacing the original
-	 * 
-	 */
-	void replaceContext(IUndoContext original, IUndoContext replacement);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover.java
deleted file mode 100644
index 44446f8..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IOperationApprover defines an interface for approving the undo or redo of a
- * particular operation within an operation history. Operations that are
- * candidates for undo or redo have already been validated against their current
- * state and according to the rules of the history.
- * </p>
- * <p>
- * By the time an IOperationApprover is consulted, the undo has already been
- * requested. Approvers should return an <code>IStatus</code> object with
- * severity <code>OK</code> if the operation should proceed, and any other
- * severity if it should not. When an operation is not approved, it is expected
- * that the object not allowing the operation has already consulted the user if
- * necessary or otherwise provided any necessary information to the user about
- * the fact that the operation is not approved.
- * </p>
- * <p>
- * Operation approvers must be prepared to receive the approval messages from a
- * background thread. Any UI access occurring inside the implementation must be
- * properly synchronized using the techniques specified by the client's widget
- * library.
- * </p>
- * 
- * @since 3.1
- */
-public interface IOperationApprover {
-
-	/**
-	 * Return a status indicating whether the specified operation should be
-	 * redone. Any status that does not have severity <code>IStatus.OK</code>
-	 * will not be approved. Implementers should not assume that the redo will
-	 * be performed when the status is <code>OK</code>, since other operation
-	 * approvers may veto the redo.
-	 * 
-	 * @param operation 
-	 *            the operation to be redone
-	 * @param history 
-	 *            the history redoing the operation
-	 * @param info 
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class. Even if UI
-	 *            information is provided, the implementation of this method
-	 *            must be prepared for being called from a background thread.
-	 *            Any UI access must be properly synchronized using the
-	 *            techniques specified by the client's widget library.
-	 * @return the IStatus describing whether the operation is approved. The
-	 *         redo will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the redo will be
-	 *         returned the status that caused the rejection. Any other status
-	 *         severities will not be interpreted by the history.
-	 */
-	IStatus proceedRedoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info);
-
-	/**
-	 * Return a status indicating whether the specified operation should be
-	 * undone. Any status that does not have severity <code>IStatus.OK</code>
-	 * will not be approved. Implementers should not assume that the undo will
-	 * be performed when the status is <code>OK</code>, since other operation
-	 * approvers can veto the undo.
-	 * 
-	 * @param operation 
-	 *            the operation to be undone
-	 * @param history 
-	 *            the history undoing the operation
-	 * @param info 
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class. Even if UI
-	 *            information is provided, the implementation of this method
-	 *            must be prepared for being called from a background thread.
-	 *            Any UI access must be properly synchronized using the
-	 *            techniques specified by the client's widget library.
-	 * @return the IStatus describing whether the operation is approved. The
-	 *         undo will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the undo will be
-	 *         returned the status that caused the rejection. Any other status
-	 *         severities will not be interpreted by the history.
-	 */
-	IStatus proceedUndoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info);
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover2.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover2.java
deleted file mode 100644
index 7dbbd45..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover2.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Extends {@link IOperationApprover} to approve the execution of a particular
- * operation within an operation history. Operations that are candidates for
- * execution have already been validated against their current state and
- * according to the rules of the history. Prior to 3.2, an operation approver
- * was only consulted for undo and redo of an operation, not its initial
- * execution.
- * <p>
- * By the time an IOperationApprover2 is consulted, the execution has already
- * been requested and it has been determined that the operation is valid.
- * Approvers should return an <code>IStatus</code> object with severity
- * <code>OK</code> if the operation should proceed, and any other severity if
- * it should not. When an operation is not approved, it is expected that the
- * object not allowing the operation has already consulted the user if necessary
- * or otherwise provided any necessary information to the user about the fact
- * that the operation is not approved.
- * </p>
- * <p>
- * Like {@link IOperationApprover}, implementers of this extension must be
- * prepared to receive the approval messages from a background thread. Any UI
- * access occurring inside the implementation must be properly synchronized
- * using the techniques specified by the client's widget library.
- * </p>
- * 
- * @since 3.2
- */
-public interface IOperationApprover2 extends IOperationApprover {
-	/**
-	 * Return a status indicating whether the specified operation should be
-	 * executed. Any status that does not have severity <code>IStatus.OK</code>
-	 * will not be approved. Implementers should not assume that the execution
-	 * will be performed when the status is <code>OK</code>, since other
-	 * operation approvers may veto the execution.
-	 * 
-	 * @param operation
-	 *            the operation to be executed
-	 * @param history
-	 *            the history performing the execution of the operation
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class. Even if UI
-	 *            information is provided, the implementation of this method
-	 *            must be prepared for being called from a background thread.
-	 *            Any UI access must be properly synchronized using the
-	 *            techniques specified by the client's widget library.
-	 * @return the IStatus describing whether the operation is approved. The
-	 *         execution will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the execution will
-	 *         be returned the status that caused the rejection. Any other
-	 *         status severities will not be interpreted by the history.
-	 */
-	IStatus proceedExecuting(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java
deleted file mode 100644
index 3c11a3d..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java
+++ /dev/null
@@ -1,697 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.internal.commands.operations.GlobalUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IOperationHistory tracks a history of operations that can be undone or
- * redone. Operations are added to the history once they have been initially
- * executed. Clients may choose whether to have the operations history perform
- * the initial execution or to simply add an already-executed operation to the
- * history.
- * </p>
- * <p>
- * Once operations are added to the history, the methods
- * {@link #canRedo(IUndoContext)} and {@link #canUndo(IUndoContext)} are used to
- * determine whether there is an operation available for undo and redo in a
- * given undo context. The context-based protocol implies that there is only one
- * operation that can be undone or redone at a given time in a given context.
- * This is typical of a linear undo model, when only the most recently executed
- * operation is available for undo. When this protocol is used, a linear model
- * is enforced by the history.
- * </p>
- * <p>
- * It is up to clients to determine how to maintain a history that is invalid or
- * stale. For example, when the most recent operation for a context cannot be
- * performed, clients may wish to dispose the history for that context.
- * </p>
- * <p>
- * Additional protocol allows direct undo and redo of a specified operation,
- * regardless of its position in the history. When a more flexible undo model is
- * supported, these methods can be implemented to undo and redo directly
- * specified operations. If an implementer of IOperationHistory does not allow
- * direct undo and redo, these methods can return a status indicating that it is
- * not allowed.
- * </p>
- * <p>
- * Listeners ({@link IOperationHistoryListener}) can listen for notifications
- * about changes in the history (operations added or removed), and for
- * notification before and after any operation is executed, undone or redone.
- * Notification of operation execution only occurs when clients direct the
- * history to execute the operation. If the operation is added after it is
- * executed, there can be no notification of its execution.
- * </p>
- * <p>
- * {@link IOperationApprover} defines an interface for approving an undo or redo
- * before it occurs. This is useful for injecting policy-decisions into the undo
- * model - whether direct undo and redo are supported, or warning the user about
- * certain kinds of operations. It can also be used when clients maintain state
- * related to an operation and need to determine whether an undo or redo will
- * cause any conflicts with their local state.
- * </p>
- * 
- * @since 3.1
- */
-public interface IOperationHistory {
-
-	/**
-	 * An operation is to be opened or closed for execution. (value is 1).
-	 */
-	public static final int EXECUTE = 1;
-
-	/**
-	 * An operation is to be opened for undo. (value is 2).
-	 */
-	public static final int UNDO = 2;
-
-	/**
-	 * An operation is to be opened for redo. (value is 3).
-	 */
-	public static final int REDO = 3;
-
-	/**
-	 * An undo context that can be used to refer to the global undo history.
-	 * This context is not intended to be assigned to operations. Instead, it is
-	 * used for querying the history or performing an undo or redo on the entire
-	 * history, regardless of each operation's undo contexts.
-	 */
-	public static final IUndoContext GLOBAL_UNDO_CONTEXT = new GlobalUndoContext();
-
-	/**
-	 * An operation info status describing the condition that there is no
-	 * available operation for redo.
-	 */
-	public static final IStatus NOTHING_TO_REDO_STATUS = new OperationStatus(
-			IStatus.INFO, OperationStatus.DEFAULT_PLUGIN_ID,
-			OperationStatus.NOTHING_TO_REDO, "No operation to redo", null); //$NON-NLS-1$
-
-	/**
-	 * An operation info status describing the condition that there is no
-	 * available operation for undo.
-	 */
-	public static final IStatus NOTHING_TO_UNDO_STATUS = new OperationStatus(
-			IStatus.INFO, OperationStatus.DEFAULT_PLUGIN_ID,
-			OperationStatus.NOTHING_TO_UNDO, "No operation to undo", null); //$NON-NLS-1$
-
-	/**
-	 * An operation error status describing the condition that the operation
-	 * available for execution, undo or redo is not in a valid state for the
-	 * action to be performed.
-	 */
-	public static final IStatus OPERATION_INVALID_STATUS = new OperationStatus(
-			IStatus.ERROR, OperationStatus.DEFAULT_PLUGIN_ID,
-			OperationStatus.OPERATION_INVALID, "Operation is not valid", null); //$NON-NLS-1$
-
-	/**
-	 * <p>
-	 * Add the specified operation to the history without executing it. The
-	 * operation should have already been executed by the time it is added to
-	 * the history. Listeners will be notified that the operation was added to
-	 * the history (<code>OPERATION_ADDED</code>).
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be added to the history
-	 */
-	void add(IUndoableOperation operation);
-
-	/**
-	 * <p>
-	 * Add the specified approver to the list of operation approvers consulted
-	 * by the operation history before an undo or redo is attempted.
-	 * </p>
-	 * 
-	 * @param approver
-	 *            the IOperationApprover to be added as an approver.the instance
-	 *            to remove. Must not be <code>null</code>. If an attempt is
-	 *            made to register an instance which is already registered with
-	 *            this instance, this method has no effect.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover
-	 */
-	void addOperationApprover(IOperationApprover approver);
-
-	/**
-	 * <p>
-	 * Add the specified listener to the list of operation history listeners
-	 * that are notified about changes in the history or operations that are
-	 * executed, undone, or redone.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the IOperationHistoryListener to be added as a listener. Must
-	 *            not be <code>null</code>. If an attempt is made to register
-	 *            an instance which is already registered with this instance,
-	 *            this method has no effect.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistoryListener
-	 * @see org.eclipse.core.commands.operations.OperationHistoryEvent
-	 */
-	void addOperationHistoryListener(IOperationHistoryListener listener);
-
-	/**
-	 * <p>
-	 * Close the current operation. If the operation has successfully completed,
-	 * send listeners a <code>DONE</code>, <code>UNDONE</code>, or
-	 * <code>REDONE</code> notification, depending on the mode. Otherwise send
-	 * an <code>OPERATION_NOT_OK</code> notification. Add the operation to the
-	 * history if specified and send an <code>OPERATION_ADDED</code>
-	 * notification.
-	 * </p>
-	 * <p>
-	 * Any operations that are executed and added after this operation is closed
-	 * will no longer be considered part of this operation.
-	 * </p>
-	 * <p>
-	 * This method has no effect if the caller has not previously called
-	 * {@link #openOperation}.
-	 * </p>
-	 * 
-	 * @param operationOK
-	 *            <code>true</code> if the operation successfully completed.
-	 *            Listeners should be notified with <code>DONE</code>,
-	 *            <code>UNDONE</code>, or <code>REDONE</code>.
-	 *            <code>false</code> if the operation did not successfully
-	 *            complete. Listeners should be notified with
-	 *            <code>OPERATION_NOT_OK</code>.
-	 * @param addToHistory
-	 *            <code>true</code> if the operation should be added to the
-	 *            history, <code>false</code> if it should not. If the
-	 *            <code>operationOK</code> parameter is <code>false</code>,
-	 *            the operation will never be added to the history.
-	 * @param mode
-	 *            the mode the operation was opened in. Can be one of
-	 *            <code>EXECUTE</code>, <code>UNDO</code>, or
-	 *            <code>REDO</code>. This determines what notifications are
-	 *            sent.
-	 */
-	void closeOperation(boolean operationOK, boolean addToHistory, int mode);
-
-	/**
-	 * <p>
-	 * Return whether there is a valid redoable operation available in the given
-	 * context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be checked
-	 * @return <code>true</code> if there is a redoable operation,
-	 *         <code>false</code> otherwise.
-	 */
-
-	boolean canRedo(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Return whether there is a valid undoable operation available in the given
-	 * context
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be checked
-	 * @return <code>true</code> if there is an undoable operation,
-	 *         <code>false</code> otherwise.
-	 */
-	boolean canUndo(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Dispose of the specified context in the history. All operations that have
-	 * only the given context will be disposed. References to the context in
-	 * operations that have more than one context will also be removed. A
-	 * history notification for the removal of each operation being disposed
-	 * will be sent.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be disposed
-	 * @param flushUndo
-	 *            <code>true</code> if the context should be flushed from the
-	 *            undo history, <code>false</code> if it should not
-	 * @param flushRedo
-	 *            <code>true</code> if the context should be flushed from the
-	 *            redo history, <code>false</code> if it should not.
-	 * @param flushContext
-	 *            <code>true</code> if the context is no longer in use and
-	 *            references to it should be flushed.
-	 */
-	void dispose(IUndoContext context, boolean flushUndo, boolean flushRedo,
-			boolean flushContext);
-
-	/**
-	 * <p>
-	 * Execute the specified operation and add it to the operations history if
-	 * successful. This method is used by clients who wish operation history
-	 * listeners to receive notifications before and after the execution of the
-	 * operation. Execution of the operation is subject to approval by any
-	 * registered {@link IOperationApprover2}. If execution is approved,
-	 * listeners will be notified before (<code>ABOUT_TO_EXECUTE</code>) and
-	 * after (<code>DONE</code> or <code>OPERATION_NOT_OK</code>).
-	 * </p>
-	 * <p>
-	 * If the operation successfully executes, an additional notification that
-	 * the operation has been added to the history (<code>OPERATION_ADDED</code>)
-	 * will be sent.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be executed and then added to the history
-	 * 
-	 * @param monitor
-	 *            the progress monitor to be used (or <code>null</code>)
-	 *            during the operation.
-	 * 
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus indicating whether the execution succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it was added to the history. <code>OK</code>
-	 * severity indicates that the execute operation was successful and that the
-	 * operation has been added to the history. Listeners will receive
-	 * notifications about the operation's success (<code>DONE</code>) and
-	 * about the operation being added to the history (<code>OPERATION_ADDED</code>).
-	 * </p>
-	 * <p>
-	 * <code>CANCEL</code> severity indicates that the user cancelled the
-	 * operation and that the operation was not added to the history.
-	 * <code>ERROR</code> severity indicates that the operation did not
-	 * successfully execute and that it was not added to the history. Any other
-	 * severity code is not specifically interpreted by the history, and the
-	 * operation will not be added to the history. For all severities other than
-	 * <code>OK</code>, listeners will receive the
-	 * <code>OPERATION_NOT_OK</code> notification instead of the
-	 * <code>DONE</code> notification if the execution was approved and
-	 * attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during execution.
-	 * 
-	 */
-	IStatus execute(IUndoableOperation operation, IProgressMonitor monitor,
-			IAdaptable info) throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Return the limit on the undo and redo history for a particular context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context whose limit is requested
-	 * 
-	 * @return the undo and redo history limit for the specified context.
-	 */
-	int getLimit(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Get the array of operations in the redo history for a the specified undo
-	 * context. The operations are in the order that they were added to the
-	 * history, with the most recently undone operation appearing last in the
-	 * array. This history is used LIFO (last in, first out) when successive
-	 * "Redo" commands are invoked.
-	 * 
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context for the redo
-	 * @return the array of operations in the history
-	 */
-	IUndoableOperation[] getRedoHistory(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Get the operation that will next be redone in the given undo context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context for the redo
-	 * @return the operation to be redone or <code>null</code> if there is no
-	 *         operation available. There is no guarantee that the returned
-	 *         operation is valid for redo.
-	 */
-	IUndoableOperation getRedoOperation(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Get the array of operations in the undo history for the specified undo
-	 * context. The operations are in the order that they were added to the
-	 * history, with the most recently added operation appearing last in the
-	 * array. This history is used LIFO (last in, first out) when successive
-	 * "Undo" commands are invoked.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context for the undo
-	 * @return the array of operations in the history
-	 */
-	IUndoableOperation[] getUndoHistory(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Open this composite operation and consider it an operation that contains
-	 * other related operations. Consider all operations that are subsequently
-	 * executed or added to be part of this operation. When an operation is
-	 * opened, listeners will immediately receive a notification for the opened
-	 * operation. The specific notification depends on the mode in which the
-	 * operation is opened (<code>ABOUT_TO_EXECUTE</code>,
-	 * <code>ABOUT_TO_UNDO</code>, <code>ABOUT_TO_REDO</code>).
-	 * Notifications for any other execute or add while this operation is open
-	 * will not occur. Instead, those operations will be added to the current
-	 * operation.
-	 * </p>
-	 * <p>
-	 * Note: This method is intended to be used by legacy undo frameworks that
-	 * do not expect related undo operations to appear in the same undo history
-	 * as the triggering undo operation. When an operation is open, any
-	 * subsequent requests to execute, add, undo, or redo another operation will
-	 * result in that operation being added to the open operation. Once the
-	 * operation is closed, the composite will be considered an atomic
-	 * operation. Clients should not modify the composite directly (by adding
-	 * and removing children) while it is open.
-	 * </p>
-	 * <p>
-	 * When a composite is open, operations that are added to the history will
-	 * be considered part of the open operation instead. Operations that are
-	 * executed while a composite is open will first be executed and then added
-	 * to the composite.
-	 * </p>
-	 * <p>
-	 * Open operations cannot be nested. If this method is called when a
-	 * different operation is open, it is presumed to be an application coding
-	 * error and this method will throw an IllegalStateException.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the composite operation to be considered as the parent for all
-	 *            subsequent operations.
-	 * @param mode
-	 *            the mode the operation is executing in. Can be one of
-	 *            <code>EXECUTE</code>, <code>UNDO</code>, or
-	 *            <code>REDO</code>. This determines what notifications are
-	 *            sent.
-	 */
-	void openOperation(ICompositeOperation operation, int mode);
-
-	/**
-	 * <p>
-	 * The specified operation has changed in some way since it was added to the
-	 * operation history. Notify listeners with an OPERATION_CHANGED event.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation that has changed.
-	 * 
-	 */
-	void operationChanged(IUndoableOperation operation);
-
-	/**
-	 * <p>
-	 * Get the operation that will next be undone in the given undo context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context for the undo
-	 * @return the operation to be undone or <code>null</code> if there is no
-	 *         operation available. There is no guarantee that the available
-	 *         operation is valid for the undo.
-	 */
-	IUndoableOperation getUndoOperation(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Redo the most recently undone operation in the given context. The redo of
-	 * the operation is subject to approval by any registered
-	 * {@link IOperationApprover} before it is attempted.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be redone
-	 * @param monitor
-	 *            the progress monitor to be used for the redo, or
-	 *            <code>null</code> if no progress monitor is provided.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * @return the IStatus indicating whether the redo succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it remains in the history. <code>OK</code>
-	 * severity indicates that the redo operation was successful and (since
-	 * release 3.2), that the operation will be placed in the undo history.
-	 * (Prior to 3.2, a successfully redone operation would not be placed on the
-	 * undo history if it could not be undone. Since 3.2, this is relaxed, and
-	 * all successfully redone operations are placed in the undo history.)
-	 * Listeners will receive the <code>REDONE</code> notification.
-	 * </p>
-	 * <p>
-	 * Other severity codes (<code>CANCEL</code>, <code>ERROR</code>,
-	 * <code>INFO</code>, etc.) are not specifically interpreted by the
-	 * history. The operation will remain in the history and the returned status
-	 * is simply passed back to the caller. For all severities other than
-	 * <code>OK</code>, listeners will receive the
-	 * <code>OPERATION_NOT_OK</code> notification instead of the
-	 * <code>REDONE</code> notification if the redo was approved and
-	 * attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during redo.
-	 * 
-	 */
-	IStatus redo(IUndoContext context, IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Redo the specified operation. The redo of the operation is subject to
-	 * approval by any registered {@link IOperationApprover} before it is
-	 * attempted.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be redone
-	 * @param monitor
-	 *            the progress monitor to be used for the redo, or code>null</code>
-	 *            if no progress monitor is provided
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not <code>null</code>,
-	 *            it should minimally contain an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus indicating whether the redo succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it remains in the history. <code>OK</code>
-	 * severity indicates that the redo operation was successful, and (since
-	 * release 3.2), that the operation will be placed in the undo history.
-	 * (Prior to 3.2, a successfully redone operation would not be placed on the
-	 * undo history if it could not be undone. Since 3.2, this is relaxed, and
-	 * all successfully redone operations are placed in the undo history.)
-	 * Listeners will receive the <code>REDONE</code> notification.
-	 * </p>
-	 * <p>
-	 * Other severity codes (<code>CANCEL</code>, <code>ERROR</code>,
-	 * <code>INFO</code>, etc.) are not specifically interpreted by the
-	 * history. The operation will remain in the history and the returned status
-	 * is simply passed back to the caller. For all severities other than <code>OK</code>,
-	 * listeners will receive the <code>OPERATION_NOT_OK</code> notification
-	 * instead of the <code>REDONE</code> notification if the redo was
-	 * approved and attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during redo.
-	 */
-	IStatus redoOperation(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Remove the specified operation approver from the list of operation
-	 * approvers that are consulted before an operation is undone or redone.
-	 * </p>
-	 * 
-	 * @param approver
-	 *            the IOperationApprover to be removed. Must not be
-	 *            <code>null</code>. If an attempt is made to remove an
-	 *            instance which is not already registered with this instance,
-	 *            this method has no effect.
-	 */
-	void removeOperationApprover(IOperationApprover approver);
-
-	/**
-	 * <p>
-	 * Remove the specified listener from the list of operation history
-	 * listeners.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            The IOperationHistoryListener to be removed. Must not be
-	 *            <code>null</code>. If an attempt is made to remove an
-	 *            instance which is not already registered with this instance,
-	 *            this method has no effect.
-	 */
-	void removeOperationHistoryListener(IOperationHistoryListener listener);
-
-	/**
-	 * <p>
-	 * Replace the specified operation in the undo or redo history with the
-	 * provided list of replacements. This protocol is typically used when a
-	 * composite is broken up into its atomic parts. The replacements will be
-	 * inserted so that the first replacement will be the first of the
-	 * replacements to be undone or redone. Listeners will be notified about the
-	 * removal of the replaced element and the addition of each replacement.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            The IUndoableOperation to be replaced
-	 * @param replacements
-	 *            the array of IUndoableOperation to replace the first operation
-	 */
-	void replaceOperation(IUndoableOperation operation,
-			IUndoableOperation[] replacements);
-
-	/**
-	 * <p>
-	 * Set the limit on the undo and redo history for a particular context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context whose limit is being set.
-	 * 
-	 * @param limit
-	 *            the maximum number of operations that should be kept in the
-	 *            undo or redo history for the specified context. Must not be
-	 *            negative.
-	 */
-	void setLimit(IUndoContext context, int limit);
-
-	/**
-	 * <p>
-	 * Undo the most recently executed operation in the given context. The undo
-	 * of the operation is subject to approval by any registered
-	 * {@link IOperationApprover} before it is attempted.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be undone
-	 * @param monitor
-	 *            the progress monitor to be used for the undo, or
-	 *            <code>null</code> if no progress monitor is provided.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus indicating whether the undo succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it remains in the history. <code>OK</code>
-	 * severity indicates that the undo operation was successful, and (since
-	 * release 3.2), that the operation will be placed on the redo history.
-	 * (Prior to 3.2, a successfully undone operation would not be placed on the
-	 * redo history if it could not be redone. Since 3.2, this is relaxed, and
-	 * all successfully undone operations are placed in the redo history.)
-	 * Listeners will receive the <code>UNDONE</code> notification.
-	 * </p>
-	 * <p>
-	 * Other severity codes (<code>CANCEL</code>, <code>ERROR</code>,
-	 * <code>INFO</code>, etc.) are not specifically interpreted by the
-	 * history. The operation will remain in the history and the returned status
-	 * is simply passed back to the caller. For all severities other than
-	 * <code>OK</code>, listeners will receive the
-	 * <code>OPERATION_NOT_OK</code> notification instead of the
-	 * <code>UNDONE</code> notification if the undo was approved and
-	 * attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during undo.
-	 */
-
-	IStatus undo(IUndoContext context, IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Undo the specified operation. The undo of the operation is subject to
-	 * approval by any registered {@link IOperationApprover} before it is
-	 * attempted.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be undone
-	 * @param monitor
-	 *            the progress monitor to be used for the undo, or
-	 *            <code>null</code> if no progress monitor is provided
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus indicating whether the undo succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it remains in the history. <code>OK</code>
-	 * severity indicates that the undo operation was successful, and (since
-	 * release 3.2), that the operation will be placed on the redo history.
-	 * (Prior to 3.2, a successfully undone operation would not be placed on the
-	 * redo history if it could not be redone. Since 3.2, this is relaxed, and
-	 * all successfully undone operations are placed in the redo history.)
-	 * Listeners will receive the <code>UNDONE</code> notification.
-	 * </p>
-	 * <p>
-	 * Other severity codes (<code>CANCEL</code>, <code>ERROR</code>,
-	 * <code>INFO</code>, etc.) are not specifically interpreted by the
-	 * history. The operation will remain in the history and the returned status
-	 * is simply passed back to the caller. For all severities other than
-	 * <code>OK</code>, listeners will receive the
-	 * <code>OPERATION_NOT_OK</code> notification instead of the
-	 * <code>UNDONE</code> notification if the undo was approved and
-	 * attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during undo.
-	 */
-	IStatus undoOperation(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistoryListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistoryListener.java
deleted file mode 100644
index d665216..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistoryListener.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-/**
- * <p>
- * This interface is used to listen to notifications from an IOperationHistory.
- * The supplied OperationHistoryEvent describes the particular notification.
- * </p>
- * <p>
- * Operation history listeners must be prepared to receive notifications from a
- * background thread. Any UI access occurring inside the implementation must be
- * properly synchronized using the techniques specified by the client's widget
- * library.
- * </p>
- * 
- * @since 3.1
- */
-public interface IOperationHistoryListener {
-	/**
-	 * Something of note has happened in the IOperationHistory. Listeners should
-	 * check the supplied event for details.
-	 * 
-	 * @param event 
-	 *            the OperationHistoryEvent that describes the particular
-	 *            notification.
-	 */
-	void historyNotification(OperationHistoryEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoContext.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoContext.java
deleted file mode 100644
index 7b30cd5..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoContext.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-/**
- * <p>
- * An undo context is used to "tag" operations as being applicable to a certain
- * context. The undo context is used to filter the history of operations
- * available for undo or redo so that only operations appropriate for a given
- * undo context are shown when the application is presenting that context.
- * </p>
- * <p>
- * The scope of an undo context is defined by the application that is making
- * undo and redo of operations available. Undo contexts may be related to
- * application models, or may be associated with UI objects that are providing
- * undo and redo support.
- * </p>
- * <p>
- * An undo context may be defined as "matching" another context. This allows
- * applications to provide specialized implementations of an undo context that
- * will appear in the operation history for their matching context.
- * 
- * @since 3.1
- */
-
-public interface IUndoContext {
-
-	/**
-	 * Get the label that describes the undo context.
-	 * 
-	 * @return the label for the context.
-	 */
-	public String getLabel();
-
-	/**
-	 * Return whether the specified context is considered a match for the
-	 * receiving context. When a context matches another context, operations
-	 * that have the context are considered to also have the matching context.
-	 * 
-	 * @param context 
-	 *            the context to be checked against the receiving context.
-	 * 
-	 * @return <code>true</code> if the receiving context can be considered a
-	 *         match for the specified context, and <code>false</code> if it
-	 *         cannot.
-	 */
-	public boolean matches(IUndoContext context);
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java
deleted file mode 100644
index 4f7730f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IUndoableOperation defines an operation that can be executed, undone, and
- * redone. Operations typically have fully defined parameters. That is, they are
- * usually created after the user has been queried for any input needed to
- * define the operation.
- * </p>
- * <p>
- * Operations determine their ability to execute, undo, or redo according to the
- * current state of the application. They do not make decisions about their
- * validity based on where they occur in the operation history. That is left to
- * the particular operation history.
- * </p>
- * 
- * @since 3.1
- */
-public interface IUndoableOperation {
-
-	/**
-	 * <p>
-	 * Add the specified context to the operation. If a context equal to the
-	 * specified context is already present, do not add it again. Note that
-	 * determining whether a context is already present is based on equality,
-	 * not whether the context matches ({@link IUndoContext#matches(IUndoContext)})
-	 * another context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be added
-	 */
-	void addContext(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Returns whether the operation can be executed in its current state.
-	 * </p>
-	 * 
-	 * <p>
-	 * Note: The computation for this method must be fast, as it is called
-	 * frequently. If necessary, this method can be optimistic in its
-	 * computation (returning true) and later perform more time-consuming
-	 * computations during the actual execution of the operation, returning the
-	 * appropriate status if the operation cannot actually execute at that time.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the operation can be executed;
-	 *         <code>false</code> otherwise.
-	 */
-	boolean canExecute();
-
-	/**
-	 * <p>
-	 * Returns whether the operation can be redone in its current state.
-	 * </p>
-	 * 
-	 * <p>
-	 * Note: The computation for this method must be fast, as it is called
-	 * frequently. If necessary, this method can be optimistic in its
-	 * computation (returning true) and later perform more time-consuming
-	 * computations during the actual redo of the operation, returning the
-	 * appropriate status if the operation cannot actually be redone at that
-	 * time.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the operation can be redone;
-	 *         <code>false</code> otherwise.
-	 */
-	boolean canRedo();
-
-	/**
-	 * <p>
-	 * Returns whether the operation can be undone in its current state.
-	 * </p>
-	 * 
-	 * <p>
-	 * Note: The computation for this method must be fast, as it is called
-	 * frequently. If necessary, this method can be optimistic in its
-	 * computation (returning true) and later perform more time-consuming
-	 * computations during the actual undo of the operation, returning the
-	 * appropriate status if the operation cannot actually be undone at that
-	 * time.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the operation can be undone;
-	 *         <code>false</code> otherwise.
-	 */
-	boolean canUndo();
-
-	/**
-	 * Dispose of the operation. This method is used when the operation is no
-	 * longer kept in the history. Implementers of this method typically
-	 * unregister any listeners.
-	 * 
-	 */
-	void dispose();
-
-	/**
-	 * Execute the operation. This method should only be called the first time
-	 * that an operation is executed.
-	 * 
-	 * @param monitor
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus of the execution. The status severity should be set
-	 *         to <code>OK</code> if the operation was successful, and
-	 *         <code>ERROR</code> if it was not. Any other status is assumed
-	 *         to represent an incompletion of the execution.
-	 * @throws ExecutionException
-	 *             if an exception occurred during execution.
-	 */
-	IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Returns the array of contexts that have been assigned to the operation.
-	 * </p>
-	 * <p>
-	 * This method may be called by the operation history from inside a
-	 * synchronized block. To avoid deadlock conditions, implementers of this
-	 * method must avoid dispatching and waiting on threads that modify the
-	 * operation history during this method.
-	 * </p>
-	 * 
-	 * @return the array of contexts
-	 */
-	IUndoContext[] getContexts();
-
-	/**
-	 * Return the label that should be used to show the name of the operation to
-	 * the user. This label is typically combined with the command strings shown
-	 * to the user in "Undo" and "Redo" user interfaces.  
-	 * 
-	 * @return the String label.  Should never be <code>null</code>.
-	 */
-	String getLabel();
-
-	/**
-	 * <p>
-	 * Returns whether the operation has a matching context for the specified
-	 * context.
-	 * </p>
-	 * <p>
-	 * This method may be called by the operation history from inside a
-	 * synchronized block. To avoid deadlock conditions, implementers of this
-	 * method must avoid dispatching and waiting on threads that modify the
-	 * operation history during this method.
-	 * </p>
-	 * 
-	 * @see IUndoContext#matches(IUndoContext)
-	 * 
-	 * @param context
-	 *            the context in question
-	 * @return <code>true</code> if the context is present, <code>false</code>
-	 *         if it is not.
-	 */
-	boolean hasContext(IUndoContext context);
-
-	/**
-	 * Redo the operation. This method should only be called after an operation
-	 * has been undone.
-	 * 
-	 * @param monitor
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * @return the IStatus of the redo. The status severity should be set to
-	 *         <code>OK</code> if the redo was successful, and
-	 *         <code>ERROR</code> if it was not. Any other status is assumed
-	 *         to represent an incompletion of the redo.
-	 * @throws ExecutionException
-	 *             if an exception occurred during redo.
-	 */
-
-	IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * Remove the specified context from the operation. This method has no
-	 * effect if the context is not equal to another context in the context
-	 * list. Note that determining whether a context is present when removing it
-	 * is based on equality, not whether the context matches ({@link
-	 * IUndoContext#matches(IUndoContext)}) another context.
-	 * 
-	 * @param context
-	 *            the context to be removed
-	 */
-	void removeContext(IUndoContext context);
-
-	/**
-	 * Undo the operation. This method should only be called after an operation
-	 * has been executed.
-	 * 
-	 * @param monitor
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * @return the IStatus of the undo. The status severity should be set to
-	 *         <code>OK</code> if the redo was successful, and
-	 *         <code>ERROR</code> if it was not. Any other status is assumed
-	 *         to represent an incompletion of the undo.
-	 * @throws ExecutionException
-	 *             if an exception occurred during undo.
-	 */
-	IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoEnforcer.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoEnforcer.java
deleted file mode 100644
index 03f0186..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoEnforcer.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * <p>
- * An operation approver that enforces a strict linear undo. It does not allow
- * the undo or redo of any operation that is not the latest available operation
- * in all of its undo contexts.  This class may be instantiated by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class LinearUndoEnforcer extends LinearUndoViolationDetector {
-	/**
-	 * Create an instance of LinearUndoEnforcer.
-	 */
-	public LinearUndoEnforcer() {
-		super();
-	}
-
-	/*
-	 * Return whether a linear redo violation is allowable.  A linear redo violation
-	 * is defined as a request to redo a particular operation even if it is not the most
-	 * recently added operation to the redo history.
-	 */
-	protected IStatus allowLinearRedoViolation(IUndoableOperation operation,
-			IUndoContext context, IOperationHistory history, IAdaptable uiInfo) {
-		return Status.CANCEL_STATUS;
-	}
-
-	/*
-	 * Return whether a linear undo violation is allowable.  A linear undo violation
-	 * is defined as a request to undo a particular operation even if it is not the most
-	 * recently added operation to the undo history.
-	 */
-	protected IStatus allowLinearUndoViolation(IUndoableOperation operation,
-			IUndoContext context, IOperationHistory history, IAdaptable uiInfo) {
-		return Status.CANCEL_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java
deleted file mode 100644
index fbd54d1..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * <p>
- * An abstract class for detecting violations in a strict linear undo/redo
- * model. Once a violation is detected, subclasses implement the specific
- * behavior for indicating whether or not the undo/redo should proceed.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class LinearUndoViolationDetector implements IOperationApprover {
-
-	/**
-	 * Create an instance of LinearUndoViolationDetector.
-	 */
-	public LinearUndoViolationDetector() {
-		super();
-	}
-
-	/**
-	 * Return a status indicating whether a linear redo violation is allowable.
-	 * A linear redo violation is defined as a request to redo a particular
-	 * operation even if it is not the most recently added operation to the redo
-	 * history.
-	 * 
-	 * @param operation
-	 *            the operation for which a linear redo violation has been
-	 *            detected.
-	 * @param context
-	 *            the undo context in which the linear redo violation exists
-	 * @param history
-	 *            the operation history containing the operation
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus describing whether the redo violation is allowed. The
-	 *         redo will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the redo will be
-	 *         returned the status that caused the rejection. Specific status
-	 *         severities will not be interpreted by the history.
-	 */
-
-	protected abstract IStatus allowLinearRedoViolation(
-			IUndoableOperation operation, IUndoContext context,
-			IOperationHistory history, IAdaptable info);
-
-	/**
-	 * Return a status indicating whether a linear undo violation is allowable.
-	 * A linear undo violation is defined as a request to undo a particular
-	 * operation even if it is not the most recently added operation to the undo
-	 * history.
-	 * 
-	 * @param operation
-	 *            the operation for which a linear undo violation has been
-	 *            detected.
-	 * @param context
-	 *            the undo context in which the linear undo violation exists
-	 * @param history
-	 *            the operation history containing the operation
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus describing whether the undo violation is allowed. The
-	 *         undo will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the undo will be
-	 *         returned the status that caused the rejection. Specific status
-	 *         severities will not be interpreted by the history.
-	 */
-	protected abstract IStatus allowLinearUndoViolation(
-			IUndoableOperation operation, IUndoContext context,
-			IOperationHistory history, IAdaptable info);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover#proceedRedoing(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IOperationHistory,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public final IStatus proceedRedoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info) {
-		IUndoContext[] contexts = operation.getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			IUndoContext context = contexts[i];
-			if (history.getRedoOperation(context) != operation) {
-				IStatus status = allowLinearRedoViolation(operation, context,
-						history, info);
-				if (!status.isOK()) {
-					return status;
-				}
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover#proceedUndoing(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IOperationHistory,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-
-	public final IStatus proceedUndoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info) {
-		IUndoContext[] contexts = operation.getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			IUndoContext context = contexts[i];
-			if (history.getUndoOperation(context) != operation) {
-				IStatus status = allowLinearUndoViolation(operation, context,
-						history, info);
-				if (!status.isOK()) {
-					return status;
-				}
-			}
-		}
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java
deleted file mode 100644
index e0d5eb6..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * <p>
- * An undo context that can be used to represent any given object. Clients
- * can add matching contexts to this context.  This class may be instantiated
- * by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class ObjectUndoContext extends UndoContext {
-
-	private Object object;
-
-	private String label;
-
-	private List children = new ArrayList();
-
-	/**
-	 * Construct an operation context that represents the given object.
-	 * 
-	 * @param object 
-	 *            the object to be represented.
-	 */
-	public ObjectUndoContext(Object object) {
-		this(object, null);
-	}
-
-	/**
-	 * Construct an operation context that represents the given object and has a
-	 * specialized label.
-	 * 
-	 * @param object 
-	 *            the object to be represented.
-	 * @param label 
-	 *            the label for the context
-	 */
-	public ObjectUndoContext(Object object, String label) {
-		super();
-		this.object = object;
-		this.label = label;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoContext#getLabel()
-	 */
-	public String getLabel() {
-		if (label != null) {
-			return label;
-		}
-		if (object != null) {
-			return object.toString();
-		}
-		return super.getLabel();
-	}
-
-	/**
-	 * Return the object that is represented by this context.
-	 * 
-	 * @return the object represented by this context.
-	 */
-	public Object getObject() {
-		return object;
-	}
-
-	/**
-	 * Add the specified context as a match of this context. Contexts added as
-	 * matches of this context will be interpreted as a match of this context
-	 * when the history is filtered for a particular context. Adding a match
-	 * allows components to create their own contexts for implementing
-	 * specialized behavior, yet have their operations appear in a more
-	 * global context.
-	 * 
-	 * @param context 
-	 *            the context to be added as a match of this context
-	 */
-	public void addMatch(IUndoContext context) {
-		children.add(context);
-	}
-
-	/**
-	 * Remove the specified context as a match of this context. The context will
-	 * no longer be interpreted as a match of this context when the history is
-	 * filtered for a particular context. This method has no effect if the
-	 * specified context was never previously added as a match.
-	 * 
-	 * @param context 
-	 *            the context to be removed from the list of matches for this
-	 *            context
-	 */
-	public void removeMatch(IUndoContext context) {
-		children.remove(context);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoContext#matches(IUndoContext
-	 *      context)
-	 */
-	public boolean matches(IUndoContext context) {
-		// Check first for explicit matches that have been assigned.
-		if (children.contains(context)) {
-			return true;
-		}
-		// Contexts for equal objects are considered matching
-		if (context instanceof ObjectUndoContext && getObject() != null) {
-			return getObject().equals(((ObjectUndoContext)context).getObject());
-		}
-		// Use the normal matching implementation
-		return super.matches(context);
-	}
-	
-	/**
-	 * The string representation of this operation.  Used for debugging purposes only.
-	 * This string should not be shown to an end user.
-	 * 
-	 * @return The string representation.
-	 */
-	public String toString() {
-		return getLabel();
-	}
-
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java
deleted file mode 100644
index cbaf6b9..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * OperationHistoryEvent is used to communicate changes that occur in a
- * DefaultOperationHistory, including the addition or removal of operations, and
- * the execution, undo, and redo of operations.
- * </p>
- * <p>
- * Operation history listeners must be prepared to receive notifications from a
- * background thread. Any UI access occurring inside the implementation must be
- * properly synchronized using the techniques specified by the client's widget
- * library.
- * </p>
- * 
- * 
- * @since 3.1
- */
-public final class OperationHistoryEvent {
-
-	/**
-	 * ABOUT_TO_EXECUTE indicates that an operation is about to execute.
-	 * Listeners should prepare for the execution as appropriate. Listeners will
-	 * receive a DONE notification if the operation is successful, or an
-	 * OPERATION_NOT_OK notification if the execution is cancelled or otherwise
-	 * fails. This notification is only received for those operations executed
-	 * by the operation history. Operations that are added to the history after
-	 * execution do not trigger these notifications.
-	 * 
-	 * If the operation successfully executes, clients will also receive a
-	 * notification that it has been added to the history.
-	 * 
-	 * (value is 1).
-	 */
-
-	public static final int ABOUT_TO_EXECUTE = 1;
-
-	/**
-	 * ABOUT_TO_REDO indicates that an operation is about to be redone.
-	 * Listeners should prepare for the redo as appropriate. Listeners will
-	 * receive a REDONE notification if the operation is successful, or an
-	 * OPERATION_NOT_OK notification if the redo is cancelled or otherwise
-	 * fails.
-	 * 
-	 * (value is 2).
-	 */
-	public static final int ABOUT_TO_REDO = 2;
-
-	/**
-	 * ABOUT_TO_UNDO indicates that an operation is about to be undone.
-	 * Listeners should prepare for the undo as appropriate. Listeners will
-	 * receive an UNDONE notification if the operation is successful, or an
-	 * OPERATION_NOT_OK notification if the undo is cancelled or otherwise
-	 * fails.
-	 * 
-	 * (value is 3).
-	 */
-	public static final int ABOUT_TO_UNDO = 3;
-
-	/**
-	 * DONE indicates that an operation has been executed. Listeners can take
-	 * appropriate action, such as revealing any relevant state in the UI. This
-	 * notification is only received for those operations executed by the
-	 * operation history. Operations that are added to the history after
-	 * execution do not trigger this notification.
-	 * 
-	 * Clients will also receive a notification that the operation has been
-	 * added to the history.
-	 * 
-	 * (value is 4).
-	 */
-	public static final int DONE = 4;
-
-	/**
-	 * OPERATION_ADDED indicates that an operation was added to the history.
-	 * Listeners can use this notification to add their undo context to a new
-	 * operation as appropriate or otherwise record the operation.
-	 * 
-	 * (value is 5).
-	 */
-	public static final int OPERATION_ADDED = 5;
-
-	/**
-	 * OPERATION_CHANGED indicates that an operation has changed in some way
-	 * since it was added to the operations history.
-	 * 
-	 * (value is 6).
-	 */
-	public static final int OPERATION_CHANGED = 6;
-
-	/**
-	 * OPERATION_NOT_OK indicates that an operation was attempted and not
-	 * successful. Listeners typically use this when they have prepared for an
-	 * execute, undo, or redo, and need to know that the operation did not
-	 * successfully complete. For example, listeners that turn redraw off before
-	 * an operation is undone would turn redraw on when the operation completes,
-	 * or when this notification is received, since there will be no
-	 * notification of the completion.
-	 * 
-	 * (value is 7).
-	 */
-	public static final int OPERATION_NOT_OK = 7;
-
-	/**
-	 * OPERATION_REMOVED indicates an operation was removed from the history.
-	 * Listeners typically remove any record of the operation that they may have
-	 * kept in their own state. The operation has been disposed by the time
-	 * listeners receive this notification.
-	 * 
-	 * (value is 8).
-	 */
-	public static final int OPERATION_REMOVED = 8;
-
-	/**
-	 * REDONE indicates that an operation was redone. Listeners can take
-	 * appropriate action, such as revealing any relevant state in the UI.
-	 * 
-	 * (value is 9).
-	 */
-	public static final int REDONE = 9;
-
-	/**
-	 * UNDONE indicates that an operation was undone. Listeners can take
-	 * appropriate action, such as revealing any relevant state in the UI.
-	 * 
-	 * (value is 10).
-	 */
-	public static final int UNDONE = 10;
-
-	private int code = 0;
-
-	private IOperationHistory history;
-
-	private IUndoableOperation operation;
-
-	/* @since 3.2 */
-	private IStatus status;
-
-	/**
-	 * Construct an event for the specified operation history.
-	 * 
-	 * @param code
-	 *            the event code to be used.
-	 * @param history
-	 *            the history triggering the event.
-	 * @param operation
-	 *            the operation involved in the event.
-	 */
-	public OperationHistoryEvent(int code, IOperationHistory history,
-			IUndoableOperation operation) {
-		this(code, history, operation, null);
-	}
-
-	/**
-	 * Construct an event for the specified operation history.
-	 * 
-	 * @param code
-	 *            the event code to be used.
-	 * @param history
-	 *            the history triggering the event.
-	 * @param operation
-	 *            the operation involved in the event.
-	 * @param status
-	 *            the status associated with the event, or null if no status is
-	 *            available.
-	 * 
-	 * @since 3.2
-	 */
-	public OperationHistoryEvent(int code, IOperationHistory history,
-			IUndoableOperation operation, IStatus status) {
-		if (history == null) {
-			throw new NullPointerException();
-		}
-		if (operation == null) {
-			throw new NullPointerException();
-		}
-		this.code = code;
-		this.history = history;
-		this.operation = operation;
-		this.status = status;
-	}
-
-	/**
-	 * Return the type of event that is occurring.
-	 * 
-	 * @return the type code indicating the type of event.
-	 */
-	public int getEventType() {
-		return code;
-	}
-
-	/**
-	 * Return the operation history that triggered this event.
-	 * 
-	 * @return the operation history
-	 */
-
-	public IOperationHistory getHistory() {
-		return history;
-	}
-
-	/**
-	 * Return the operation associated with this event.
-	 * 
-	 * @return the operation
-	 */
-
-	public IUndoableOperation getOperation() {
-		return operation;
-	}
-
-	/**
-	 * Return the status associated with this event.
-	 * 
-	 * @return the status associated with this event. The status may be null.
-	 * 
-	 * @since 3.2
-	 */
-
-	public IStatus getStatus() {
-		return status;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryFactory.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryFactory.java
deleted file mode 100644
index b24d746..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryFactory.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-/**
- * <p>
- * This class is used to maintain the instance of the operation history that
- * should be used by classes that access the undo or redo history and add
- * undoable operations to the history. 
- * 
- * <p>
- * It is intended that an application can create an operation history appropriate
- * for its needs and set it into this class.  Otherwise, a default operation history
- * will be created.  The operation history may only be set one time.  All classes that 
- * access an operations history use this class to obtain the correct instance.  
- * 
- * @since 3.1
- */
-public final class OperationHistoryFactory {
-
-	private static IOperationHistory operationHistory;
-
-	/**
-	 * Return the operation history to be used for managing undoable operations.
-	 * 
-	 * @return the operation history to be used for executing, undoing, and
-	 *         redoing operations.
-	 */
-	public static IOperationHistory getOperationHistory() {
-		if (operationHistory == null) {
-			operationHistory = new DefaultOperationHistory();
-		}
-		return operationHistory;
-	}
-
-	/**
-	 * Set the operation history to be used for managing undoable operations.
-	 * This method may only be called one time, and must be called before any 
-	 * request to get the history.  Attempts to set the operation history will
-	 * be ignored after it has been already set, or after a default one has 
-	 * been created.
-	 * 
-	 * @param history 
-	 *            the operation history to be used for executing, undoing, and
-	 *            redoing operations.
-	 */
-	public static void setOperationHistory(IOperationHistory history) {
-		// If one has already been set or created, ignore this request.
-		if (operationHistory == null) {
-			operationHistory = history;
-		}
-	}
-	
-	private OperationHistoryFactory() {
-		// may not be instantiated
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationStatus.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationStatus.java
deleted file mode 100644
index 9583d2a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationStatus.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.runtime.Status;
-
-/**
- * <p>
- * OperationStatus describes the status of a request to execute, undo, or redo
- * an operation.  This class may be instantiated by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class OperationStatus extends Status {
-	/**
-	 * NOTHING_TO_REDO indicates there was no operation available for redo.
-	 * 
-	 * (value is 1).
-	 */
-	public static final int NOTHING_TO_REDO = 1;
-
-	/**
-	 * NOTHING_TO_UNDO indicates there was no operation available for undo.
-	 * 
-	 * (value is 2).
-	 */
-	public static final int NOTHING_TO_UNDO = 2;
-
-	/**
-	 * OPERATION_INVALID indicates that the operation available for undo or redo
-	 * is not in a state to successfully perform the undo or redo.
-	 * 
-	 * (value is 3).
-	 */
-	public static final int OPERATION_INVALID = 3;
-
-	/**
-	 * DEFAULT_PLUGIN_ID identifies the default plugin reporting the status.
-	 * 
-	 * (value is "org.eclipse.core.commands").
-	 */
-	static String DEFAULT_PLUGIN_ID = "org.eclipse.core.commands"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new operation status, specifying all properties.
-	 * 
-	 * @param severity
-	 *            the severity for the status
-	 * @param pluginId 
-	 *            the unique identifier of the relevant plug-in
-	 * @param code
-	 *            the informational code for the status
-	 * @param message
-	 *            a human-readable message, localized to the current locale
-	 * @param exception
-	 *            a low-level exception, or <code>null</code> if not
-	 *            applicable
-	 */
-	public OperationStatus(int severity, String pluginId, int code, String message, Throwable exception) {
-		super(severity, pluginId, code, message, exception);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
deleted file mode 100644
index 8747181..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
+++ /dev/null
@@ -1,465 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Triggered operations are a specialized implementation of a composite
- * operation that keeps track of operations triggered by the execution of some
- * primary operation. The composite knows which operation was the trigger for
- * subsequent operations, and adds all triggered operations as children. When
- * execution, undo, or redo is performed, only the triggered operation is
- * executed, undone, or redone if it is still present. If the trigger is removed
- * from the triggered operations, then the child operations will replace the
- * triggered operations in the history.
- * <p>
- * This class may be instantiated by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class TriggeredOperations extends AbstractOperation implements
-		ICompositeOperation, IAdvancedUndoableOperation,
-		IContextReplacingOperation {
-
-	private IUndoableOperation triggeringOperation;
-
-	private IOperationHistory history;
-
-	private List children = new ArrayList();
-
-	/**
-	 * Construct a composite triggered operations using the specified undoable
-	 * operation as the trigger. Use the label of this trigger as the label of
-	 * the operation.
-	 * 
-	 * @param operation
-	 *            the operation that will trigger other operations.
-	 * @param history
-	 *            the operation history containing the triggered operations.
-	 */
-	public TriggeredOperations(IUndoableOperation operation,
-			IOperationHistory history) {
-		super(operation.getLabel());
-		triggeringOperation = operation;
-		recomputeContexts();
-		this.history = history;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#add(org.eclipse.core.commands.operations.IUndoableOperation)
-	 */
-	public void add(IUndoableOperation operation) {
-		children.add(operation);
-		recomputeContexts();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#remove(org.eclipse.core.commands.operations.IUndoableOperation)
-	 */
-	public void remove(IUndoableOperation operation) {
-		if (operation == triggeringOperation) {
-			// the triggering operation is being removed, so we must replace
-			// this composite with its individual triggers.
-			triggeringOperation = null;
-			// save the children before replacing the operation, since this
-			// operation will be disposed as part of replacing it. We don't want
-			// the children to be disposed since they are to replace this
-			// operation.
-			List childrenToRestore = new ArrayList(children);
-			children = new ArrayList(0);
-			recomputeContexts();
-			operation.dispose();
-			// now replace the triggering operation
-			history.replaceOperation(this,
-					(IUndoableOperation[]) childrenToRestore
-							.toArray(new IUndoableOperation[childrenToRestore
-									.size()]));
-		} else {
-			children.remove(operation);
-			operation.dispose();
-			recomputeContexts();
-		}
-	}
-
-	/**
-	 * Remove the specified context from the receiver. This method is typically
-	 * invoked when the history is being flushed for a certain context. In the
-	 * case of triggered operations, if the only context for the triggering
-	 * operation is being removed, then the triggering operation must be
-	 * replaced in the operation history with the atomic operations that it
-	 * triggered. If the context being removed is not the only context for the
-	 * triggering operation, the triggering operation will remain, and the
-	 * children will each be similarly checked.
-	 * 
-	 * @param context
-	 *            the undo context being removed from the receiver.
-	 */
-	public void removeContext(IUndoContext context) {
-
-		boolean recompute = false;
-		// first check to see if we are removing the only context of the
-		// triggering operation
-		if (triggeringOperation != null
-				&& triggeringOperation.hasContext(context)) {
-			if (triggeringOperation.getContexts().length == 1) {
-				remove(triggeringOperation);
-				return;
-			}
-			triggeringOperation.removeContext(context);
-			recompute = true;
-		}
-		// the triggering operation remains, check all the children
-		ArrayList toBeRemoved = new ArrayList();
-		for (int i = 0; i < children.size(); i++) {
-			IUndoableOperation child = (IUndoableOperation) children.get(i);
-			if (child.hasContext(context)) {
-				if (child.getContexts().length == 1) {
-					toBeRemoved.add(child);
-				} else {
-					child.removeContext(context);
-				}
-				recompute = true;
-			}
-		}
-		for (int i = 0; i < toBeRemoved.size(); i++) {
-			remove((IUndoableOperation) toBeRemoved.get(i));
-		}
-		if (recompute) {
-			recomputeContexts();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (triggeringOperation != null) {
-			history.openOperation(this, IOperationHistory.EXECUTE);
-			try {
-				IStatus status = triggeringOperation.execute(monitor, info);
-				history.closeOperation(status.isOK(), false,
-						IOperationHistory.EXECUTE);
-				return status;
-			} catch (ExecutionException e) {
-				history.closeOperation(false, false, IOperationHistory.EXECUTE);
-				throw e;
-			} catch (RuntimeException e) {
-				history.closeOperation(false, false, IOperationHistory.EXECUTE);
-				throw e;	
-			}
-
-		}
-		return IOperationHistory.OPERATION_INVALID_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (triggeringOperation != null) {
-			history.openOperation(this, IOperationHistory.REDO);
-			List childrenToRestore = new ArrayList(children);
-			try {
-				removeAllChildren();
-				IStatus status = triggeringOperation.redo(monitor, info);
-				if (!status.isOK()) {
-					children = childrenToRestore;
-				}
-				history.closeOperation(status.isOK(), false,
-						IOperationHistory.REDO);
-				return status;
-			} catch (ExecutionException e) {
-				children = childrenToRestore;
-				history.closeOperation(false, false, IOperationHistory.REDO);
-				throw e;
-			} catch (RuntimeException e) {
-				children = childrenToRestore;
-				history.closeOperation(false, false, IOperationHistory.REDO);
-				throw e;	
-			}
-		}
-		return IOperationHistory.OPERATION_INVALID_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (triggeringOperation != null) {
-			history.openOperation(this, IOperationHistory.UNDO);
-			List childrenToRestore = new ArrayList(children);
-			try {
-				removeAllChildren();
-				IStatus status = triggeringOperation.undo(monitor, info);
-				if (!status.isOK()) {
-					children = childrenToRestore;
-				}
-				history.closeOperation(status.isOK(), false,
-						IOperationHistory.UNDO);
-				return status;
-			} catch (ExecutionException e) {
-				children = childrenToRestore;
-				history.closeOperation(false, false, IOperationHistory.UNDO);
-				throw e;
-			} catch (RuntimeException e) {
-				children = childrenToRestore;
-				history.closeOperation(false, false, IOperationHistory.UNDO);
-				throw e;	
-			}
-		}
-		return IOperationHistory.OPERATION_INVALID_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canUndo()
-	 */
-	public boolean canUndo() {
-		if (triggeringOperation != null) {
-			return triggeringOperation.canUndo();
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canExecute()
-	 */
-	public boolean canExecute() {
-		if (triggeringOperation != null) {
-			return triggeringOperation.canExecute();
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canRedo()
-	 */
-	public boolean canRedo() {
-		if (triggeringOperation != null) {
-			return triggeringOperation.canRedo();
-		}
-		return false;
-	}
-
-	/*
-	 * Dispose all operations in the receiver.
-	 */
-	public void dispose() {
-		for (int i = 0; i < children.size(); i++) {
-			((IUndoableOperation) (children.get(i))).dispose();
-		}
-		if (triggeringOperation != null) {
-			triggeringOperation.dispose();
-		}
-	}
-
-	/*
-	 * Recompute contexts in light of some change in the children
-	 */
-	private void recomputeContexts() {
-		ArrayList allContexts = new ArrayList();
-		if (triggeringOperation != null) {
-			IUndoContext[] contexts = triggeringOperation.getContexts();
-			for (int i = 0; i < contexts.length; i++) {
-				allContexts.add(contexts[i]);
-			}
-		}
-		for (int i = 0; i < children.size(); i++) {
-			IUndoContext[] contexts = ((IUndoableOperation) children.get(i))
-					.getContexts();
-			for (int j = 0; j < contexts.length; j++) {
-				if (!allContexts.contains(contexts[j])) {
-					allContexts.add(contexts[j]);
-				}
-			}
-		}
-		contexts = allContexts;
-
-	}
-
-	/*
-	 * Remove all non-triggering children
-	 */
-	private void removeAllChildren() {
-		IUndoableOperation[] nonTriggers = (IUndoableOperation[]) children
-				.toArray(new IUndoableOperation[children.size()]);
-		for (int i = 0; i < nonTriggers.length; i++) {
-			children.remove(nonTriggers[i]);
-			nonTriggers[i].dispose();
-		}
-	}
-
-	/**
-	 * Return the operation that triggered the other operations in this
-	 * composite.
-	 * 
-	 * @return the IUndoableOperation that triggered the other children.
-	 */
-	public IUndoableOperation getTriggeringOperation() {
-		return triggeringOperation;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedModelOperation#getAffectedObjects()
-	 */
-	public Object[] getAffectedObjects() {
-		if (triggeringOperation instanceof IAdvancedUndoableOperation) {
-			return ((IAdvancedUndoableOperation) triggeringOperation)
-					.getAffectedObjects();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedModelOperation#aboutToNotify(org.eclipse.core.commands.operations.OperationHistoryEvent)
-	 */
-	public void aboutToNotify(OperationHistoryEvent event) {
-		if (triggeringOperation instanceof IAdvancedUndoableOperation) {
-			((IAdvancedUndoableOperation) triggeringOperation)
-					.aboutToNotify(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeUndoableStatus(IProgressMonitor monitor)
-			throws ExecutionException {
-		if (triggeringOperation instanceof IAdvancedUndoableOperation) {
-			try {
-				return ((IAdvancedUndoableOperation) triggeringOperation)
-						.computeUndoableStatus(monitor);
-			} catch (OperationCanceledException e) {
-				return Status.CANCEL_STATUS;
-			}
-		}
-		return Status.OK_STATUS;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#computeRedoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeRedoableStatus(IProgressMonitor monitor)
-			throws ExecutionException {
-		if (triggeringOperation instanceof IAdvancedUndoableOperation) {
-			try {
-				return ((IAdvancedUndoableOperation) triggeringOperation)
-						.computeRedoableStatus(monitor);
-			} catch (OperationCanceledException e) {
-				return Status.CANCEL_STATUS;
-			}
-		}
-		return Status.OK_STATUS;
-
-	}
-
-	/**
-	 * Replace the undo context of the receiver with the provided replacement
-	 * undo context. In the case of triggered operations, all contained
-	 * operations are checked and any occurrence of the original context is
-	 * replaced with the new undo context.
-	 * <p>
-	 * This message has no effect if the original undo context is not present in
-	 * the receiver.
-	 * 
-	 * @param original
-	 *            the undo context which is to be replaced
-	 * @param replacement
-	 *            the undo context which is replacing the original
-	 * @since 3.2
-	 */
-	public void replaceContext(IUndoContext original, IUndoContext replacement) {
-
-		// first check the triggering operation
-		if (triggeringOperation != null
-				&& triggeringOperation.hasContext(original)) {
-			if (triggeringOperation instanceof IContextReplacingOperation) {
-				((IContextReplacingOperation) triggeringOperation)
-						.replaceContext(original, replacement);
-			} else {
-				triggeringOperation.removeContext(original);
-				triggeringOperation.addContext(replacement);
-			}
-		}
-		// Now check all the children
-		for (int i = 0; i < children.size(); i++) {
-			IUndoableOperation child = (IUndoableOperation) children.get(i);
-			if (child.hasContext(original)) {
-				if (child instanceof IContextReplacingOperation) {
-					((IContextReplacingOperation) child).replaceContext(
-							original, replacement);
-				} else {
-					child.removeContext(original);
-					child.addContext(replacement);
-				}
-			}
-		}
-		recomputeContexts();
-	}
-
-	/**
-	 * Add the specified context to the operation. Overridden in
-	 * TriggeredOperations to add the specified undo context to the triggering
-	 * operation.
-	 * 
-	 * @param context
-	 *            the context to be added
-	 * 
-	 * @since 3.2
-	 */
-	public void addContext(IUndoContext context) {
-		if (triggeringOperation != null) {
-			triggeringOperation.addContext(context);
-			recomputeContexts();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/UndoContext.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/UndoContext.java
deleted file mode 100644
index d0d5bae..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/UndoContext.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-/**
- * <p>
- * A simple, lightweight undo context that can be used to tag any operation. It
- * does not provided a specialized label. This class may be instantiated by
- * clients. This class may also be subclassed.
- * </p>
- * 
- * @since 3.1
- */
-public class UndoContext implements IUndoContext {
-
-	/**
-	 * <p>
-	 * Get the label that describes the undo context. The default implementation
-	 * returns the empty String. Subclasses may override.
-	 * </p>
-	 * 
-	 * @return the label for the context.
-	 */
-	public String getLabel() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * <p>
-	 * Return whether the specified context is considered a match for the
-	 * receiving context. When a context matches another context, operations
-	 * that have the context are considered to also have the matching context.
-	 * The default implementation checks whether the supplied context is
-	 * identical to this context. Subclasses may override.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be checked against the receiving context.
-	 * 
-	 * @return <code>true</code> if the receiving context can be considered a
-	 *         match for the specified context, and <code>false</code> if it
-	 *         cannot.
-	 */
-	public boolean matches(IUndoContext context) {
-		return context == this;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/package.html b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/package.html
deleted file mode 100644
index 184442f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/package.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Classes for the creation of undoable operations which can be added to an operations
-history and later be undone and redone.
-<h2>
-Package Specification</h2>
-An <b>undoable operation</b> is a unit of work that can be executed, undone, and redone.
-Operations can be added to an <b>operation history</b> so that they can later be
-undone and redone according to the undo model for an application.  Operations may be 
-assigned one or more <b>undo contexts</b> which can be used to filter the available 
-operations for undo or redo in the operation history.  Clients may choose to provide
-undo and redo function for all operations in a history, or only for a particular
-undo context in that history.  Operation histories may be configured with an 
-<b>operation approver</b> so that applications can enforce any desired undo model, 
-such as strict linear (LIFO) undo.  This package provides the definition and a 
-basic implementation for operations, undo contexts, histories, and operation
-approvers.
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/package.html b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/package.html
deleted file mode 100644
index 14dabf4..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/package.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Package-level Javadoc</title>
-<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
-	type="text/css">
-</head>
-<body style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0)">
-Application programming interfaces for commands and handlers. 
-<h2>Package Specification</h2>
-<p>
-This package provides API and implementation classes to define abstract
-pieces of functionality.  These pieces of functionality are intended to
-provide a common way for plug-ins and the user interface to communicate
-potential behaviour.
-</p>
-<p>
-This package is designed so that its elements can be public and dynamic.  That
-is, elements in this package can appear and disappear over the life of the
-application.
-</p>
-<h3>Command</h3>
-<p>
-A command is an abstract representation for some semantic behaviour.  For
-example, there might be a "copy" command.  How this command actually
-behaves might be dependent on what state your application is in.  It is not
-the actual implementation of that behaviour, and it is not the visual
-representation of that behaviour.
-</p>
-<p>
-Commands are managed by an instance of <code>CommandManager</code>.  In fact, a
-command cannot be constructed directly.  Commands are constructed using the
-method <code>CommandManager.getCommand(String)</code>.  This ensures that there
-is only ever one command with a given identifier ever associated with a command.  
-manager.
-</p>
-<p>
-When a command is first constructed, it is undefined.  An undefined command is
-one that is carrying no information except for an id.  Attempts to interact
-with a command that is undefined will result in a 
-<code>NotDefinedException</code>.  Through this mechanism, it is possible for
-clients to hold references to commands, and still have those commands
-"disappear" (i.e., become undefined).  This is particularly useful in a system
-built around dynamic components (e.g., plug-ins).
-<p>
-Commands can be grouped into categories.  These categories are arbitrary
-groupings, and have no defined behaviour.  These categories might be used in a
-user interface for breaking up a large list of commands into semantically
-similar commands -- making the list easier to navigate.
-</p>
-<p>
-It is also possible to attach listeners to both commands and command managers.
-A listener on a command manager will be notified if the list of defined
-commands or categories changes.
-</p>
-<h4>Examples</h4>
-<blockquote><pre><code>
-	CommandManager manager = new CommandManager();
-	Category category = manager.getCategory("categoryId");
-	category.define("name", "description");
-	Command command = manager.getCommand("commandId");
-	command.define("name", "description", category);
-</code></pre></blockquote>
-<p>This example shows how to create a command from scratch -- with no existing
-manager or categories.</p>
-<blockquote><pre><code>
-	command.undefine();
-	command = null;
-	category.undefine();
-	category = null;
-</code></pre></blockquote>
-<p>If you wish to get rid of the command, then you simply undefine it.  This
-will send notification to the appropriate listeners, and future attempts to
-access it will fail.  If you are the only one holding on to the command, then
-it will be garbage collected.  However, if other people still have a reference
-to the command, then the stub will remain until they respond to the change.</p>
-<blockquote><pre><code>
-	String name;
-	try {
-		name = command.getName();
-	} catch (NotDefinedException e) {
-		// Clean-up my reference to the command.
-		command = null;
-		return;
-	}
-</code></pre></blockquote>
-<p>This shows one way of dealing with commands.  Instead of listening for
-changes to the command, you can simply listen for the exceptions to be thrown.
-When a <code>NotDefinedException</code> is thrown, you can clean up your own
-code.  How you clean up is application dependent.  In this case, the reference
-is cleared and we return from the method.</p>
-<blockquote><pre><code>
-	try {
-		String name = command.getName();
-		
-		// Do all your work in the block.
-		
-	} catch (NotDefinedException e) {
-		// Ignore, or possibly throw an error
-	}
-	
-	...
-	
-	public commandChanged(CommandEvent e) {
-		if (e.hasDefinedChanged()) {
-			command.removeListener(this);
-			command = null;
-		}
-	}
-</code></pre></blockquote>
-<p>Another way is to attach a listener, and then simply ignore the exceptions.
-When the command becomes undefined, you will be notified.  This gives your the
-opportunity to unhook your listener and release your reference.</p>
-
-<h3>Handler</h3>
-<p>
-A handler is the behaviour of a command at a particular point in time.  This is
-the piece that will actually interact with your application model.  For every
-command, there can be zero or more possible handlers.  However, at any one
-time, there is either one handler (i.e., handled) or no handler (i.e.,
-unhandled).
-</p>
-<p>
-Handlers must implement <code>IHandler</code>.  However, there is a convenient
-abstract class, <code>AbstractHandler</code> which provides default behaviour
-for some of the methods in the interface.  It is recommended that developers
-subclass <code>AbstractHandler</code>.
-</p>
-<p>
-Beside functional behaviour, a handler carries with it a map of attribute
-values.  This is a completely optionaly way of carrying extra data.  In the
-case of the <code>AbstractHandler</code>, this map is empty.  Some attributes
-have well defined meanings.  These attributes are defined in
-<code>IHandlerAttributes</code>.
-</p>
-<p>
-Like commands, handlers can have listeners attached to them.  Listeners will be
-notified when the attributes of the handler change.
-</p>
-<p>
-When a handler executes, it is passed an event object
-(<code>ExecutionEvent</code>) that carries with it some pieces of information.
-First of all, it contains the parameters for execution.  Parameters are simple
-key-value pairs that are intended to modify the execution in some way.  The
-event also carries with it a collection of contexts that were active at the
-time of execution.  The event also carries two untyped objects: the triggering
-event and the current application state.  In the case of a graphical tool, the
-triggering event is likely to be the underlying widget toolkit event.  The 
-application state might contain information like widget focus information.  In
-your own application, feel free to use whichever of these event attributes that
-fit your application.
-</p>
-<h4>Examples</h4>
-<blockquote><pre><code>
-	IHandler myHandler = createHandler();
-	command.setHandler(myHandler);
-	
-	ExecutionEvent e = new ExecutionEvent(parameters,contexts,trigger,state);
-	try {
-		command.execute(e);
-	} catch (ExecutionException ex) {
-		// Notify the user, log the problem, etc.
-	}
-</code></pre></blockquote>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java
deleted file mode 100644
index 353f877..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.util;
-
-/**
- * <p>
- * A utility class for printing tracing output to the console.
- * </p>
- * <p>
- * Clients must not extend or instantiate this class.
- * </p>
- * 
- * @since 3.2
- */
-public final class Tracing {
-
-	/**
-	 * The separator to place between the component and the message.
-	 */
-	public static final String SEPARATOR = " >>> "; //$NON-NLS-1$
-
-	/**
-	 * <p>
-	 * Prints a tracing message to standard out. The message is prefixed by a
-	 * component identifier and some separator. See the example below.
-	 * </p>
-	 * 
-	 * <pre>
-	 *        BINDINGS &gt;&gt; There are 4 deletion markers
-	 * </pre>
-	 * 
-	 * @param component
-	 *            The component for which this tracing applies; may be
-	 *            <code>null</code>
-	 * @param message
-	 *            The message to print to standard out; may be <code>null</code>.
-	 */
-	public static final void printTrace(final String component,
-			final String message) {
-		StringBuffer buffer = new StringBuffer();
-		if (component != null) {
-			buffer.append(component);
-		}
-		if ((component != null) && (message != null)) {
-			buffer.append(SEPARATOR);
-		}
-		if (message != null) {
-			buffer.append(message);
-		}
-		System.out.println(buffer.toString());
-	}
-
-	/**
-	 * This class is not intended to be instantiated.
-	 */
-	private Tracing() {
-		// Do nothing.
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/operations/GlobalUndoContext.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/operations/GlobalUndoContext.java
deleted file mode 100644
index daae4b9..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/operations/GlobalUndoContext.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.commands.operations;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-
-/**
- * <p>
- * An operation context that matches to any context.  It can be used to 
- * get an unfiltered (global) history.
- * </p>
- * 
- * @since 3.1
- */
-public class GlobalUndoContext implements IUndoContext {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoContext#getLabel()
-	 */
-	public String getLabel() {
-		return "Global Undo Context"; //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoContext#matches(IUndoContext context)
-	 */
-	public boolean matches(IUndoContext context) {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/util/Util.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/util/Util.java
deleted file mode 100644
index 3d5d505..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/util/Util.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.commands.util;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.SortedSet;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-/**
- * A class providing utility functions for the commands plug-in.
- * 
- * @since 3.1
- */
-public final class Util {
-
-    /**
-     * A shared, unmodifiable, empty, sorted map. This value is guaranteed to
-     * always be the same.
-     */
-    public final static SortedMap EMPTY_SORTED_MAP = Collections
-            .unmodifiableSortedMap(new TreeMap());
-
-    /**
-     * A shared, unmodifiable, empty, sorted set. This value is guaranteed to
-     * always be the same.
-     */
-    public final static SortedSet EMPTY_SORTED_SET = Collections
-            .unmodifiableSortedSet(new TreeSet());
-
-    /**
-     * A shared, zero-length string -- for avoiding non-externalized string
-     * tags. This value is guaranteed to always be the same.
-     */
-    public final static String ZERO_LENGTH_STRING = ""; //$NON-NLS-1$
-
-    /**
-     * Asserts the the given object is an instance of the given class --
-     * optionally allowing the object to be <code>null</code>.
-     * 
-     * @param object
-     *            The object for which the type should be checked.
-     * @param c
-     *            The class that the object must be; fails if the class is
-     *            <code>null</code>.
-     * @param allowNull
-     *            Whether the object being <code>null</code> will not cause a
-     *            failure.
-     */
-    public static final void assertInstance(final Object object, final Class c,
-            final boolean allowNull) {
-        if (object == null && allowNull) {
-			return;
-		}
-
-        if (object == null || c == null) {
-			throw new NullPointerException();
-		} else if (!c.isInstance(object)) {
-			throw new IllegalArgumentException();
-		}
-    }
-
-    /**
-     * Compares two boolean values. <code>false</code> is considered to be
-     * less than <code>true</code>.
-     * 
-     * @param left
-     *            The left value to compare.
-     * @param right
-     *            The right value to compare.
-     * @return <code>-1</code> if <code>left</code> is <code>false</code>
-     *         and <code>right</code> is <code>true</code>;<code>0</code>
-     *         if they are equal; <code>1</code> if <code>left</code> is
-     *         <code>true</code> and <code>right</code> is
-     *         <code>false</code>
-     */
-    public static final int compare(final boolean left, final boolean right) {
-        return left == false ? (right == true ? -1 : 0) : (right == true ? 0
-                : 1);
-    }
-
-    /**
-     * Compares two comparable objects, but with protection against
-     * <code>null</code>.
-     * 
-     * @param left
-     *            The left value to compare; may be <code>null</code>.
-     * @param right
-     *            The right value to compare; may be <code>null</code>.
-     * @return <code>-1</code> if <code>left</code> is <code>null</code>
-     *         and <code>right</code> is not <code>null</code>;
-     *         <code>0</code> if they are both <code>null</code>;
-     *         <code>1</code> if <code>left</code> is not <code>null</code>
-     *         and <code>right</code> is <code>null</code>. Otherwise, the
-     *         result of <code>left.compareTo(right)</code>.
-     */
-    public static final int compare(final Comparable left,
-            final Comparable right) {
-        if (left == null && right == null) {
-			return 0;
-		} else if (left == null) {
-			return -1;
-		} else if (right == null) {
-			return 1;
-		} else {
-			return left.compareTo(right);
-		}
-    }
-
-    /**
-     * Compares two integer values. This method fails if the distance between
-     * <code>left</code> and <code>right</code> is greater than
-     * <code>Integer.MAX_VALUE</code>.
-     * 
-     * @param left
-     *            The left value to compare.
-     * @param right
-     *            The right value to compare.
-     * @return <code>left - right</code>
-     */
-    public static final int compare(final int left, final int right) {
-        return left - right;
-    }
-
-    /**
-     * Compares two objects that are not otherwise comparable. If neither object
-     * is <code>null</code>, then the string representation of each object is
-     * used.
-     * 
-     * @param left
-     *            The left value to compare. The string representation of this
-     *            value must not be <code>null</code>.
-     * @param right
-     *            The right value to compare. The string representation of this
-     *            value must not be <code>null</code>.
-     * @return <code>-1</code> if <code>left</code> is <code>null</code>
-     *         and <code>right</code> is not <code>null</code>;
-     *         <code>0</code> if they are both <code>null</code>;
-     *         <code>1</code> if <code>left</code> is not <code>null</code>
-     *         and <code>right</code> is <code>null</code>. Otherwise, the
-     *         result of
-     *         <code>left.toString().compareTo(right.toString())</code>.
-     */
-    public static final int compare(final Object left, final Object right) {
-        if (left == null && right == null) {
-			return 0;
-		} else if (left == null) {
-			return -1;
-		} else if (right == null) {
-			return 1;
-		} else {
-			return left.toString().compareTo(right.toString());
-		}
-    }
-
-    /**
-     * Decides whether two booleans are equal.
-     * 
-     * @param left
-     *            The first boolean to compare; may be <code>null</code>.
-     * @param right
-     *            The second boolean to compare; may be <code>null</code>.
-     * @return <code>true</code> if the booleans are equal; <code>false</code>
-     *         otherwise.
-     */
-    public static final boolean equals(final boolean left, final boolean right) {
-        return left == right;
-    }
-
-    /**
-     * Decides whether two objects are equal -- defending against
-     * <code>null</code>.
-     * 
-     * @param left
-     *            The first object to compare; may be <code>null</code>.
-     * @param right
-     *            The second object to compare; may be <code>null</code>.
-     * @return <code>true</code> if the objects are equals; <code>false</code>
-     *         otherwise.
-     */
-    public static final boolean equals(final Object left, final Object right) {
-        return left == null ? right == null : ((right != null) && left
-                .equals(right));
-    }
-
-	/**
-	 * Tests whether two arrays of objects are equal to each other. The arrays
-	 * must not be <code>null</code>, but their elements may be
-	 * <code>null</code>.
-	 * 
-	 * @param leftArray
-	 *            The left array to compare; may be <code>null</code>, and
-	 *            may be empty and may contain <code>null</code> elements.
-	 * @param rightArray
-	 *            The right array to compare; may be <code>null</code>, and
-	 *            may be empty and may contain <code>null</code> elements.
-	 * @return <code>true</code> if the arrays are equal length and the
-	 *         elements at the same position are equal; <code>false</code>
-	 *         otherwise.
-	 */
-	public static final boolean equals(final Object[] leftArray,
-			final Object[] rightArray) {
-		if (leftArray == null) {
-			return (rightArray == null);
-		} else if (rightArray == null) {
-			return false;
-		}
-
-		if (leftArray.length != rightArray.length) {
-			return false;
-		}
-
-		for (int i = 0; i < leftArray.length; i++) {
-			final Object left = leftArray[i];
-			final Object right = rightArray[i];
-			final boolean equal = (left == null) ? (right == null) : (left
-					.equals(right));
-			if (!equal) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-    /**
-     * Computes the hash code for an integer.
-     * 
-     * @param i
-     *            The integer for which a hash code should be computed.
-     * @return <code>i</code>.
-     */
-    public static final int hashCode(final int i) {
-        return i;
-    }
-
-    /**
-     * Computes the hash code for an object, but with defense against
-     * <code>null</code>.
-     * 
-     * @param object
-     *            The object for which a hash code is needed; may be
-     *            <code>null</code>.
-     * @return The hash code for <code>object</code>; or <code>0</code> if
-     *         <code>object</code> is <code>null</code>.
-     */
-    public static final int hashCode(final Object object) {
-        return object != null ? object.hashCode() : 0;
-    }
-
-    /**
-     * Makes a type-safe copy of the given map. This method should be used when
-     * a map is crossing an API boundary (i.e., from a hostile plug-in into
-     * internal code, or vice versa).
-     * 
-     * @param map
-     *            The map which should be copied; must not be <code>null</code>.
-     * @param keyClass
-     *            The class that all the keys must be; must not be
-     *            <code>null</code>.
-     * @param valueClass
-     *            The class that all the values must be; must not be
-     *            <code>null</code>.
-     * @param allowNullKeys
-     *            Whether <code>null</code> keys should be allowed.
-     * @param allowNullValues
-     *            Whether <code>null</code> values should be allowed.
-     * @return A copy of the map; may be empty, but never <code>null</code>.
-     */
-    public static final Map safeCopy(final Map map, final Class keyClass,
-            final Class valueClass, final boolean allowNullKeys,
-            final boolean allowNullValues) {
-        if (map == null || keyClass == null || valueClass == null) {
-			throw new NullPointerException();
-		}
-
-        final Map copy = Collections.unmodifiableMap(new HashMap(map));
-        final Iterator iterator = copy.entrySet().iterator();
-
-        while (iterator.hasNext()) {
-            final Map.Entry entry = (Map.Entry) iterator.next();
-            assertInstance(entry.getKey(), keyClass, allowNullKeys);
-            assertInstance(entry.getValue(), valueClass, allowNullValues);
-        }
-
-        return map;
-    }
-
-    /**
-     * Makes a type-safe copy of the given set. This method should be used when
-     * a set is crossing an API boundary (i.e., from a hostile plug-in into
-     * internal code, or vice versa).
-     * 
-     * @param set
-     *            The set which should be copied; must not be <code>null</code>.
-     * @param c
-     *            The class that all the values must be; must not be
-     *            <code>null</code>.
-     * @return A copy of the set; may be empty, but never <code>null</code>.
-     *         None of its element will be <code>null</code>.
-     */
-    public static final Set safeCopy(final Set set, final Class c) {
-        return safeCopy(set, c, false);
-    }
-
-    /**
-     * Makes a type-safe copy of the given set. This method should be used when
-     * a set is crossing an API boundary (i.e., from a hostile plug-in into
-     * internal code, or vice versa).
-     * 
-     * @param set
-     *            The set which should be copied; must not be <code>null</code>.
-     * @param c
-     *            The class that all the values must be; must not be
-     *            <code>null</code>.
-     * @param allowNullElements
-     *            Whether null values should be allowed.
-     * @return A copy of the set; may be empty, but never <code>null</code>.
-     */
-    public static final Set safeCopy(final Set set, final Class c,
-            final boolean allowNullElements) {
-        if (set == null || c == null) {
-			throw new NullPointerException();
-		}
-
-        final Set copy = Collections.unmodifiableSet(new HashSet(set));
-        final Iterator iterator = copy.iterator();
-
-        while (iterator.hasNext()) {
-			assertInstance(iterator.next(), c, allowNullElements);
-		}
-
-        return set;
-    }
-
-    /**
-     * The utility class is meant to just provide static members.
-     */
-    private Util() {
-        // Should not be called.
-    }
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/.classpath b/bundles/org.eclipse.core.databinding.beans/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.core.databinding.beans/.cvsignore b/bundles/org.eclipse.core.databinding.beans/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.core.databinding.beans/.project b/bundles/org.eclipse.core.databinding.beans/.project
deleted file mode 100644
index 85f5bb3..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.databinding.beans</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a274426..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-#Mon Dec 03 13:50:43 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=80
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 7550681..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,116 +0,0 @@
-#Mon Dec 03 13:50:43 EST 2007
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=false
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.3\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 4ea08b3..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Mon Dec 03 13:51:14 EST 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.core.databinding.beans/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.databinding.beans/META-INF/MANIFEST.MF
deleted file mode 100644
index 6601ca6..0000000
--- a/bundles/org.eclipse.core.databinding.beans/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.core.databinding.beans
-Bundle-Version: 1.1.1.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.core.databinding.beans,
- org.eclipse.core.internal.databinding.beans;x-internal:=true
-Require-Bundle: org.eclipse.core.databinding;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.equinox.common;bundle-version="[3.2.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.core.databinding.beans/about.html b/bundles/org.eclipse.core.databinding.beans/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.core.databinding.beans/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding.beans/build.properties b/bundles/org.eclipse.core.databinding.beans/build.properties
deleted file mode 100644
index 6f0a513..0000000
--- a/bundles/org.eclipse.core.databinding.beans/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.databinding.jar = bin/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.core.databinding.beans/plugin.properties b/bundles/org.eclipse.core.databinding.beans/plugin.properties
deleted file mode 100644
index 083e360..0000000
--- a/bundles/org.eclipse.core.databinding.beans/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = JFace Data Binding for JavaBeans
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeansObservables.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeansObservables.java
deleted file mode 100644
index bd05b9e..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeansObservables.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164268, 171616
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 221704
- *     Thomas Kratz - bug 213787
- *******************************************************************************/
-package org.eclipse.core.databinding.beans;
-
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.BindingException;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.beans.BeanObservableListDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableMapDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableSetDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableValueDecorator;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableList;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableMap;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableSet;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableValue;
-import org.eclipse.core.internal.databinding.beans.JavaBeanPropertyObservableMap;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A factory for creating observable objects of Java objects that conform to the
- * <a href="http://java.sun.com/products/javabeans/docs/spec.html">JavaBean
- * specification</a> for bound properties.
- * 
- * @since 1.1
- * 
- */
-final public class BeansObservables {
-
-	/**
-	 * 
-	 */
-	public static final boolean DEBUG = true;
-
-	/**
-	 * Returns an observable value in the default realm tracking the current
-	 * value of the named property of the given bean.
-	 * 
-	 * @param bean
-	 *            the object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable value tracking the current value of the named
-	 *         property of the given bean
-	 */
-	public static IObservableValue observeValue(Object bean, String propertyName) {
-		return observeValue(Realm.getDefault(), bean, propertyName);
-	}
-
-	/**
-	 * Returns an observable value in the given realm tracking the current value
-	 * of the named property of the given bean.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable value tracking the current value of the named
-	 *         property of the given bean
-	 */
-	public static IObservableValue observeValue(Realm realm, Object bean,
-			String propertyName) {
-		PropertyDescriptor descriptor = getPropertyDescriptor(bean.getClass(),
-				propertyName);
-		return new JavaBeanObservableValue(realm, bean, descriptor);
-	}
-
-	/**
-	 * Returns an observable map in the default realm tracking the current
-	 * values of the named property for the beans in the given set.
-	 * 
-	 * @param domain
-	 *            the set of bean objects
-	 * @param beanClass
-	 *            the common base type of bean objects that may be in the set
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable map tracking the current values of the named
-	 *         property for the beans in the given domain set
-	 */
-	public static IObservableMap observeMap(IObservableSet domain,
-			Class beanClass, String propertyName) {
-		PropertyDescriptor descriptor = getPropertyDescriptor(beanClass,
-				propertyName);
-		return new JavaBeanObservableMap(domain, descriptor);
-	}
-
-	/**
-	 * Returns an observable map in the given realm tracking the map-typed named
-	 * property of the given bean object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given bean object
-	 * @since 1.1
-	 */
-	public static IObservableMap observeMap(Realm realm, Object bean,
-			String propertyName) {
-		PropertyDescriptor descriptor = getPropertyDescriptor(bean.getClass(),
-				propertyName);
-		return new JavaBeanPropertyObservableMap(realm, bean, descriptor);
-	}
-
-	/*package*/ static PropertyDescriptor getPropertyDescriptor(Class beanClass,
-			String propertyName) {
-		BeanInfo beanInfo;
-		try {
-			beanInfo = Introspector.getBeanInfo(beanClass);
-		} catch (IntrospectionException e) {
-			// cannot introspect, give up
-			return null;
-		}
-		PropertyDescriptor[] propertyDescriptors = beanInfo
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			PropertyDescriptor descriptor = propertyDescriptors[i];
-			if (descriptor.getName().equals(propertyName)) {
-				return descriptor;
-			}
-		}
-		throw new BindingException(
-				"Could not find property with name " + propertyName + " in class " + beanClass); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Returns an array of observable maps in the default realm tracking the
-	 * current values of the named propertys for the beans in the given set.
-	 * 
-	 * @param domain
-	 *            the set of objects
-	 * @param beanClass
-	 *            the common base type of objects that may be in the set
-	 * @param propertyNames
-	 *            the array of property names
-	 * @return an array of observable maps tracking the current values of the
-	 *         named propertys for the beans in the given domain set
-	 */
-	public static IObservableMap[] observeMaps(IObservableSet domain,
-			Class beanClass, String[] propertyNames) {
-		IObservableMap[] result = new IObservableMap[propertyNames.length];
-		for (int i = 0; i < propertyNames.length; i++) {
-			result[i] = observeMap(domain, beanClass, propertyNames[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an observable list in the given realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the object
-	 * @param propertyName
-	 *            the name of the collection-typed property
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 * @see #observeList(Realm, Object, String, Class)
-	 */
-	public static IObservableList observeList(Realm realm, Object bean,
-			String propertyName) {
-		return observeList(realm, bean, propertyName, null);
-	}
-
-	/**
-	 * Returns an observable list in the given realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable. When an item is added or removed the setter is invoked
-	 * for the list on the parent bean to provide notification to other
-	 * listeners via <code>PropertyChangeEvents</code>. This is done to
-	 * provide the same behavior as is expected from arrays as specified in the
-	 * bean spec in section 7.2.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the list. If <code>null</code> and
-	 *            the property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 */
-	public static IObservableList observeList(Realm realm, Object bean,
-			String propertyName, Class elementType) {
-		PropertyDescriptor propertyDescriptor = getPropertyDescriptor(bean
-				.getClass(), propertyName);
-		elementType = getCollectionElementType(elementType, propertyDescriptor);
-
-		return new JavaBeanObservableList(realm, bean, propertyDescriptor,
-				elementType);
-	}
-
-	/**
-	 * Returns an observable set in the given realm tracking the
-	 * collection-typed named property of the given bean object
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set tracking the collection-typed named property of
-	 *         the given bean object
-	 */
-	public static IObservableSet observeSet(Realm realm, Object bean,
-			String propertyName) {
-		return observeSet(realm, bean, propertyName, null);
-	}
-
-	/**
-	 * Returns a factory for creating obervable values tracking the given
-	 * property of a particular bean object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable value factory
-	 */
-	public static IObservableFactory valueFactory(final Realm realm,
-			final String propertyName) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeValue(realm, target, propertyName);
-			}
-		};
-	}
-
-	/**
-	 * Returns a factory for creating obervable lists tracking the given
-	 * property of a particular bean object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 * @return an observable list factory
-	 */
-	public static IObservableFactory listFactory(final Realm realm,
-			final String propertyName, final Class elementType) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeList(realm, target, propertyName, elementType);
-			}
-		};
-	}
-
-	/**
-	 * Returns a factory for creating obervable sets tracking the given property
-	 * of a particular bean object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set factory
-	 */
-	public static IObservableFactory setFactory(final Realm realm,
-			final String propertyName) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeSet(realm, target, propertyName);
-			}
-		};
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(realm,
-	 propertyName), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 */
-	public static IObservableValue observeDetailValue(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-
-		IObservableValue value = MasterDetailObservables.detailValue(master,
-				valueFactory(realm, propertyName), propertyType);
-		BeanObservableValueDecorator decorator = new BeanObservableValueDecorator(
-				value, master, getValueTypePropertyDescriptor(master,
-						propertyName));
-
-		return decorator;
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(realm,
-	 * propertyName), propertyType)</code>.
-	 * This method returns an {@link IBeanObservable} with a
-	 * {@link PropertyDescriptor} based on the given master type and property
-	 * name.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param master
-	 *            the master observable value, for example tracking the
-	 *            selection in a list
-	 * @param masterType
-	 *            the type of the master observable value
-	 * @param propertyName
-	 *            the property name
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.1
-	 */
-	public static IObservableValue observeDetailValue(Realm realm,
-			IObservableValue master, Class masterType, String propertyName, Class propertyType) {
-		Assert.isNotNull(masterType, "masterType cannot be null"); //$NON-NLS-1$
-		IObservableValue value = MasterDetailObservables.detailValue(master,
-				valueFactory(realm, propertyName), propertyType);
-		BeanObservableValueDecorator decorator = new BeanObservableValueDecorator(
-				value, master, getPropertyDescriptor(masterType,
-						propertyName));
-
-		return decorator;
-	}
-	
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailList(master, listFactory(realm,
-	 propertyName, propertyType), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable list that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 */
-	public static IObservableList observeDetailList(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-		IObservableList observableList = MasterDetailObservables.detailList(
-				master, listFactory(realm, propertyName, propertyType),
-				propertyType);
-		BeanObservableListDecorator decorator = new BeanObservableListDecorator(
-				observableList, master, getValueTypePropertyDescriptor(master,
-						propertyName));
-
-		return decorator;
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailSet(master, setFactory(realm,
-	 propertyName), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable set that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 */
-	public static IObservableSet observeDetailSet(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-
-		IObservableSet observableSet = MasterDetailObservables.detailSet(
-				master, setFactory(realm, propertyName, propertyType),
-				propertyType);
-		BeanObservableSetDecorator decorator = new BeanObservableSetDecorator(
-				observableSet, master, getValueTypePropertyDescriptor(master,
-						propertyName));
-
-		return decorator;
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailMap(master, mapFactory(realm, propertyName))</code>
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param master
-	 * @param propertyName
-	 * @return an observable map that tracks the map-type named property for the
-	 *         current value of the master observable value.
-	 * @since 1.1
-	 */
-	public static IObservableMap observeDetailMap(Realm realm,
-			IObservableValue master, String propertyName) {
-		IObservableMap observableMap = MasterDetailObservables.detailMap(
-				master, mapPropertyFactory(realm, propertyName));
-		BeanObservableMapDecorator decorator = new BeanObservableMapDecorator(
-				observableMap, master, getValueTypePropertyDescriptor(master,
-						propertyName));
-		return decorator;
-	}
-
-	/**
-	 * @param realm
-	 * @param bean
-	 * @param propertyName
-	 * @param elementType
-	 *            can be <code>null</code>
-	 * @return an observable set that tracks the current value of the named
-	 *         property for given bean object
-	 */
-	public static IObservableSet observeSet(Realm realm, Object bean,
-			String propertyName, Class elementType) {
-		PropertyDescriptor propertyDescriptor = getPropertyDescriptor(bean
-				.getClass(), propertyName);
-		elementType = getCollectionElementType(elementType, propertyDescriptor);
-
-		return new JavaBeanObservableSet(realm, bean, propertyDescriptor,
-				elementType);
-	}
-
-	/**
-	 * @param realm
-	 * @param propertyName
-	 * @param elementType
-	 *            can be <code>null</code>
-	 * @return an observable set factory for creating observable sets
-	 */
-	public static IObservableFactory setFactory(final Realm realm,
-			final String propertyName, final Class elementType) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeSet(realm, target, propertyName, elementType);
-			}
-		};
-	}
-
-	/**
-	 * Returns a factory for creating an observable map. The factory, when
-	 * provided with an {@link IObservableSet}, will create an
-	 * {@link IObservableMap} in the same realm as the underlying set that
-	 * tracks the current values of the named property for the beans in the
-	 * given set.
-	 * 
-	 * @param beanClass
-	 *            the common base type of bean objects that may be in the set
-	 * @param propertyName
-	 *            the name of the property
-	 * @return a factory for creating {@link IObservableMap} objects
-	 *
-	 * @since 1.1
-	 */
-	public static IObservableFactory setToMapFactory(final Class beanClass, final String propertyName) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeMap((IObservableSet) target, beanClass, propertyName);
-			}
-		};
-	}
-	
-	/**
-	 * Returns a factory for creating an observable map. The factory, when
-	 * provided with a bean object, will create an {@link IObservableMap} in the
-	 * given realm that tracks the map-typed named property for the specified
-	 * bean.
-	 * 
-	 * @param realm
-	 *            the realm assigned to observables created by the returned
-	 *            factory.
-	 * @param propertyName
-	 *            the name of the property
-	 * @return a factory for creating {@link IObservableMap} objects.
-	 * @since 1.1
-	 */
-	public static IObservableFactory mapPropertyFactory(final Realm realm,
-			final String propertyName) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeMap(realm, target, propertyName);
-			}
-		};
-	}
-
-	/**
-	 * @param elementType
-	 *            can be <code>null</code>
-	 * @param propertyDescriptor
-	 * @return type of the items in a collection/array property
-	 */
-	/*package*/ static Class getCollectionElementType(Class elementType,
-			PropertyDescriptor propertyDescriptor) {
-		if (elementType == null) {
-			Class propertyType = propertyDescriptor.getPropertyType();
-			elementType = propertyType.isArray() ? propertyType
-					.getComponentType() : Object.class;
-		}
-
-		return elementType;
-	}
-
-	/**
-	 * @param observable
-	 * @param propertyName
-	 * @return property descriptor or <code>null</code>
-	 */
-	/* package*/ static PropertyDescriptor getValueTypePropertyDescriptor(
-			IObservableValue observable, String propertyName) {
-		return (observable.getValueType() != null) ? getPropertyDescriptor(
-				(Class) observable.getValueType(), propertyName) : null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanObservable.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanObservable.java
deleted file mode 100644
index c2545ef..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanObservable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Brad Reynolds - bug 147515
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.observable.IObserving;
-
-/**
- * Provides access to details of bean observables.
- * <p>
- * This interface is not meant to be implemented by clients.
- * </p>
- * 
- * @since 3.3
- */
-public interface IBeanObservable extends IObserving {
-	/**
-	 * @return property descriptor of the property being observed,
-	 *         <code>null</code> if the runtime time information was not
-	 *         provided on construction of the observable
-	 */
-	public PropertyDescriptor getPropertyDescriptor();
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.java
deleted file mode 100644
index cb50822..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.java
+++ /dev/null
@@ -1,433 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 221704
- *******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.beans.BeanObservableListDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableMapDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableSetDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableValueDecorator;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableList;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableMap;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableSet;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableValue;
-import org.eclipse.core.internal.databinding.beans.JavaBeanPropertyObservableMap;
-
-/**
- * A factory for creating observable objects for POJOs (plain old java objects)
- * that conform to idea of an object with getters and setters but does not
- * provide {@link PropertyChangeEvent property change events} on change. This
- * factory is identical to {@link BeansObservables} except for this fact.
- * 
- * @since 1.1
- */
-final public class PojoObservables {
-
-	/**
-	 * Returns an observable value in the default realm tracking the current
-	 * value of the named property of the given pojo.
-	 * 
-	 * @param pojo
-	 *            the object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable value tracking the current value of the named
-	 *         property of the given pojo
-	 */
-	public static IObservableValue observeValue(Object pojo, String propertyName) {
-		return observeValue(Realm.getDefault(), pojo, propertyName);
-	}
-
-	/**
-	 * Returns an observable value in the given realm tracking the current value
-	 * of the named property of the given pojo.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable value tracking the current value of the named
-	 *         property of the given pojo
-	 */
-	public static IObservableValue observeValue(Realm realm, Object pojo,
-			String propertyName) {
-
-		PropertyDescriptor descriptor = BeansObservables.getPropertyDescriptor(
-				pojo.getClass(), propertyName);
-		return new JavaBeanObservableValue(realm, pojo, descriptor, false);
-	}
-
-	/**
-	 * Returns an observable map in the default realm tracking the current
-	 * values of the named property for the pojos in the given set.
-	 * 
-	 * @param domain
-	 *            the set of pojo objects
-	 * @param pojoClass
-	 *            the common base type of pojo objects that may be in the set
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable map tracking the current values of the named
-	 *         property for the pojos in the given domain set
-	 */
-	public static IObservableMap observeMap(IObservableSet domain,
-			Class pojoClass, String propertyName) {
-		PropertyDescriptor descriptor = BeansObservables.getPropertyDescriptor(
-				pojoClass, propertyName);
-		return new JavaBeanObservableMap(domain, descriptor, false);
-	}
-
-	/**
-	 * Returns an array of observable maps in the default realm tracking the
-	 * current values of the named propertys for the pojos in the given set.
-	 * 
-	 * @param domain
-	 *            the set of objects
-	 * @param pojoClass
-	 *            the common base type of objects that may be in the set
-	 * @param propertyNames
-	 *            the array of property names
-	 * @return an array of observable maps tracking the current values of the
-	 *         named propertys for the pojos in the given domain set
-	 */
-	public static IObservableMap[] observeMaps(IObservableSet domain,
-			Class pojoClass, String[] propertyNames) {
-		IObservableMap[] result = new IObservableMap[propertyNames.length];
-		for (int i = 0; i < propertyNames.length; i++) {
-			result[i] = observeMap(domain, pojoClass, propertyNames[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an observable map in the given realm tracking the map-typed named
-	 * property of the given pojo object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given pojo object
-	 */
-	public static IObservableMap observeMap(Realm realm, Object pojo,
-			String propertyName) {
-		PropertyDescriptor descriptor = BeansObservables.getPropertyDescriptor(
-				pojo.getClass(), propertyName);
-		return new JavaBeanPropertyObservableMap(realm, pojo, descriptor, false);
-	}
-
-	/**
-	 * Returns an observable list in the given realm tracking the
-	 * collection-typed named property of the given pojo object. The returned
-	 * list is mutable.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the object
-	 * @param propertyName
-	 *            the name of the collection-typed property
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given pojo object
-	 * @see #observeList(Realm, Object, String, Class)
-	 */
-	public static IObservableList observeList(Realm realm, Object pojo,
-			String propertyName) {
-		return observeList(realm, pojo, propertyName, null);
-	}
-
-	/**
-	 * Returns an observable list in the given realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable. When an item is added or removed the setter is invoked
-	 * for the list on the parent bean to provide notification to other
-	 * listeners via <code>PropertyChangeEvents</code>. This is done to
-	 * provide the same behavior as is expected from arrays as specified in the
-	 * bean spec in section 7.2.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the list. If <code>null</code> and
-	 *            the property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 */
-	public static IObservableList observeList(Realm realm, Object pojo,
-			String propertyName, Class elementType) {
-		PropertyDescriptor propertyDescriptor = BeansObservables
-				.getPropertyDescriptor(pojo.getClass(), propertyName);
-		elementType = BeansObservables.getCollectionElementType(elementType,
-				propertyDescriptor);
-
-		return new JavaBeanObservableList(realm, pojo, propertyDescriptor,
-				elementType, false);
-	}
-
-	/**
-	 * Returns an observable set in the given realm tracking the
-	 * collection-typed named property of the given pojo object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set tracking the collection-typed named property of
-	 *         the given pojo object
-	 */
-	public static IObservableSet observeSet(Realm realm, Object pojo,
-			String propertyName) {
-		return observeSet(realm, pojo, propertyName, null);
-	}
-
-	/**
-	 * @param realm
-	 * @param pojo
-	 * @param propertyName
-	 * @param elementType
-	 *            can be <code>null</code>
-	 * @return an observable set that tracks the current value of the named
-	 *         property for given pojo object
-	 */
-	public static IObservableSet observeSet(Realm realm, Object pojo,
-			String propertyName, Class elementType) {
-		PropertyDescriptor propertyDescriptor = BeansObservables
-				.getPropertyDescriptor(pojo.getClass(), propertyName);
-		elementType = BeansObservables.getCollectionElementType(elementType,
-				propertyDescriptor);
-
-		return new JavaBeanObservableSet(realm, pojo, propertyDescriptor,
-				elementType, false);
-	}
-
-	/**
-	 * Returns a factory for creating obervable values tracking the given
-	 * property of a particular pojo object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable value factory
-	 */
-	public static IObservableFactory valueFactory(final Realm realm,
-			final String propertyName) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeValue(realm, target, propertyName);
-			}
-		};
-	}
-
-	/**
-	 * Returns a factory for creating obervable lists tracking the given
-	 * property of a particular pojo object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 * @return an observable list factory
-	 */
-	public static IObservableFactory listFactory(final Realm realm,
-			final String propertyName, final Class elementType) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeList(realm, target, propertyName, elementType);
-			}
-		};
-	}
-
-	/**
-	 * Returns a factory for creating obervable sets tracking the given property
-	 * of a particular pojo object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set factory
-	 */
-	public static IObservableFactory setFactory(final Realm realm,
-			final String propertyName) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeSet(realm, target, propertyName);
-			}
-		};
-	}
-
-	/**
-	 * @param realm
-	 * @param propertyName
-	 * @param elementType
-	 *            can be <code>null</code>
-	 * @return an observable set factory for creating observable sets
-	 */
-	public static IObservableFactory setFactory(final Realm realm,
-			final String propertyName, final Class elementType) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeSet(realm, target, propertyName, elementType);
-			}
-		};
-	}
-
-	/**
-	 * Returns a factory for creating an observable map. The factory, when
-	 * provided with a pojo object, will create an {@link IObservableMap} in the
-	 * given realm that tracks the map-typed named property for the specified
-	 * pojo.
-	 * 
-	 * @param realm
-	 *            the realm assigned to observables created by the returned
-	 *            factory.
-	 * @param propertyName
-	 *            the name of the property
-	 * @return a factory for creating {@link IObservableMap} objects.
-	 */
-	public static IObservableFactory mapPropertyFactory(final Realm realm,
-			final String propertyName) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeMap(realm, target, propertyName);
-			}
-		};
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(realm,
-	 propertyName), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 */
-	public static IObservableValue observeDetailValue(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-
-		IObservableValue value = MasterDetailObservables.detailValue(master,
-				valueFactory(realm, propertyName), propertyType);
-		BeanObservableValueDecorator decorator = new BeanObservableValueDecorator(
-				value, master, BeansObservables.getValueTypePropertyDescriptor(
-						master, propertyName));
-
-		return decorator;
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailList(master, listFactory(realm,
-	 propertyName, propertyType), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable list that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 */
-	public static IObservableList observeDetailList(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-		IObservableList observableList = MasterDetailObservables.detailList(
-				master, listFactory(realm, propertyName, propertyType),
-				propertyType);
-		BeanObservableListDecorator decorator = new BeanObservableListDecorator(
-				observableList, master, BeansObservables
-						.getValueTypePropertyDescriptor(master, propertyName));
-
-		return decorator;
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailSet(master, setFactory(realm,
-	 propertyName), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable set that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 */
-	public static IObservableSet observeDetailSet(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-
-		IObservableSet observableSet = MasterDetailObservables.detailSet(
-				master, setFactory(realm, propertyName, propertyType),
-				propertyType);
-		BeanObservableSetDecorator decorator = new BeanObservableSetDecorator(
-				observableSet, master, BeansObservables
-						.getValueTypePropertyDescriptor(master, propertyName));
-
-		return decorator;
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailMap(master, mapFactory(realm, propertyName))</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @return an observable map that tracks the map-type named property for the
-	 *         current value of the master observable value.
-	 */
-	public static IObservableMap observeDetailMap(Realm realm,
-			IObservableValue master, String propertyName) {
-		IObservableMap observableMap = MasterDetailObservables.detailMap(
-				master, mapPropertyFactory(realm, propertyName));
-		BeanObservableMapDecorator decorator = new BeanObservableMapDecorator(
-				observableMap, master, BeansObservables
-						.getValueTypePropertyDescriptor(master, propertyName));
-		return decorator;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/package.html b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/package.html
deleted file mode 100644
index c290e49..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes for observing JavaBeans(tm) objects.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe objects that conform to the <a href="http://java.sun.com/products/javabeans/docs/spec.html">JavaBean specification</a> for bound properties.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableListDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableListDecorator.java
deleted file mode 100644
index 8412a17..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableListDecorator.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 208858
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.AbstractObservableList;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * {@link IBeanObservable} decorator for an {@link IObservableList}.
- * 
- * @since 3.3
- */
-public class BeanObservableListDecorator extends AbstractObservableList
-		implements IBeanObservable {
-	private IObservableList delegate;
-	private IStaleListener delegateStaleListener;
-	private IListChangeListener delegateListChangeListener;
-
-	private Object observed;
-	private PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param observed
-	 * @param propertyDescriptor
-	 */
-	public BeanObservableListDecorator(IObservableList delegate,
-			Object observed, PropertyDescriptor propertyDescriptor) {
-		super(delegate.getRealm());
-		this.delegate = delegate;
-		this.observed = observed;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public void add(int index, Object element) {
-		delegate.add(index, element);
-	}
-
-	public boolean add(Object o) {
-		return delegate.add(o);
-	}
-
-	public boolean addAll(Collection c) {
-		return delegate.addAll(c);
-	}
-
-	public boolean addAll(int index, Collection c) {
-		return delegate.addAll(index, c);
-	}
-
-	public void clear() {
-		delegate.clear();
-	}
-
-	public void dispose() {
-		delegate.dispose();
-		super.dispose();
-	}
-
-	public boolean equals(Object o) {
-		getterCalled();
-		if (o instanceof BeanObservableListDecorator) {
-			BeanObservableListDecorator other = (BeanObservableListDecorator) o;
-			return Util.equals(other.delegate, delegate);
-		}
-		return Util.equals(delegate, o);
-	}
-
-	public Object get(int index) {
-		getterCalled();
-		return delegate.get(index);
-	}
-
-	public Object getElementType() {
-		return delegate.getElementType();
-	}
-
-	public int hashCode() {
-		getterCalled();
-		return delegate.hashCode();
-	}
-
-	public int indexOf(Object o) {
-		getterCalled();
-		return delegate.indexOf(o);
-	}
-
-	public Iterator iterator() {
-		getterCalled();
-		return delegate.iterator();
-	}
-
-	public int lastIndexOf(Object o) {
-		getterCalled();
-		return delegate.lastIndexOf(o);
-	}
-
-	public ListIterator listIterator() {
-		getterCalled();
-		return delegate.listIterator();
-	}
-
-	public ListIterator listIterator(int index) {
-		getterCalled();
-		return delegate.listIterator(index);
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		return delegate.move(oldIndex, newIndex);
-	}
-
-	public Object remove(int index) {
-		return delegate.remove(index);
-	}
-
-	public boolean remove(Object o) {
-		return delegate.remove(o);
-	}
-
-	public boolean removeAll(Collection c) {
-		return delegate.removeAll(c);
-	}
-
-	public boolean retainAll(Collection c) {
-		return delegate.retainAll(c);
-	}
-
-	public Object set(int index, Object element) {
-		return delegate.set(index, element);
-	}
-
-	protected int doGetSize() {
-		return delegate.size();
-	}
-
-	public List subList(int fromIndex, int toIndex) {
-		getterCalled();
-		return delegate.subList(fromIndex, toIndex);
-	}
-
-	public Object[] toArray() {
-		getterCalled();
-		return delegate.toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		return delegate.toArray(a);
-	}
-
-	protected void firstListenerAdded() {
-		delegateStaleListener = new IStaleListener() {
-			public void handleStale(StaleEvent staleEvent) {
-				fireStale();
-			}
-		};
-		delegate.addStaleListener(delegateStaleListener);
-
-		delegateListChangeListener = new IListChangeListener() {
-			public void handleListChange(ListChangeEvent event) {
-				fireListChange(event.diff);
-			}
-		};
-		delegate.addListChangeListener(delegateListChangeListener);
-	}
-
-	protected void lastListenerRemoved() {
-		delegate.removeStaleListener(delegateStaleListener);
-		delegateStaleListener = null;
-
-		delegate.removeListChangeListener(delegateListChangeListener);
-		delegateListChangeListener = null;
-	}
-
-	private void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	/**
-	 * @return list being delegated to
-	 */
-	public IObservableList getDelegate() {
-		return delegate;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getObserved()
-	 */
-	public Object getObserved() {
-		return observed;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getPropertyDescriptor()
-	 */
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableMapDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableMapDecorator.java
deleted file mode 100644
index 1ae2090..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableMapDecorator.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 221704)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * {@link IBeanObservable} decorator for an {@link IObservableMap}.
- * 
- * @since 3.3
- */
-public class BeanObservableMapDecorator implements IObservableMap, IBeanObservable {
-	private IObservableMap delegate;
-	private Object observed;
-	private PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate 
-	 * @param observed 
-	 * @param propertyDescriptor
-	 */
-	public BeanObservableMapDecorator(IObservableMap delegate,
-			Object observed,
-			PropertyDescriptor propertyDescriptor) {
-		
-		this.delegate = delegate;
-		this.observed = observed;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public Realm getRealm() {
-		return delegate.getRealm();
-	}
-
-	public boolean isStale() {
-		return delegate.isStale();
-	}
-
-	public boolean containsKey(Object key) {
-		return delegate.containsKey(key);
-	}
-
-	public boolean containsValue(Object value) {
-		return delegate.containsValue(value);
-	}
-
-	public Set entrySet() {
-		return delegate.entrySet();
-	}
-
-	public Object get(Object key) {
-		return delegate.get(key);
-	}
-
-	public Set keySet() {
-		return delegate.keySet();
-	}
-
-	public Object put(Object key, Object value) {
-		return delegate.put(key, value);
-	}
-
-	public Object remove(Object key) {
-		return delegate.remove(key);
-	}
-
-	public Collection values() {
-		return delegate.values();
-	}
-
-	public void putAll(Map map) {
-		delegate.putAll(map);
-	}
-
-	public void clear() {
-		delegate.clear();
-	}
-
-	public boolean isEmpty() {
-		return delegate.isEmpty();
-	}
-
-	public int size() {
-		return delegate.size();
-	}
-
-	public Object getObserved() {
-		return observed;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	/**
-	 * @return the wrapped map
-	 */
-	public IObservableMap getDelegate() {
-		return delegate;
-	}	
-	public void dispose() {
-		delegate.dispose();
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-		delegate.addChangeListener(listener);
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		delegate.removeChangeListener(listener);
-	}
-
-	public void addMapChangeListener(IMapChangeListener listener) {
-		delegate.addMapChangeListener(listener);
-	}
-
-	public void removeMapChangeListener(IMapChangeListener listener) {
-		delegate.removeMapChangeListener(listener);
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-		delegate.addStaleListener(listener);
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		delegate.removeStaleListener(listener);
-	}
-
-	public boolean equals(Object obj) {
-		if (obj instanceof BeanObservableMapDecorator) {
-			BeanObservableMapDecorator other = (BeanObservableMapDecorator) obj;
-			return Util.equals(other.delegate, delegate);
-		}
-		return Util.equals(delegate, obj);
-	}
-
-	public int hashCode() {
-		return delegate.hashCode();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableSetDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableSetDecorator.java
deleted file mode 100644
index d3e5286..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableSetDecorator.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * {@link IBeanObservable} decorator for an {@link IObservableSet}.
- * 
- * @since 3.3
- */
-public class BeanObservableSetDecorator implements IObservableSet, IBeanObservable {
-	private IObservableSet delegate;
-	private Object observed;
-	private PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate 
-	 * @param observed 
-	 * @param propertyDescriptor
-	 */
-	public BeanObservableSetDecorator(IObservableSet delegate,
-			Object observed,
-			PropertyDescriptor propertyDescriptor) {
-		
-		this.delegate = delegate;
-		this.observed = observed;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public boolean add(Object o) {
-		return delegate.add(o);
-	}
-
-	public boolean addAll(Collection c) {
-		return delegate.addAll(c);
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-		delegate.addChangeListener(listener);
-	}
-
-	public void addSetChangeListener(ISetChangeListener listener) {
-		delegate.addSetChangeListener(listener);
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-		delegate.addStaleListener(listener);
-	}
-
-	public void clear() {
-		delegate.clear();
-	}
-
-	public boolean contains(Object o) {
-		return delegate.contains(o);
-	}
-
-	public boolean containsAll(Collection c) {
-		return delegate.containsAll(c);
-	}
-
-	public void dispose() {
-		delegate.dispose();
-	}
-
-	public boolean equals(Object obj) {
-		if (obj instanceof BeanObservableSetDecorator) {
-			BeanObservableSetDecorator other = (BeanObservableSetDecorator) obj;
-			return Util.equals(other.delegate, delegate);
-		}
-		return Util.equals(delegate, obj);
-	}
-
-	public Object getElementType() {
-		return delegate.getElementType();
-	}
-
-	public Realm getRealm() {
-		return delegate.getRealm();
-	}
-
-	public int hashCode() {
-		return delegate.hashCode();
-	}
-
-	public boolean isEmpty() {
-		return delegate.isEmpty();
-	}
-
-	public boolean isStale() {
-		return delegate.isStale();
-	}
-
-	public Iterator iterator() {
-		return delegate.iterator();
-	}
-
-	public boolean remove(Object o) {
-		return delegate.remove(o);
-	}
-
-	public boolean removeAll(Collection c) {
-		return delegate.removeAll(c);
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		delegate.removeChangeListener(listener);
-	}
-
-	public void removeSetChangeListener(ISetChangeListener listener) {
-		delegate.removeSetChangeListener(listener);
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		delegate.removeStaleListener(listener);
-	}
-
-	public boolean retainAll(Collection c) {
-		return delegate.retainAll(c);
-	}
-
-	public int size() {
-		return delegate.size();
-	}
-
-	public Object[] toArray() {
-		return delegate.toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		return delegate.toArray(a);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getObserved()
-	 */
-	public Object getObserved() {
-		return observed;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getPropertyDescriptor()
-	 */
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	/**
-	 * @return the wrapped set
-	 */
-	public IObservableSet getDelegate() {
-		return delegate;
-	}	
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableValueDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableValueDecorator.java
deleted file mode 100644
index 07fcbf8..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableValueDecorator.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * {@link IBeanObservable} decorator for an {@link IObservableValue}.
- * 
- * @since 3.3
- */
-public class BeanObservableValueDecorator implements IObservableValue,
-		IBeanObservable {
-	private final IObservableValue delegate;
-	private final PropertyDescriptor descriptor;
-	private final IObservableValue observed;
-
-	/**
-	 * @param delegate
-	 * @param observed 
-	 * @param descriptor
-	 */
-	public BeanObservableValueDecorator(IObservableValue delegate, IObservableValue observed,
-			PropertyDescriptor descriptor) {
-		this.delegate = delegate;
-		this.observed = observed;
-		this.descriptor = descriptor;
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-		delegate.addChangeListener(listener);
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-		delegate.addStaleListener(listener);
-	}
-
-	public void addValueChangeListener(IValueChangeListener listener) {
-		delegate.addValueChangeListener(listener);
-	}
-
-	public void dispose() {
-		delegate.dispose();
-	}
-	
-	public boolean equals(Object obj) {
-		if (obj instanceof BeanObservableValueDecorator) {
-			BeanObservableValueDecorator other = (BeanObservableValueDecorator) obj;
-			return Util.equals(other.delegate, delegate);
-		}
-		return Util.equals(delegate, obj);
-	}
-
-	public Realm getRealm() {
-		return delegate.getRealm();
-	}
-
-	public Object getValue() {
-		return delegate.getValue();
-	}
-
-	public Object getValueType() {
-		return delegate.getValueType();
-	}
-	
-	public int hashCode() {
-		return delegate.hashCode();
-	}
-
-	public boolean isStale() {
-		return delegate.isStale();
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		delegate.removeChangeListener(listener);
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		delegate.removeStaleListener(listener);
-	}
-
-	public void removeValueChangeListener(IValueChangeListener listener) {
-		delegate.removeValueChangeListener(listener);
-	}
-
-	public void setValue(Object value) {
-		delegate.setValue(value);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getObserved()
-	 */
-	public Object getObserved() {
-		return observed.getValue();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getPropertyDescriptor()
-	 */
-	public PropertyDescriptor getPropertyDescriptor() {
-		return descriptor;
-	}
-	
-	/**
-	 * @return observable value delegate
-	 */
-	public IObservableValue getDelegate() {
-		return delegate;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/IdentityWrapper.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/IdentityWrapper.java
deleted file mode 100644
index 5be5454..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/IdentityWrapper.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Daniel Kruegler - bug 137435
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-/**
- * 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.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableList.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableList.java
deleted file mode 100644
index d3d62d6..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableList.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 171616
- *     Matthew Hall - bugs 208858, 221351, 213145, 223164
- *     Mike Evans - bug 217558
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Array;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.databinding.BindingException;
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-
-/**
- * @since 1.0
- * 
- */
-public class JavaBeanObservableList extends ObservableList implements
-		IBeanObservable {
-
-	private final Object object;
-
-	private PropertyChangeListener collectionListener = new PropertyChangeListener() {
-		public void propertyChange(java.beans.PropertyChangeEvent event) {
-			if (!updating) {
-				getRealm().exec(new Runnable() {
-					public void run() {
-						updateWrappedList( new ArrayList( Arrays.asList(getValues() ) ) );
-					}
-				});
-			}
-		}
-	};
-
-	private boolean updating = false;
-
-	private PropertyDescriptor descriptor;
-
-	private ListenerSupport collectionListenSupport;
-
-	private boolean attachListeners;
-
-	/**
-	 * @param realm
-	 * @param object
-	 * @param descriptor
-	 * @param elementType
-	 */
-	public JavaBeanObservableList(Realm realm, Object object,
-			PropertyDescriptor descriptor, Class elementType) {
-		this(realm, object, descriptor, elementType, true);
-	}
-
-	/**
-	 * @param realm
-	 * @param object
-	 * @param descriptor
-	 * @param elementType
-	 * @param attachListeners
-	 */
-	public JavaBeanObservableList(Realm realm, Object object,
-			PropertyDescriptor descriptor, Class elementType,
-			boolean attachListeners) {
-
-		super(realm, new ArrayList(), elementType);
-		this.object = object;
-		this.descriptor = descriptor;
-		this.attachListeners = attachListeners;
-
-		if (attachListeners) {
-			this.collectionListenSupport = new ListenerSupport(
-					collectionListener, descriptor.getName());
-		}
-
-		// initialize list without firing events
-		wrappedList.addAll(Arrays.asList(getValues()));
-	}
-
-	protected void firstListenerAdded() {
-		if (attachListeners) {
-			collectionListenSupport.hookListener(this.object);
-		}
-	}
-
-	protected void lastListenerRemoved() {
-		if (collectionListenSupport != null) {
-			collectionListenSupport.dispose();
-		}
-	}
-
-	public void dispose() {
-		super.dispose();
-		lastListenerRemoved();
-	}
-
-	private Object primGetValues() {
-		Exception ex = null;
-		try {
-			Method readMethod = descriptor.getReadMethod();
-			if (!readMethod.isAccessible()) {
-				readMethod.setAccessible(true);
-			}
-			return readMethod.invoke(object, new Object[0]);
-		} catch (IllegalArgumentException e) {
-			ex = e;
-		} catch (IllegalAccessException e) {
-			ex = e;
-		} catch (InvocationTargetException e) {
-			ex = e;
-		}
-		throw new BindingException("Could not read collection values", ex); //$NON-NLS-1$
-	}
-
-	private Object[] getValues() {
-		Object[] values = null;
-
-		Object result = primGetValues();
-		if (descriptor.getPropertyType().isArray())
-			values = (Object[]) result;
-		else {
-			// TODO add jUnit for POJO (var. SettableValue) collections
-			Collection list = (Collection) result;
-			if (list != null) {
-				values = list.toArray();
-			}
-		}
-		if (values == null)
-			values = new Object[0];
-		return values;
-	}
-
-	public Object getObserved() {
-		return object;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return descriptor;
-	}
-
-	private void setValues() {
-		if (descriptor.getPropertyType().isArray()) {
-			Class componentType = descriptor.getPropertyType()
-					.getComponentType();
-			Object[] newArray = (Object[]) Array.newInstance(componentType,
-					wrappedList.size());
-			wrappedList.toArray(newArray);
-			primSetValues(newArray);
-		} else {
-			// assume that it is a java.util.List
-			primSetValues(new ArrayList(wrappedList));
-		}
-	}
-
-	private void primSetValues(Object newValue) {
-		Exception ex = null;
-		try {
-			Method writeMethod = descriptor.getWriteMethod();
-			if (!writeMethod.isAccessible()) {
-				writeMethod.setAccessible(true);
-			}
-			writeMethod.invoke(object, new Object[] { newValue });
-			return;
-		} catch (IllegalArgumentException e) {
-			ex = e;
-		} catch (IllegalAccessException e) {
-			ex = e;
-		} catch (InvocationTargetException e) {
-			ex = e;
-		}
-		throw new BindingException("Could not write collection values", ex); //$NON-NLS-1$
-	}
-
-	public Object set(int index, Object element) {
-		getterCalled();
-		updating = true;
-		try {
-			Object oldElement = wrappedList.set(index, element);
-			setValues();
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, false, oldElement), Diffs.createListDiffEntry(index,
-					true, element)));
-			return oldElement;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		getterCalled();
-		updating = true;
-		try {
-			int size = wrappedList.size();
-			if (oldIndex < 0 || oldIndex >= size)
-				throw new IndexOutOfBoundsException(
-						"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-			if (newIndex < 0 || newIndex >= size)
-				throw new IndexOutOfBoundsException(
-						"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-			if (oldIndex == newIndex)
-				return wrappedList.get(oldIndex);
-			Object element = wrappedList.remove(oldIndex);
-			wrappedList.add(newIndex, element);
-			setValues();
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					oldIndex, false, element), Diffs.createListDiffEntry(
-					newIndex, true, element)));
-			return element;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public Object remove(int index) {
-		getterCalled();
-		updating = true;
-		try {
-			Object oldElement = wrappedList.remove(index);
-			setValues();
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, false, oldElement)));
-			return oldElement;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean add(Object element) {
-		updating = true;
-		try {
-			int index = wrappedList.size();
-			boolean result = wrappedList.add(element);
-			setValues();
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, true, element)));
-			return result;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public void add(int index, Object element) {
-		updating = true;
-		try {
-			wrappedList.add(index, element);
-			setValues();
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, true, element)));
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean addAll(Collection c) {
-		if (c.isEmpty()) {
-			return false;
-		}
-		updating = true;
-		try {
-			int index = wrappedList.size();
-			boolean result = wrappedList.addAll(c);
-			setValues();
-			ListDiffEntry[] entries = new ListDiffEntry[c.size()];
-			int i = 0;
-			for (Iterator it = c.iterator(); it.hasNext();) {
-				Object o = it.next();
-				entries[i++] = Diffs.createListDiffEntry(index++, true, o);
-			}
-			fireListChange(Diffs.createListDiff(entries));
-			return result;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean addAll(int index, Collection c) {
-		if (c.isEmpty()) {
-			return false;
-		}
-		updating = true;
-		try {
-			boolean result = wrappedList.addAll(index, c);
-			setValues();
-			ListDiffEntry[] entries = new ListDiffEntry[c.size()];
-			int i = 0;
-			for (Iterator it = c.iterator(); it.hasNext();) {
-				Object o = it.next();
-				entries[i++] = Diffs.createListDiffEntry(index++, true, o);
-			}
-			fireListChange(Diffs.createListDiff(entries));
-			return result;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		int index = wrappedList.indexOf(o);
-		if (index == -1) {
-			return false;
-		}
-		updating = true;
-		try {
-			Object oldElement = wrappedList.remove(index);
-			setValues();
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, false, oldElement)));
-			return true;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		boolean changed = false;
-		updating = true;
-		try {
-			List diffEntries = new ArrayList();
-			for (Iterator it = c.iterator(); it.hasNext();) {
-				Object o = it.next();
-				int index = wrappedList.indexOf(o);
-				if (index != -1) {
-					changed = true;
-					Object oldElement = wrappedList.remove(index);
-					diffEntries.add(Diffs.createListDiffEntry(index, false,
-							oldElement));
-				}
-			}
-			if (changed) {
-				setValues();
-				fireListChange(Diffs
-						.createListDiff((ListDiffEntry[]) diffEntries
-								.toArray(new ListDiffEntry[diffEntries.size()])));
-			}
-			return changed;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-		boolean changed = false;
-		updating = true;
-		try {
-			List diffEntries = new ArrayList();
-			int index = 0;
-			for (Iterator it = wrappedList.iterator(); it.hasNext();) {
-				Object o = it.next();
-				boolean retain = c.contains(o);
-				if (retain) {
-					index++;
-				} else {
-					changed = true;
-					it.remove();
-					diffEntries.add(Diffs.createListDiffEntry(index, false, o));
-				}
-			}
-			if (changed) {
-				setValues();
-				fireListChange(Diffs
-						.createListDiff((ListDiffEntry[]) diffEntries
-								.toArray(new ListDiffEntry[diffEntries.size()])));
-			}
-			return changed;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public void clear() {
-		updating = true;
-		try {
-			List diffEntries = new ArrayList();
-			for (Iterator it = wrappedList.iterator(); it.hasNext();) {
-				Object o = it.next();
-				diffEntries.add(Diffs.createListDiffEntry(0, false, o));
-			}
-			setValues();
-			fireListChange(Diffs.createListDiff((ListDiffEntry[]) diffEntries
-					.toArray(new ListDiffEntry[diffEntries.size()])));
-		} finally {
-			updating = false;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableMap.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableMap.java
deleted file mode 100644
index c41ed3d..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableMap.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 171616
- *     Matthew hall - bug 223164
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.map.ComputedObservableMap;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 1.0
- * 
- */
-public class JavaBeanObservableMap extends ComputedObservableMap implements
-		IBeanObservable {
-
-	private PropertyDescriptor propertyDescriptor;
-	
-	private PropertyChangeListener elementListener = new PropertyChangeListener() {
-		public void propertyChange(final java.beans.PropertyChangeEvent event) {
-			if (!updating) {
-				getRealm().exec(new Runnable() {
-					public void run() {
-						fireMapChange(Diffs.createMapDiffSingleChange(
-								event.getSource(), event.getOldValue(), event
-								.getNewValue()));
-					}
-				});
-			}
-		}
-	};
-
-	private ListenerSupport listenerSupport;
-
-	private boolean updating = false;
-
-	private boolean attachListeners;
-
-	/**
-	 * @param domain
-	 * @param propertyDescriptor
-	 */
-	public JavaBeanObservableMap(IObservableSet domain,
-			PropertyDescriptor propertyDescriptor) {
-		this(domain, propertyDescriptor, true);
-	}
-
-	/**
-	 * @param domain
-	 * @param propertyDescriptor
-	 * @param attachListeners
-	 */
-	public JavaBeanObservableMap(IObservableSet domain,
-			PropertyDescriptor propertyDescriptor, boolean attachListeners) {
-		super(domain);
-
-		this.propertyDescriptor = propertyDescriptor;
-		this.attachListeners = attachListeners;
-		if (attachListeners) {
-			this.listenerSupport = new ListenerSupport(elementListener,
-					propertyDescriptor.getName());
-		}
-		init();
-	}
-
-	protected void hookListener(Object domainElement) {
-		if (attachListeners && domainElement != null) {
-			listenerSupport.hookListener(domainElement);
-		}
-	}
-
-	protected void unhookListener(Object domainElement) {
-		if (attachListeners && domainElement != null) {
-			listenerSupport.unhookListener(domainElement);
-		}
-	}
-
-	protected Object doGet(Object key) {
-		if (key == null) {
-			return null;
-		}
-		try {
-			Method readMethod = propertyDescriptor.getReadMethod();
-			if (!readMethod.isAccessible()) {
-				readMethod.setAccessible(true);
-			}
-			return readMethod.invoke(key, new Object[0]);
-		} catch (Exception e) {
-			Policy.getLog().log(
-					new Status(IStatus.ERROR, Policy.JFACE_DATABINDING,
-							IStatus.ERROR, "cannot get value", e)); //$NON-NLS-1$
-			throw new RuntimeException(e);
-		}
-	}
-
-	protected Object doPut(Object key, Object value) {
-		try {
-			Object oldValue = get(key);
-			propertyDescriptor.getWriteMethod().invoke(key,
-					new Object[] { value });
-			keySet().add(key);
-			return oldValue;
-		} catch (Exception e) {
-			Policy.getLog().log(
-					new Status(IStatus.ERROR, Policy.JFACE_DATABINDING,
-							IStatus.ERROR, "cannot set value", e)); //$NON-NLS-1$
-			throw new RuntimeException(e);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getObserved()
-	 */
-	public Object getObserved() {
-		return keySet();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getPropertyDescriptor()
-	 */
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableSet.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableSet.java
deleted file mode 100644
index d45344e..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableSet.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 171616
- *     Matthew Hall - bug 221351, 223164
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Array;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.BindingException;
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @since 1.0
- * 
- */
-public class JavaBeanObservableSet extends ObservableSet implements IBeanObservable {
-
-	private final Object object;
-
-	private PropertyChangeListener collectionListener = new PropertyChangeListener() {
-		public void propertyChange(java.beans.PropertyChangeEvent event) {
-			if (!updating) {
-				getRealm().exec(new Runnable() {
-					public void run() {
-						Set newElements = new HashSet(Arrays
-								.asList(getValues()));
-						Set addedElements = new HashSet(newElements);
-						Set removedElements = new HashSet(wrappedSet);
-						// remove all new elements from old elements to compute
-						// the removed elements
-						removedElements.removeAll(newElements);
-						addedElements.removeAll(wrappedSet);
-						wrappedSet = newElements;
-						fireSetChange(Diffs.createSetDiff(addedElements,
-								removedElements));
-					}
-				});
-			}
-		}
-	};
-
-	private boolean updating = false;
-
-	private PropertyDescriptor descriptor;
-
-	private ListenerSupport collectionListenSupport;
-
-	private boolean attachListeners;
-
-	/**
-	 * @param realm
-	 * @param object
-	 * @param descriptor
-	 * @param elementType
-	 */
-	public JavaBeanObservableSet(Realm realm, Object object,
-			PropertyDescriptor descriptor, Class elementType) {
-		this(realm, object, descriptor, elementType, true);
-	}
-
-	/**
-	 * @param realm
-	 * @param object
-	 * @param descriptor
-	 * @param elementType
-	 * @param attachListeners
-	 */
-	public JavaBeanObservableSet(Realm realm, Object object,
-			PropertyDescriptor descriptor, Class elementType,
-			boolean attachListeners) {
-		super(realm, new HashSet(), elementType);
-		this.object = object;
-		this.descriptor = descriptor;
-		this.attachListeners = attachListeners;
-		if (attachListeners) {
-			this.collectionListenSupport = new ListenerSupport(
-					collectionListener, descriptor.getName());
-		}
-
-		wrappedSet.addAll(Arrays.asList(getValues()));
-	}
-
-	protected void firstListenerAdded() {
-		if (attachListeners) {
-			collectionListenSupport.hookListener(this.object);
-		}
-	}
-
-	protected void lastListenerRemoved() {
-		if (collectionListenSupport != null) {
-			collectionListenSupport.dispose();
-		}
-	}
-
-	private Object primGetValues() {
-		try {
-			Method readMethod = descriptor.getReadMethod();
-			if (!readMethod.isAccessible()) {
-				readMethod.setAccessible(true);
-			}
-			return readMethod.invoke(object, new Object[0]);
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		} catch (InvocationTargetException e) {
-		}
-		Assert.isTrue(false, "Could not read collection values"); //$NON-NLS-1$
-		return null;
-	}
-
-	private Object[] getValues() {
-		Object[] values = null;
-
-		Object result = primGetValues();
-		if (descriptor.getPropertyType().isArray())
-			values = (Object[]) result;
-		else {
-			// TODO add jUnit for POJO (var. SettableValue) collections
-			Collection list = (Collection) result;
-			if (list != null)
-				values = list.toArray();
-		}
-		if (values == null)
-			values = new Object[0];
-		return values;
-	}
-
-	private void setValues() {
-		if (descriptor.getPropertyType().isArray()) {
-			Class componentType = descriptor.getPropertyType()
-					.getComponentType();
-			Object[] newArray = (Object[]) Array.newInstance(componentType,
-					wrappedSet.size());
-			wrappedSet.toArray(newArray);
-			primSetValues(newArray);
-		} else {
-			// assume that it is a java.util.Set
-			primSetValues(new HashSet(wrappedSet));
-		}
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		updating = true;
-		try {
-			boolean added = wrappedSet.add(o);
-			if (added) {
-				setValues();
-				fireSetChange(Diffs.createSetDiff(Collections.singleton(o),
-						Collections.EMPTY_SET));
-			}
-			return added;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		updating = true;
-		try {
-			boolean removed = wrappedSet.remove(o);
-			if (removed) {
-				setValues();
-				fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET,
-						Collections.singleton(o)));
-			}
-			return removed;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		updating = true;
-		try {
-			Set additions = new HashSet();
-			for (Iterator iterator = c.iterator(); iterator.hasNext();) {
-				Object element = iterator.next();
-				if (wrappedSet.add(element))
-					additions.add(element);
-			}
-			boolean changed = !additions.isEmpty();
-			if (changed) {
-				setValues();
-				fireSetChange(Diffs.createSetDiff(additions,
-						Collections.EMPTY_SET));
-			}
-			return changed;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		updating = true;
-		try {
-			Set removals = new HashSet();
-			for (Iterator iterator = c.iterator(); iterator.hasNext();) {
-				Object element = iterator.next();
-				if (wrappedSet.remove(element))
-					removals.add(element);
-			}
-			boolean changed = !removals.isEmpty();
-			if (changed) {
-				setValues();
-				fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET,
-						removals));
-			}
-			return changed;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-		updating = true;
-		try {
-			Set removals = new HashSet();
-			for (Iterator iterator = wrappedSet.iterator(); iterator.hasNext();) {
-				Object element = iterator.next();
-				if (!c.contains(element)) {
-					iterator.remove();
-					removals.add(element);
-				}
-			}
-			boolean changed = !removals.isEmpty();
-			if (changed) {
-				setValues();
-				fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET,
-						removals));
-			}
-			return changed;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public void clear() {
-		getterCalled();
-		if (wrappedSet.isEmpty())
-			return;
-
-		updating = true;
-		try {
-			Set removals = new HashSet(wrappedSet);
-			wrappedSet.clear();
-			setValues();
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removals));
-		} finally {
-			updating = false;
-		}
-	}
-
-	private void primSetValues(Object newValue) {
-		Exception ex = null;
-		try {
-			Method writeMethod = descriptor.getWriteMethod();
-			if (!writeMethod.isAccessible()) {
-				writeMethod.setAccessible(true);
-			}
-			writeMethod.invoke(object, new Object[] { newValue });
-			return;
-		} catch (IllegalArgumentException e) {
-			ex = e;
-		} catch (IllegalAccessException e) {
-			ex = e;
-		} catch (InvocationTargetException e) {
-			ex = e;
-		}
-		throw new BindingException("Could not write collection values", ex); //$NON-NLS-1$
-	}
-
-	public Object getObserved() {
-		return object;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return descriptor;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableValue.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableValue.java
deleted file mode 100644
index c2d4810..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableValue.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 164134, 171616
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.databinding.BindingException;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.Util;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 1.0
- * 
- */
-public class JavaBeanObservableValue extends AbstractObservableValue implements IBeanObservable {
-	private final Object object;
-	private boolean updating = false;
-
-	private final PropertyDescriptor propertyDescriptor;
-	private ListenerSupport listenerSupport;
-
-	private boolean attachListeners;
-
-	/**
-	 * @param realm
-	 * @param object
-	 * @param descriptor
-	 */
-	public JavaBeanObservableValue(Realm realm, Object object,
-			PropertyDescriptor descriptor) {
-		this(realm, object, descriptor, true);
-	}
-
-	/**
-	 * @param realm
-	 * @param object
-	 * @param descriptor
-	 * @param attachListeners
-	 */
-	public JavaBeanObservableValue(Realm realm, Object object,
-			PropertyDescriptor descriptor, boolean attachListeners) {
-		super(realm);
-		this.object = object;
-		this.propertyDescriptor = descriptor;
-		this.attachListeners = attachListeners;
-	}
-
-	protected void firstListenerAdded() {
-		if (!attachListeners) {
-			return;
-		}
-			
-		PropertyChangeListener listener = new PropertyChangeListener() {
-			public void propertyChange(java.beans.PropertyChangeEvent event) {
-				if (!updating) {
-					final ValueDiff diff = Diffs.createValueDiff(event.getOldValue(),
-											event.getNewValue());
-					getRealm().exec(new Runnable(){
-						public void run() {
-							fireValueChange(diff);
-						}});
-				}
-			}
-		};
-		
-		if (listenerSupport == null) {
-			listenerSupport = new ListenerSupport(listener, propertyDescriptor.getName());
-		}
-		
-		listenerSupport.hookListener(object);
-	}
-
-	public void doSetValue(Object value) {
-		updating = true;
-		try {
-			Object oldValue = doGetValue();
-			
-			if (Util.equals(oldValue, value)) {
-				return;
-			}
-			
-			Method writeMethod = propertyDescriptor.getWriteMethod();
-			if (!writeMethod.isAccessible()) {
-				writeMethod.setAccessible(true);
-			}
-			writeMethod.invoke(object, new Object[] { value });
-			fireValueChange(Diffs.createValueDiff(oldValue, doGetValue()));
-		} catch (InvocationTargetException e) {
-			/*
-			 * InvocationTargetException wraps any exception thrown by the
-			 * invoked method.
-			 */
-			throw new RuntimeException(e.getCause());
-		} catch (Exception e) {
-			if (BeansObservables.DEBUG) {
-				Policy
-						.getLog()
-						.log(
-								new Status(
-										IStatus.WARNING,
-										Policy.JFACE_DATABINDING,
-										IStatus.OK,
-										"Could not change value of " + object + "." + propertyDescriptor.getName(), e)); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		} finally {
-			updating = false;
-		}
-	}
-
-	public Object doGetValue() {
-		try {
-			Method readMethod = propertyDescriptor.getReadMethod();
-			if (readMethod == null) {
-				throw new BindingException(propertyDescriptor.getName()
-						+ " property does not have a read method."); //$NON-NLS-1$
-			}
-			if (!readMethod.isAccessible()) {
-				readMethod.setAccessible(true);
-			}
-			return readMethod.invoke(object, null);
-		} catch (InvocationTargetException e) {
-			/*
-			 * InvocationTargetException wraps any exception thrown by the
-			 * invoked method.
-			 */
-			throw new RuntimeException(e.getCause());
-		} catch (Exception e) {
-			if (BeansObservables.DEBUG) {
-				Policy
-						.getLog()
-						.log(
-								new Status(
-										IStatus.WARNING,
-										Policy.JFACE_DATABINDING,
-										IStatus.OK,
-										"Could not read value of " + object + "." + propertyDescriptor.getName(), e)); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			return null;
-		}
-	}
-
-	protected void lastListenerRemoved() {
-		unhookListener();
-	}
-
-	private void unhookListener() {
-		if (listenerSupport != null) {
-			listenerSupport.dispose();
-			listenerSupport = null;
-		}
-	}
-
-	public Object getValueType() {
-		return propertyDescriptor.getPropertyType();
-	}
-
-	public Object getObserved() {
-		return object;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public synchronized void dispose() {
-		unhookListener();
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanPropertyObservableMap.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanPropertyObservableMap.java
deleted file mode 100644
index 5e79609..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/JavaBeanPropertyObservableMap.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 221704)
- *     Matthew Hall - bug 223164
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-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.core.databinding.BindingException;
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.ObservableMap;
-import org.eclipse.core.internal.databinding.Util;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @since 1.0
- * 
- */
-public class JavaBeanPropertyObservableMap extends ObservableMap implements
-		IBeanObservable {
-
-	private final Object object;
-
-	private PropertyChangeListener mapListener = new PropertyChangeListener() {
-		public void propertyChange(final PropertyChangeEvent event) {
-			if (!updating) {
-				getRealm().exec(new Runnable() {
-					public void run() {
-						Map oldValue = wrappedMap;
-						Map newValue = (Map) event.getNewValue();
-						wrappedMap = new HashMap(newValue);
-						
-						fireMapChange(Diffs.computeMapDiff(oldValue, newValue));
-					}
-				});
-			}
-		}
-	};
-
-	private boolean updating = false;
-
-	private PropertyDescriptor descriptor;
-
-	private ListenerSupport collectionListenSupport;
-
-	private boolean attachListeners;
-
-	/**
-	 * @param realm
-	 * @param object
-	 * @param descriptor
-	 */
-	public JavaBeanPropertyObservableMap(Realm realm, Object object,
-			PropertyDescriptor descriptor) {
-		this(realm, object, descriptor, true);
-	}
-
-	/**
-	 * @param realm
-	 * @param object
-	 * @param descriptor
-	 * @param attachListeners
-	 */
-	public JavaBeanPropertyObservableMap(Realm realm, Object object,
-			PropertyDescriptor descriptor, boolean attachListeners) {
-		super(realm, new HashMap());
-		this.object = object;
-		this.descriptor = descriptor;
-		this.attachListeners = attachListeners;
-		if (attachListeners) {
-			this.collectionListenSupport = new ListenerSupport(mapListener,
-					descriptor.getName());
-		}
-
-		wrappedMap.putAll(getMap());
-	}
-
-	protected void firstListenerAdded() {
-		if (attachListeners) {
-			collectionListenSupport.hookListener(this.object);
-		}
-	}
-
-	protected void lastListenerRemoved() {
-		if (collectionListenSupport != null) {
-			collectionListenSupport.dispose();
-		}
-	}
-
-	private Object primGetMap() {
-		try {
-			Method readMethod = descriptor.getReadMethod();
-			if (!readMethod.isAccessible()) {
-				readMethod.setAccessible(true);
-			}
-			return readMethod.invoke(object, new Object[0]);
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		} catch (InvocationTargetException e) {
-		}
-		Assert.isTrue(false, "Could not read collection values"); //$NON-NLS-1$
-		return null;
-	}
-
-	private void primSetMap(Object newValue) {
-		Exception ex = null;
-		try {
-			Method writeMethod = descriptor.getWriteMethod();
-			if (!writeMethod.isAccessible()) {
-				writeMethod.setAccessible(true);
-			}
-			writeMethod.invoke(object, new Object[] { newValue });
-			return;
-		} catch (IllegalArgumentException e) {
-			ex = e;
-		} catch (IllegalAccessException e) {
-			ex = e;
-		} catch (InvocationTargetException e) {
-			ex = e;
-		}
-		throw new BindingException("Could not write collection values", ex); //$NON-NLS-1$
-	}
-
-	private Map getMap() {
-		Map result = (Map) primGetMap();
-
-		if (result == null)
-			result = new HashMap();
-		return result;
-	}
-
-	private void setMap() {
-		primSetMap(new HashMap(wrappedMap));
-	}
-
-	public Object put(Object key, Object value) {
-		checkRealm();
-		updating = true;
-		try {
-			Object result = wrappedMap.put(key, value);
-			if (!Util.equals(result, value)) {
-				setMap();
-				if (result == null) {
-					fireMapChange(Diffs.createMapDiffSingleAdd(key, value));
-				} else {
-					fireMapChange(Diffs.createMapDiffSingleChange(key, result,
-							value));
-				}
-			}
-			return result;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public void putAll(Map map) {
-		checkRealm();
-		updating = true;
-		try {
-			Set addedKeys = new HashSet(map.size());
-			Map changes = new HashMap(map.size());
-			for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
-				Map.Entry entry = (Entry) it.next();
-				Object key = entry.getKey();
-				Object newValue = entry.getValue();
-				Object oldValue = wrappedMap.put(key, newValue);
-				if (oldValue == null) {
-					addedKeys.add(key);
-				} else if (!Util.equals(oldValue, newValue)) {
-					changes.put(key, oldValue);
-				}
-			}
-			if (!addedKeys.isEmpty() || !changes.isEmpty()) {
-				setMap();
-				fireMapChange(Diffs.createMapDiff(addedKeys,
-						Collections.EMPTY_SET, changes.keySet(), changes,
-						wrappedMap));
-			}
-		} finally {
-			updating = false;
-		}
-	}
-
-	public Object remove(Object key) {
-		checkRealm();
-		updating = true;
-		try {
-			Object result = wrappedMap.remove(key);
-			if (result!=null) {
-				setMap();
-				fireMapChange(Diffs.createMapDiffSingleRemove(key, result));
-			}
-			return result;
-		} finally {
-			updating = false;
-		}
-	}
-
-	public void clear() {
-		checkRealm();
-		if (wrappedMap.isEmpty())
-			return;
-		updating = true;
-		try {
-			Map oldMap = wrappedMap;
-			wrappedMap = new HashMap();
-			setMap();
-			fireMapChange(Diffs.computeMapDiff(oldMap, Collections.EMPTY_MAP));
-		} finally {
-			updating = false;
-		}
-	}
-
-	public Object getObserved() {
-		return object;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return descriptor;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/ListenerSupport.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/ListenerSupport.java
deleted file mode 100644
index 6e82157..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/ListenerSupport.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * This is a helper that will hook up and listen for <code>PropertyChangeEvent</code> events
- * for a set of target JavaBeans
- * 
- * @since 1.0
- */
-public class ListenerSupport {
-
-	private Set elementsListenedTo = new HashSet();
-	
-	private PropertyChangeListener listener;
-
-	private String propertyName;
-
-	/**
-	 * Constructs a new instance.
-	 * 
-	 * @param listener is the callback that will be called
-	 * 		when a <code>PropertyChangeEvent</code> is fired on any
-	 * 		of the target objects.  Will only receive change events 
-	 * 		when the provided <code>propertyName</code> changes.
-	 * @param propertyName
-	 */
-	public ListenerSupport(final PropertyChangeListener listener,
-			final String propertyName) {
-		Assert.isNotNull(listener, "Listener cannot be null"); //$NON-NLS-1$
-		Assert.isNotNull(propertyName, "Property name cannot be null"); //$NON-NLS-1$
-
-		this.propertyName = propertyName;
-		this.listener = new PropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent evt) {
-				if (propertyName.equals(evt.getPropertyName())) {
-					listener.propertyChange(evt);
-				}
-			}
-		};
-	}
-
-	/**
-	 * Start listen to target (if it supports the JavaBean property change listener pattern)
-	 * 
-	 * @param target
-	 */
-	public void hookListener(Object target) {
-		if (processListener(
-				"addPropertyChangeListener", "Could not attach listener to ", target)) { //$NON-NLS-1$ //$NON-NLS-2$
-			elementsListenedTo.add(new IdentityWrapper(target));
-		}
-	}
-		
-	/**
-	 * Add listeners for new targets (those this instance of<code>ListenerSupport</code> does not 
-	 * already listen to),
-	 * Stop to listen to those object that this instance listen to and is one of the object in targets 
-	 * 
-	 * @param targets 
-	 */
-	public void setHookTargets(Object[] targets) {		
-		Set elementsToUnhook = new HashSet(elementsListenedTo);
-		if (targets!=null) {
-			for (int i = 0; i < targets.length; i++) {
-				Object newValue = targets[i];
-				IdentityWrapper identityWrapper = new IdentityWrapper(newValue);
-				if(!elementsToUnhook.remove(identityWrapper)) 				
-					hookListener(newValue);
-			}
-		}
-			
-		for (Iterator it = elementsToUnhook.iterator(); it.hasNext();) {
-			Object o = it.next();
-			if (o.getClass()!=IdentityWrapper.class)
-				o = new IdentityWrapper(o);
-			elementsListenedTo.remove(o);
-			unhookListener(o);
-		}							
-	}
-	
-	/**
-	 * Stop listen to target
-	 * 
-	 * @param target
-	 */
-	public void unhookListener(Object target) {
-		if (target.getClass() == IdentityWrapper.class)
-			target = ((IdentityWrapper) target).unwrap();
-
-		if (processListener(
-				"removePropertyChangeListener", "Cound not remove listener from ", target)) { //$NON-NLS-1$//$NON-NLS-2$
-			elementsListenedTo.remove(new IdentityWrapper(target));
-		}
-	}
-	
-	
-	/**
-	 * 
-	 */
-	public void dispose() {
-		if (elementsListenedTo!=null) {
-			Object[] targets = elementsListenedTo.toArray();		
-			for (int i = 0; i < targets.length; i++) {		
-				unhookListener(targets[i]);
-			}			
-			elementsListenedTo=null;
-			listener=null;
-		}
-	}
-	
-	/**
-	 * @return elements that were registred to
-	 */
-	public Object[] getHookedTargets() {
-		Object[] targets = null;
-		if (elementsListenedTo!=null && elementsListenedTo.size()>0) {
-			Object[] identityList = elementsListenedTo.toArray();
-			targets = new Object[identityList.length];
-			for (int i = 0; i < identityList.length; i++) 
-				targets[i]=((IdentityWrapper)identityList[i]).unwrap();							
-		}
-		return targets;
-	}
-
-	/**
-	 * Invokes the method for the provided <code>methodName</code> attempting
-	 * to first use the method with the property name and then the unnamed
-	 * version.
-	 * 
-	 * @param methodName
-	 *            either addPropertyChangeListener or
-	 *            removePropertyChangeListener
-	 * @param message
-	 *            string that will be prefixed to the target in an error message
-	 * @param target
-	 *            object to invoke the method on
-	 * @return <code>true</code> if the method was invoked successfully
-	 */
-	private boolean processListener(String methodName, String message,
-			Object target) {
-		Method method = null;
-		Object[] parameters = null;
-
-		try {
-			try {
-				method = target.getClass().getMethod(
-						methodName,
-						new Class[] { String.class,
-								PropertyChangeListener.class });
-
-				parameters = new Object[] { propertyName, listener };
-			} catch (NoSuchMethodException e) {
-				method = target.getClass().getMethod(methodName,
-						new Class[] { PropertyChangeListener.class });
-
-				parameters = new Object[] { listener };
-			}
-		} catch (SecurityException e) {
-			// ignore
-		} catch (NoSuchMethodException e) {
-			log(IStatus.WARNING, message + target, e);
-		}
-
-		if (method != null) {
-			if (!method.isAccessible()) {
-				method.setAccessible(true);
-			}
-			try {
-				method.invoke(target, parameters);
-				return true;
-			} catch (IllegalArgumentException e) {
-				log(IStatus.WARNING, message + target, e);
-			} catch (IllegalAccessException e) {
-				log(IStatus.WARNING, message + target, e);
-			} catch (InvocationTargetException e) {
-				log(IStatus.WARNING, message + target, e);
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Logs a message to the Data Binding logger.
-	 */
-	private void log(int severity, String message, Throwable throwable) {
-		if (BeansObservables.DEBUG) {
-			Policy.getLog().log(
-					new Status(severity, Policy.JFACE_DATABINDING, IStatus.OK,
-							message, throwable));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/AbstractObservable.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/AbstractObservable.java
deleted file mode 100644
index 90e9b58..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/AbstractObservable.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.AssertionFailedException;
-
-/**
- * @since 1.0
- */
-public abstract class AbstractObservable extends ChangeManager implements IObservable {
-	
-	/**
-	 * @param realm
-	 */
-	public AbstractObservable(Realm realm) {
-		super(realm);
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		addListener(ChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeChangeListener(IChangeListener listener) {
-		removeListener(ChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void addStaleListener(IStaleListener listener) {
-		addListener(StaleEvent.TYPE, listener);
-	}
-
-	public synchronized void removeStaleListener(IStaleListener listener) {
-		removeListener(StaleEvent.TYPE, listener);
-	}
-
-	protected void fireChange() {
-		checkRealm();
-		fireEvent(new ChangeEvent(this));
-	}
-
-	protected void fireStale() {
-		checkRealm();
-		fireEvent(new StaleEvent(this));
-	}
-
-	/**
-	 * 
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-	}
-
-	/**
-	 * Asserts that the realm is the current realm.
-	 * 
-	 * @see Realm#isCurrent()
-	 * @throws AssertionFailedException if the realm is not the current realm
-	 */
-	protected void checkRealm() {
-		Assert.isTrue(getRealm().isCurrent(),
-				"This operation must be run within the observable's realm"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeEvent.java
deleted file mode 100644
index 60950cf..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * Generic change event denoting that the state of an {@link IObservable} object
- * has changed. This event does not carry information about the kind of change
- * that occurred.
- * 
- * @since 1.0
- * 
- */
-public class ChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -3241193109844979384L;
-	static final Object TYPE = new Object();
-
-	/**
-	 * Creates a new change event object.
-	 * 
-	 * @param source
-	 *            the observable that changed state
-	 */
-	public ChangeEvent(IObservable source) {
-		super(source);
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IChangeListener) listener).handleChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeManager.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeManager.java
deleted file mode 100644
index bf2be9a..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeManager.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-
-/**
- * Listener management implementation. Exposed to subclasses in form of
- * {@link AbstractObservable} and {@link ChangeSupport}.
- * 
- * @since 1.0
- * 
- */
-/* package */ class ChangeManager {
-
-	ListenerList[] listenerLists = null;
-	Object listenerTypes[] = null;
-	private Realm realm;
-
-	/**
-	 * @param realm 
-	 * 
-	 */
-	/* package */ ChangeManager(Realm realm) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		this.realm = realm;
-	}
-
-	/**
-	 * @param listenerType
-	 * @param listener
-	 */
-	protected void addListener(Object listenerType,
-			IObservablesListener listener) {
-		int listenerTypeIndex = findListenerTypeIndex(listenerType);
-		if (listenerTypeIndex == -1) {
-			int length;
-			if (listenerTypes == null) {
-				length = 0;
-				listenerTypes = new Object[1];
-				listenerLists = new ListenerList[1];
-			} else {
-				length = listenerTypes.length;
-				System.arraycopy(listenerTypes, 0,
-						listenerTypes = new Object[length + 1], 0, length);
-				System
-						.arraycopy(listenerLists, 0,
-								listenerLists = new ListenerList[length + 1],
-								0, length);
-			}
-			listenerTypes[length] = listenerType;
-			listenerLists[length] = new ListenerList();
-			boolean hadListeners = hasListeners();
-			listenerLists[length].add(listener);
-			if (!hadListeners) {
-				this.firstListenerAdded();
-			}
-			return;
-		}
-		ListenerList listenerList = listenerLists[listenerTypeIndex];
-		boolean hadListeners = true;
-		if (listenerList.size() == 0) {
-			hadListeners = hasListeners();
-		}
-		listenerList.add(listener);
-		if (!hadListeners) {
-			firstListenerAdded();
-		}
-	}
-
-	/**
-	 * @param listenerType
-	 * @param listener
-	 */
-	protected void removeListener(Object listenerType,
-			IObservablesListener listener) {
-		int listenerTypeIndex = findListenerTypeIndex(listenerType);
-		if (listenerTypeIndex != -1) {
-			listenerLists[listenerTypeIndex].remove(listener);
-			if (listenerLists[listenerTypeIndex].size() == 0) {
-				if (!hasListeners()) {
-					this.lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	protected boolean hasListeners() {
-		if (listenerTypes == null) {
-			return false;
-		}
-		for (int i = 0; i < listenerTypes.length; i++) {
-			if (listenerLists[i].size() > 0) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private int findListenerTypeIndex(Object listenerType) {
-		if (listenerTypes != null) {
-			for (int i = 0; i < listenerTypes.length; i++) {
-				if (listenerTypes[i] == listenerType) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	protected void fireEvent(ObservableEvent event) {
-		Object listenerType = event.getListenerType();
-		int listenerTypeIndex = findListenerTypeIndex(listenerType);
-		if (listenerTypeIndex != -1) {
-			Object[] listeners = listenerLists[listenerTypeIndex]
-					.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				event.dispatch((IObservablesListener) listeners[i]);
-			}
-		}
-	}
-
-	/**
-	 * 
-	 */
-	protected void firstListenerAdded() {
-	}
-
-	/**
-	 * 
-	 */
-	protected void lastListenerRemoved() {
-	}
-
-	/**
-	 * 
-	 */
-	public void dispose() {
-		listenerLists = null;
-		listenerTypes = null;
-		realm = null;
-	}
-
-	/**
-	 * @return Returns the realm.
-	 */
-	public Realm getRealm() {
-		return realm;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeSupport.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeSupport.java
deleted file mode 100644
index e91daeb..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeSupport.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * @since 1.0
- *
- */
-public abstract class ChangeSupport extends ChangeManager {
-
-	/**
-	 * @param realm 
-	 */
-	public ChangeSupport(Realm realm) {
-		super(realm);
-	}
-	
-	public void addListener(Object listenerType,
-			IObservablesListener listener) {
-		super.addListener(listenerType, listener);
-	}
-	
-	public void removeListener(Object listenerType,
-			IObservablesListener listener) {
-		super.removeListener(listenerType, listener);
-	}
-	
-	public void fireEvent(ObservableEvent event) {
-		super.fireEvent(event);
-	}
-	
-	/**
-	 * 
-	 */
-	protected abstract void firstListenerAdded();
-	
-	/**
-	 * 
-	 */
-	protected abstract void lastListenerRemoved();
-
-	/**
-	 * @param listener
-	 */
-	public void addChangeListener(IChangeListener listener) {
-		addListener(ChangeEvent.TYPE, listener);
-	}
-	
-	/**
-	 * @param listener
-	 */
-	public void removeChangeListener(IChangeListener listener) {
-		removeListener(ChangeEvent.TYPE, listener);
-	}
-
-	/**
-	 * @param listener
-	 */
-	public void addStaleListener(IStaleListener listener) {
-		addListener(StaleEvent.TYPE, listener);
-	}
-	
-	/**
-	 * @param listener
-	 */
-	public void removeStaleListener(IStaleListener listener) {
-		removeListener(StaleEvent.TYPE, listener);
-	}
-	
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Diffs.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Diffs.java
deleted file mode 100644
index 9500537..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Diffs.java
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 226216
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import java.util.ArrayList;
-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.Map.Entry;
-
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * @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();
-		createListDiffs(new ArrayList(oldList), newList, diffEntries);
-		ListDiff listDiff = createListDiff((ListDiffEntry[]) diffEntries
-				.toArray(new ListDiffEntry[diffEntries.size()]));
-		return listDiff;
-	}
-	
-	/**
-	 * adapted from EMF's ListDifferenceAnalyzer
-	 */
-	private static void createListDiffs(List oldList, List newList,
-			List listDiffs) {
-		int index = 0;
-		for (Iterator it = newList.iterator(); it.hasNext();) {
-			Object newValue = it.next();
-			if (oldList.size() <= index) {
-				// append newValue to newList 
-				listDiffs.add(createListDiffEntry(index, true, newValue));
-			} else {
-				boolean done;
-				do {
-					done = true;
-					Object oldValue = oldList.get(index);
-					if (oldValue == null ? newValue != null : !oldValue.equals(newValue)) {
-						int oldIndexOfNewValue = listIndexOf(oldList, newValue, index);
-						if (oldIndexOfNewValue != -1) {
-							int newIndexOfOldValue = listIndexOf(newList, oldValue, index);
-							if (newIndexOfOldValue == -1) {
-								// removing oldValue from list[index]
-								listDiffs.add(createListDiffEntry(index, false, oldValue));
-								oldList.remove(index);
-								done = false;
-							} else if (newIndexOfOldValue > oldIndexOfNewValue) {
-								// moving oldValue from list[index] to [newIndexOfOldValue] 
-								if (oldList.size() <= newIndexOfOldValue) {
-									// The element cannot be moved to the correct index
-									// now, however later iterations will insert elements
-									// in front of it, eventually moving it into the
-									// correct spot.
-									newIndexOfOldValue = oldList.size() - 1;
-								}
-								listDiffs.add(createListDiffEntry(index, false, oldValue));
-								oldList.remove(index);
-								listDiffs.add(createListDiffEntry(newIndexOfOldValue, true, oldValue));
-								oldList.add(newIndexOfOldValue, oldValue);
-								done = false;
-							} else {
-								// move newValue from list[oldIndexOfNewValue] to [index]
-								listDiffs.add(createListDiffEntry(oldIndexOfNewValue, false, newValue));
-								oldList.remove(oldIndexOfNewValue);
-								listDiffs.add(createListDiffEntry(index, true, newValue));
-								oldList.add(index, newValue);
-							}
-						} else {
-							// add newValue at list[index]
-							oldList.add(index, newValue);
-							listDiffs.add(createListDiffEntry(index, true, newValue));
-						}
-					}
-				} while (!done);
-			}
-			++index;
-		}
-		for (int i = oldList.size(); i > index;) {
-			// remove excess trailing elements not present in newList
-			listDiffs.add(createListDiffEntry(--i, false, oldList.get(i)));
-		}
-	}
-
-	/**
-	 * @param list
-	 * @param object
-	 * @param index
-	 * @return the index, or -1 if not found
-	 */
-	private static int listIndexOf(List list, Object object, int index) {
-		int size = list.size();
-		for (int i=index; i<size;i++) {
-			Object candidate = list.get(i);
-			if (candidate==null ? object==null : candidate.equals(object)) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * Computes the difference between two maps.
-	 * 
-	 * @param oldMap
-	 * @param newMap
-	 * @return a map diff representing the changes needed to turn oldMap into
-	 *         newMap
-	 */
-	public static MapDiff computeMapDiff(Map oldMap, Map newMap) {
-		// starts out with all keys from the new map, we will remove keys from
-		// the old map as we go
-		final Set addedKeys = new HashSet(newMap.keySet());
-		final Set removedKeys = new HashSet();
-		final Set changedKeys = new HashSet();
-		final Map oldValues = new HashMap();
-		final Map newValues = new HashMap();
-		for (Iterator it = oldMap.entrySet().iterator(); it.hasNext();) {
-			Map.Entry oldEntry = (Entry) it.next();
-			Object oldKey = oldEntry.getKey();
-			if (addedKeys.remove(oldKey)) {
-				// potentially changed key since it is in oldMap and newMap
-				Object oldValue = oldEntry.getValue();
-				Object newValue = newMap.get(oldKey);
-				if (!Util.equals(oldValue, newValue)) {
-					changedKeys.add(oldKey);
-					oldValues.put(oldKey, oldValue);
-					newValues.put(oldKey, newValue);
-				}
-			} else {
-				removedKeys.add(oldKey);
-				oldValues.put(oldKey, oldEntry.getValue());
-			}
-		}
-		for (Iterator it = addedKeys.iterator(); it.hasNext();) {
-			Object newKey = it.next();
-			newValues.put(newKey, newMap.get(newKey));
-		}
-		return new MapDiff() {
-			public Set getAddedKeys() {
-				return addedKeys;
-			}
-
-			public Set getChangedKeys() {
-				return changedKeys;
-			}
-
-			public Set getRemovedKeys() {
-				return removedKeys;
-			}
-
-			public Object getNewValue(Object key) {
-				return newValues.get(key);
-			}
-
-			public Object getOldValue(Object key) {
-				return oldValues.get(key);
-			}
-		};
-	}
-	
-	/**
-	 * @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;
-			}
-		};
-	}
-
-	/**
-	 * @param addedKey
-	 * @param newValue
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiffSingleAdd(final Object addedKey,
-			final Object newValue) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.singleton(addedKey);
-			}
-
-			public Set getChangedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Object getNewValue(Object key) {
-				return newValue;
-			}
-
-			public Object getOldValue(Object key) {
-				return null;
-			}
-
-			public Set getRemovedKeys() {
-				return Collections.EMPTY_SET;
-			}
-		};
-	}
-
-	/**
-	 * @param existingKey
-	 * @param oldValue
-	 * @param newValue
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiffSingleChange(final Object existingKey,
-			final Object oldValue, final Object newValue) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Set getChangedKeys() {
-				return Collections.singleton(existingKey);
-			}
-
-			public Object getNewValue(Object key) {
-				return newValue;
-			}
-
-			public Object getOldValue(Object key) {
-				return oldValue;
-			}
-
-			public Set getRemovedKeys() {
-				return Collections.EMPTY_SET;
-			}
-		};
-	}
-
-	/**
-	 * @param removedKey
-	 * @param oldValue
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiffSingleRemove(final Object removedKey,
-			final Object oldValue) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Set getChangedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Object getNewValue(Object key) {
-				return null;
-			}
-
-			public Object getOldValue(Object key) {
-				return oldValue;
-			}
-
-			public Set getRemovedKeys() {
-				return Collections.singleton(removedKey);
-			}
-		};
-	}
-
-	/**
-	 * @param copyOfOldMap
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiffRemoveAll(final Map copyOfOldMap) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Set getChangedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Object getNewValue(Object key) {
-				return null;
-			}
-
-			public Object getOldValue(Object key) {
-				return copyOfOldMap.get(key);
-			}
-
-			public Set getRemovedKeys() {
-				return copyOfOldMap.keySet();
-			}
-		};
-	}
-
-	/**
-	 * @param addedKeys
-	 * @param removedKeys
-	 * @param changedKeys
-	 * @param oldValues
-	 * @param newValues
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiff(final Set addedKeys,
-			final Set removedKeys, final Set changedKeys, final Map oldValues,
-			final Map newValues) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return addedKeys;
-			}
-
-			public Set getChangedKeys() {
-				return changedKeys;
-			}
-
-			public Object getNewValue(Object key) {
-				return newValues.get(key);
-			}
-
-			public Object getOldValue(Object key) {
-				return oldValues.get(key);
-			}
-
-			public Set getRemovedKeys() {
-				return removedKeys;
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IChangeListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IChangeListener.java
deleted file mode 100644
index d0a5cee..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IChangeListener.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-
-/**
- * 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 IMapChangeListener
- * 
- * @since 1.0
- */
-public interface IChangeListener extends IObservablesListener {
-
-	/**
-	 * Handle a generic change to the given observable. The given event object
-	 * must only be used locally in this method because it may be reused for
-	 * other change notifications.
-	 * 
-	 * @param event
-	 */
-	public void handleChange(ChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservable.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservable.java
deleted file mode 100644
index de8e8cd..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservable.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable;
-
-/**
- * An object with state that allows to listen for state changes.
- * 
- * <p>
- * Implementations must not manage listeners themselves, listener management
- * must be delegated to a private instance of type {@link ChangeSupport} if it
- * is not inherited from {@link AbstractObservable}.
- * </p>
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- *              Clients should instead subclass one of the classes in the
- *              framework 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.
- * 
- * @since 1.0
- * 
- */
-public interface IObservable {
-
-	/**
-	 * Returns the realm for this observable. Unless otherwise specified,
-	 * getters and setters must be accessed from within this realm. Listeners
-	 * will be within this realm when they receive events from this observable.
-	 * <p>
-	 * Because observables can only be accessed from within one realm, and they
-	 * always fire events on that realm, their state can be observed in an
-	 * incremental way. It is always safe to call getters of an observable from
-	 * within a change listener attached to that observable.
-	 * </p>
-	 * 
-	 * @return the realm
-	 */
-	public Realm getRealm();
-
-	/**
-	 * Adds the given change listener to the list of change listeners. Change
-	 * listeners are notified about changes of the state of this observable in a
-	 * generic way, without specifying the change that happened. To get the
-	 * changed state, a change listener needs to query for the current state of
-	 * this observable.
-	 * 
-	 * @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. Stale
-	 * listeners are notified when an observable object becomes stale, not when
-	 * is becomes non-stale.
-	 * 
-	 * @param listener
-	 * 
-	 * @see #isStale()
-	 */
-	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 and is expected to
-	 * change soon. A non-stale observable 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, it does <b>not</b>
-	 * notify its stale listeners about becoming non-stale. 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.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservableCollection.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservableCollection.java
deleted file mode 100644
index 66e669a..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservableCollection.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import java.util.Collection;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-
-/**
- * Interface for observable collections. Only general change listeners can be
- * added to an observable collection. Listeners interested in incremental
- * changes have to be added using more concrete subtypes such as
- * {@link IObservableList} or {@link IObservableSet}.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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, Collection {
-
-	/**
-	 * @return the element type of this observable value, or <code>null</code>
-	 *         if this observable collection is untyped.
-	 */
-	Object getElementType();
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservablesListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservablesListener.java
deleted file mode 100644
index bc0687c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObservablesListener.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * Marker interface for all listener types in the observables framework.
- * 
- * @noimplement This interface is not intended to be implemented by clients.
- * 
- * @since 1.0
- */
-public interface IObservablesListener {
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObserving.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObserving.java
deleted file mode 100644
index 1c9fc13..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IObserving.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * 
- * Mixin interface for IObservables that observe other objects.
- * 
- * @since 1.0
- * 
- */
-public interface IObserving {
-
-	/**
-	 * Returns the observed object, or <code>null</code> if this observing
-	 * object does not currently observe an object.
-	 * 
-	 * @return the observed object, or <code>null</code>
-	 */
-	public Object getObserved();
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IStaleListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IStaleListener.java
deleted file mode 100644
index 5729198..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/IStaleListener.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * Listener for staleness events. An observable object is stale if its state
- * will change eventually.
- * 
- * @since 1.0
- */
-public interface IStaleListener extends IObservablesListener {
-
-	/**
-	 * Handle the event that the given observable object is now stale. The given
-	 * event object must only be used locally in this method because it may be
-	 * reused for other change notifications.
-	 * 
-	 * @param staleEvent
-	 */
-	public void handleStale(StaleEvent staleEvent);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ObservableEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ObservableEvent.java
deleted file mode 100644
index 38a865c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ObservableEvent.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import java.util.EventObject;
-
-/**
- * Abstract event object for events fired by {@link IObservable} objects. All
- * events fired by observables must be derived from this class so that the way
- * of dispatching events can be improved in later versions of the framework.
- * 
- * @since 1.0
- * 
- */
-public abstract class ObservableEvent extends EventObject {
-
-	/**
-	 * Creates a new observable event.
-	 * 
-	 * @param source
-	 */
-	public ObservableEvent(IObservable source) {
-		super(source);
-	}
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 7693906965267871813L;
-
-	/**
-	 * Returns the observable that generated this event.
-	 * 
-	 * @return the observable that generated this event
-	 */
-	public IObservable getObservable() {
-		return (IObservable) getSource();
-	}
-
-	/**
-	 * Dispatch this event to the given listener. Subclasses must implement this
-	 * method by calling the appropriate type-safe event handling method on the
-	 * given listener according to the type of this event.
-	 * 
-	 * @param listener
-	 *            the listener that should handle the event
-	 */
-	protected abstract void dispatch(IObservablesListener listener);
-
-	/**
-	 * Returns a unique object used for distinguishing this event type from
-	 * others.
-	 * 
-	 * @return a unique object representing the concrete type of this event.
-	 */
-	protected abstract Object getListenerType();
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ObservableTracker.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ObservableTracker.java
deleted file mode 100644
index 8e3fca9..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ObservableTracker.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - Fix NPE, more detailed assert messages (bug 210115)
- *******************************************************************************/
-package org.eclipse.core.databinding.observable;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.internal.databinding.IdentityWrapper;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * 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;
-	}
-	
-	/**
-	 * Runs the given runnable without tracking dependencies.
-	 * @param runnable
-	 * 
-	 * @since 1.1
-	 */
-	public static void runAndIgnore(Runnable runnable) {
-		// Remember the previous value in the listener stack
-		Set lastObservableSet = (Set) currentObservableSet.get();
-		IChangeListener lastChangeListener = (IChangeListener) currentChangeListener
-				.get();
-		IStaleListener lastStaleListener = (IStaleListener) currentStaleListener
-				.get();
-		currentObservableSet.set(null);
-		currentChangeListener.set(null);
-		currentStaleListener.set(null);
-		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);
-		}
-	}
-
-	/*
-	 * Returns the same string as the default Object.toString() implementation.
-	 * getterCalled() uses this method IObservable.toString() to avoid infinite
-	 * recursion and stack overflow.
-	 */
-	private static String toString(IObservable observable) {
-		return observable.getClass().getName() + "@" //$NON-NLS-1$
-				+ Integer.toHexString(System.identityHashCode(observable));
-	}
-
-	/**
-	 * 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) {
-		Realm realm = observable.getRealm();
-		if (realm == null) // observable.isDisposed() would be more appropriate if it existed
-			Assert.isTrue(false, "Getter called on disposed observable " //$NON-NLS-1$
-					+ toString(observable));
-		if (!realm.isCurrent())
-			Assert.isTrue(false, "Getter called outside realm of observable " //$NON-NLS-1$
-					+ toString(observable));
-
-		Set lastObservableSet = (Set) currentObservableSet.get();
-		if (lastObservableSet == null) {
-			return;
-		}
-		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.core.databinding.observable/src/org/eclipse/core/databinding/observable/Observables.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Observables.java
deleted file mode 100644
index f272080..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Observables.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 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
- *     Matt Carter - bug 212518 (constantObservableValue)
- *     Matthew Hall - bugs 208332, 212518, 219909, 184830
- *     Marko Topolnik - bug 184830
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.observable.ConstantObservableValue;
-import org.eclipse.core.internal.databinding.observable.EmptyObservableList;
-import org.eclipse.core.internal.databinding.observable.EmptyObservableSet;
-import org.eclipse.core.internal.databinding.observable.MapEntryObservableValue;
-import org.eclipse.core.internal.databinding.observable.ProxyObservableList;
-import org.eclipse.core.internal.databinding.observable.ProxyObservableSet;
-import org.eclipse.core.internal.databinding.observable.StalenessObservableValue;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableList;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableSet;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableValue;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Contains static methods to operate on or return
- * {@link IObservable Observables}.
- * 
- * @since 1.0
- */
-public class Observables {
-	/**
-	 * Returns an unmodifiable observable value backed by the given observable
-	 * value.
-	 * 
-	 * @param value
-	 *            the value to wrap in an unmodifiable value
-	 * @return an unmodifiable observable value backed by the given observable
-	 *         value
-	 * @since 1.1
-	 */
-	public static IObservableValue unmodifiableObservableValue(
-			IObservableValue value) {
-		Assert.isNotNull(value, "Argument 'value' cannot be null"); //$NON-NLS-1$
-		return new UnmodifiableObservableValue(value);
-	}
-
-	/**
-	 * Returns an observable value with the given constant value.
-	 * 
-	 * @param realm
-	 *            the observable's realm
-	 * @param value
-	 *            the observable's constant value
-	 * @param valueType
-	 *            the observable's value type
-	 * @return an immutable observable value with the given constant value
-	 * @since 1.1
-	 */
-	public static IObservableValue constantObservableValue(Realm realm,
-			Object value, Object valueType) {
-		return new ConstantObservableValue(realm, value, valueType);
-	}
-
-	/**
-	 * Returns an observable value with the given constant value.
-	 * 
-	 * @param realm
-	 *            the observable's realm
-	 * @param value
-	 *            the observable's constant value
-	 * @return an immutable observable value with the given constant value
-	 * @since 1.1
-	 */
-	public static IObservableValue constantObservableValue(Realm realm,
-			Object value) {
-		return constantObservableValue(realm, value, null);
-	}
-
-	/**
-	 * Returns an observable value with the given constant value.
-	 * 
-	 * @param value
-	 *            the observable's constant value
-	 * @param valueType
-	 *            the observable's value type
-	 * @return an immutable observable value with the given constant value
-	 * @since 1.1
-	 */
-	public static IObservableValue constantObservableValue(Object value,
-			Object valueType) {
-		return constantObservableValue(Realm.getDefault(), value, valueType);
-	}
-
-	/**
-	 * Returns an observable value with the given constant value.
-	 * 
-	 * @param value
-	 *            the observable's constant value
-	 * @return an immutable observable value with the given constant value
-	 * @since 1.1
-	 */
-	public static IObservableValue constantObservableValue(Object value) {
-		return constantObservableValue(Realm.getDefault(), value, null);
-	}
-
-	/**
-	 * Returns an unmodifiable observable list backed by the given observable
-	 * list.
-	 * 
-	 * @param list
-	 *            the list to wrap in an unmodifiable list
-	 * @return an unmodifiable observable list backed by the given observable
-	 *         list
-	 */
-	public static IObservableList unmodifiableObservableList(
-			IObservableList list) {
-		if (list == null) {
-			throw new IllegalArgumentException("List parameter cannot be null."); //$NON-NLS-1$
-		}
-
-		return new UnmodifiableObservableList(list);
-	}
-
-	/**
-	 * Returns an unmodifiable observable set backed by the given observable
-	 * set.
-	 * 
-	 * @param set
-	 *            the set to wrap in an unmodifiable set
-	 * @return an unmodifiable observable set backed by the given observable set
-	 * @since 1.1
-	 */
-	public static IObservableSet unmodifiableObservableSet(IObservableSet set) {
-		if (set == null) {
-			throw new IllegalArgumentException("Set parameter cannot be null"); //$NON-NLS-1$
-		}
-
-		return new UnmodifiableObservableSet(set);
-	}
-
-	/**
-	 * Returns an empty observable list. The returned list continues to work
-	 * after it has been disposed of and can be disposed of multiple times.
-	 * 
-	 * @return an empty observable list.
-	 */
-	public static IObservableList emptyObservableList() {
-		return emptyObservableList(Realm.getDefault(), null);
-	}
-
-	/**
-	 * Returns an empty observable list of the given element type. The returned
-	 * list continues to work after it has been disposed of and can be disposed
-	 * of multiple times.
-	 * 
-	 * @param elementType
-	 *            the element type of the returned list
-	 * @return an empty observable list
-	 * @since 1.1
-	 */
-	public static IObservableList emptyObservableList(Object elementType) {
-		return emptyObservableList(Realm.getDefault(), elementType);
-	}
-
-	/**
-	 * Returns an empty observable list belonging to the given realm. The
-	 * returned list continues to work after it has been disposed of and can be
-	 * disposed of multiple times.
-	 * 
-	 * @param realm
-	 *            the realm of the returned list
-	 * @return an empty observable list.
-	 */
-	public static IObservableList emptyObservableList(Realm realm) {
-		return emptyObservableList(realm, null);
-	}
-
-	/**
-	 * Returns an empty observable list of the given element type and belonging
-	 * to the given realm. The returned list continues to work after it has been
-	 * disposed of and can be disposed of multiple times.
-	 * 
-	 * @param realm
-	 *            the realm of the returned list
-	 * @param elementType
-	 *            the element type of the returned list
-	 * @return an empty observable list
-	 * @since 1.1
-	 */
-	public static IObservableList emptyObservableList(Realm realm,
-			Object elementType) {
-		return new EmptyObservableList(realm, elementType);
-	}
-
-	/**
-	 * Returns an empty observable set. The returned set continues to work after
-	 * it has been disposed of and can be disposed of multiple times.
-	 * 
-	 * @return an empty observable set.
-	 */
-	public static IObservableSet emptyObservableSet() {
-		return emptyObservableSet(Realm.getDefault(), null);
-	}
-
-	/**
-	 * Returns an empty observable set of the given element type. The returned
-	 * set continues to work after it has been disposed of and can be disposed
-	 * of multiple times.
-	 * 
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @return an empty observable set
-	 * @since 1.1
-	 */
-	public static IObservableSet emptyObservableSet(Object elementType) {
-		return emptyObservableSet(Realm.getDefault(), elementType);
-	}
-
-	/**
-	 * Returns an empty observable set belonging to the given realm. The
-	 * returned set continues to work after it has been disposed of and can be
-	 * disposed of multiple times.
-	 * 
-	 * @param realm
-	 *            the realm of the returned set
-	 * @return an empty observable set.
-	 */
-	public static IObservableSet emptyObservableSet(Realm realm) {
-		return emptyObservableSet(realm, null);
-	}
-
-	/**
-	 * Returns an empty observable set of the given element type and belonging
-	 * to the given realm. The returned set continues to work after it has been
-	 * disposed of and can be disposed of multiple times.
-	 * 
-	 * @param realm
-	 *            the realm of the returned set
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @return an empty observable set
-	 * @since 1.1
-	 */
-	public static IObservableSet emptyObservableSet(Realm realm,
-			Object elementType) {
-		return new EmptyObservableSet(realm, elementType);
-	}
-
-	/**
-	 * Returns an observable set backed by the given set.
-	 * 
-	 * @param set
-	 *            the set to wrap in an IObservableSet
-	 * @return an observable set backed by the given set
-	 */
-	public static IObservableSet staticObservableSet(Set set) {
-		return staticObservableSet(Realm.getDefault(), set, Object.class);
-	}
-
-	/**
-	 * Returns an observable set of the given element type, backed by the given
-	 * set.
-	 * 
-	 * @param set
-	 *            the set to wrap in an IObservableSet
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @return Returns an observable set backed by the given unchanging set
-	 * @since 1.1
-	 */
-	public static IObservableSet staticObservableSet(Set set, Object elementType) {
-		return staticObservableSet(Realm.getDefault(), set, elementType);
-	}
-
-	/**
-	 * Returns an observable set belonging to the given realm, backed by the
-	 * given set.
-	 * 
-	 * @param realm
-	 *            the realm of the returned set
-	 * @param set
-	 *            the set to wrap in an IObservableSet
-	 * @return an observable set backed by the given unchanging set
-	 */
-	public static IObservableSet staticObservableSet(Realm realm, Set set) {
-		return staticObservableSet(realm, set, Object.class);
-	}
-
-	/**
-	 * Returns an observable set of the given element type and belonging to the
-	 * given realm, backed by the given set.
-	 * 
-	 * @param realm
-	 *            the realm of the returned set
-	 * @param set
-	 *            the set to wrap in an IObservableSet
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @return an observable set backed by the given set
-	 * @since 1.1
-	 */
-	public static IObservableSet staticObservableSet(Realm realm, Set set,
-			Object elementType) {
-		return new ObservableSet(realm, set, elementType) {
-			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 disposable proxy for the given observable set
-	 */
-	public static IObservableSet proxyObservableSet(IObservableSet target) {
-		return new ProxyObservableSet(target);
-	}
-
-	/**
-	 * Returns an observable list that contains the same elements as the given
-	 * list, and fires the same events as the given list, but can be disposed of
-	 * without disposing of the wrapped list.
-	 * 
-	 * @param target
-	 *            the list to wrap
-	 * @return a disposable proxy for the given observable list
-	 * @since 1.1
-	 */
-	public static IObservableList proxyObservableList(IObservableList target) {
-		return new ProxyObservableList(target);
-	}
-
-	/**
-	 * Returns an observable list backed by the given list.
-	 * 
-	 * @param list
-	 *            the list to wrap in an IObservableList
-	 * @return an observable list backed by the given unchanging list
-	 */
-	public static IObservableList staticObservableList(List list) {
-		return staticObservableList(Realm.getDefault(), list, Object.class);
-	}
-
-	/**
-	 * Returns an observable list of the given element type, backed by the given
-	 * list.
-	 * 
-	 * @param list
-	 *            the list to wrap in an IObservableList
-	 * @param elementType
-	 *            the element type of the returned list
-	 * @return an observable list backed by the given unchanging list
-	 * @since 1.1
-	 */
-	public static IObservableList staticObservableList(List list,
-			Object elementType) {
-		return staticObservableList(Realm.getDefault(), list, elementType);
-	}
-
-	/**
-	 * Returns an observable list belonging to the given realm, backed by the
-	 * given list.
-	 * 
-	 * @param realm
-	 *            the realm of the returned list
-	 * @param list
-	 *            the list to wrap in an IObservableList
-	 * @return an observable list backed by the given unchanging list
-	 */
-	public static IObservableList staticObservableList(Realm realm, List list) {
-		return staticObservableList(realm, list, Object.class);
-	}
-
-	/**
-	 * Returns an observable list of the given element type and belonging to the
-	 * given realm, backed by the given list.
-	 * 
-	 * @param realm
-	 *            the realm of the returned list
-	 * @param list
-	 *            the list to wrap in an IObservableList
-	 * @param elementType
-	 *            the element type of the returned list
-	 * @return an observable list backed by the given unchanging list
-	 * @since 1.1
-	 */
-	public static IObservableList staticObservableList(Realm realm, List list,
-			Object elementType) {
-		return new ObservableList(realm, list, elementType) {
-			public void addChangeListener(IChangeListener listener) {
-			}
-
-			public void addStaleListener(IStaleListener listener) {
-			}
-
-			public void addListChangeListener(IListChangeListener listener) {
-			}
-		};
-	}
-
-	/**
-	 * Returns an observable value of type <code>Boolean.TYPE</code> which
-	 * tracks whether the given observable is stale.
-	 * 
-	 * @param observable
-	 *            the observable to track
-	 * @return an observable value which tracks whether the given observable is
-	 *         stale
-	 * 
-	 * @since 1.1
-	 */
-	public static IObservableValue observeStale(IObservable observable) {
-		return new StalenessObservableValue(observable);
-	}
-
-	/**
-	 * Returns an observable value that tracks changes to the value of an
-	 * observable map's entry specified by its key.
-	 * <p>
-	 * The state where the key does not exist in the map is equivalent to the
-	 * state where the key exists and its value is <code>null</code>. The
-	 * transition between these two states is not considered a value change and
-	 * no event is fired.
-	 * 
-	 * @param map
-	 *            the observable map whose entry will be tracked.
-	 * @param key
-	 *            the key identifying the map entry to track.
-	 * @param valueType
-	 *            the type of the value. May be <code>null</code>, meaning
-	 *            the value is untyped.
-	 * @return an observable value that tracks the value associated with the
-	 *         specified key in the given map
-	 * @since 1.1
-	 */
-	public static IObservableValue observeMapEntry(IObservableMap map,
-			Object key, Object valueType) {
-		return new MapEntryObservableValue(map, key, valueType);
-	}
-
-	/**
-	 * Returns a factory for creating obervable values tracking the value of the
-	 * {@link IObservableMap observable map} entry identified by a particular
-	 * key.
-	 * 
-	 * @param map
-	 *            the observable map whose entry will be tracked.
-	 * @param valueType
-	 *            the type of the value. May be <code>null</code>, meaning
-	 *            the value is untyped.
-	 * @return a factory for creating observable values tracking the value of
-	 *         the observable map entry identified by a particular key object.
-	 * @since 1.1
-	 */
-	public static IObservableFactory mapEntryValueFactory(
-			final IObservableMap map, final Object valueType) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object key) {
-				return observeMapEntry(map, key, valueType);
-			}
-		};
-	}
-
-	/**
-	 * Helper method for <code>MasterDetailObservables.detailValue(master,
-	 * mapEntryValueFactory(map, valueType), valueType)</code>.
-	 * 
-	 * @param map
-	 *            the observable map whose entry will be tracked.
-	 * @param master
-	 *            the observable value that identifies which map entry to track.
-	 * @param valueType
-	 *            the type of the value. May be <code>null</code>, meaning
-	 *            the value is untyped.
-	 * @return an observable value tracking the current value of the specified
-	 *         key in the given map an observable value that tracks the current
-	 *         value of the named property for the current value of the master
-	 *         observable value
-	 * @since 1.1
-	 */
-	public static IObservableValue observeDetailMapEntry(IObservableMap map,
-			IObservableValue master, Object valueType) {
-		return MasterDetailObservables.detailValue(master,
-				mapEntryValueFactory(map, valueType), valueType);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Realm.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Realm.java
deleted file mode 100644
index 27d08ff..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/Realm.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 168153
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.Queue;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-
-/**
- * A realm defines a context from which objects implementing {@link IObservable}
- * must be accessed, and on which these objects will notify their listeners. To
- * bridge between observables from different realms, subclasses of
- * {@link Binding} can be used.
- * <p>
- * A block of code is said to be executing within a realm if calling
- * {@link #isCurrent()} from that block returns true. Code reached by calling
- * methods from that block will execute within the same realm, with the
- * exception of methods on this class that can be used to execute code within a
- * specific realm. Clients can use {@link #syncExec(Runnable)},
- * {@link #asyncExec(Runnable)}, or {@link #exec(Runnable)} to execute a
- * runnable within this realm. Note that using {@link #syncExec(Runnable)} can
- * lead to deadlocks and should be avoided if the current thread holds any
- * locks.
- * </p>
- * <p>
- * It is instructive to think about possible implementations of Realm: It can be
- * based on executing on a designated thread such as a UI thread, or based on
- * holding a lock. In the former case, calling syncExec on a realm that is not
- * the current realm will execute the given runnable on a different thread (the
- * designated thread). In the latter case, calling syncExec may execute the
- * given runnable on the calling thread, but calling
- * {@link #asyncExec(Runnable)} will execute the given runnable on a different
- * thread. Therefore, no assumptions can be made about the thread that will
- * execute arguments to {@link #asyncExec(Runnable)},
- * {@link #syncExec(Runnable)}, or {@link #exec(Runnable)}.
- * </p>
- * <p>
- * It is possible that a block of code is executing within more than one realm.
- * This can happen for implementations of Realm that are based on holding a lock
- * but don't use a separate thread to run runnables given to
- * {@link #syncExec(Runnable)}. Realm implementations of this kind should be
- * appropriately documented because it increases the opportunity for deadlock.
- * </p>
- * <p>
- * Some implementations of {@link IObservable} provide constructors which do not
- * take a Realm argument and are specified to create the observable instance
- * with the current default realm. The default realm can be set for the
- * currently executing thread by using {@link #runWithDefault(Realm, Runnable)}.
- * Note that the default realm does not have to be the current realm.
- * </p>
- * <p>
- * Subclasses must override at least one of asyncExec()/syncExec(). For realms
- * based on a designated thread, it may be easier to implement asyncExec and
- * keep the default implementation of syncExec. For realms based on holding a
- * lock, it may be easier to implement syncExec and keep the default
- * implementation of asyncExec.
- * </p>
- * 
- * @since 1.0
- * 
- * @see IObservable
- */
-public abstract class Realm {
-
-	private static ThreadLocal defaultRealm = new ThreadLocal();
-
-	/**
-	 * Returns the default realm for the calling thread, or <code>null</code>
-	 * if no default realm has been set.
-	 * 
-	 * @return the default realm, or <code>null</code>
-	 */
-	public static Realm getDefault() {
-		return (Realm) defaultRealm.get();
-	}
-	
-	/**
-	 * Sets the default realm for the calling thread, returning the current
-	 * default thread. This method is inherently unsafe, it is recommended to
-	 * use {@link #runWithDefault(Realm, Runnable)} instead. This method is
-	 * exposed to subclasses to facilitate testing.
-	 * 
-	 * @param realm
-	 *            the new default realm, or <code>null</code>
-	 * @return the previous default realm, or <code>null</code>
-	 */
-	protected static Realm setDefault(Realm realm) {
-		Realm oldValue = getDefault();
-		defaultRealm.set(realm);
-		return oldValue;
-	}
-
-	/**
-	 * @return true if the caller is executing in this realm. This method must
-	 *         not have side-effects (such as, for example, implicitly placing
-	 *         the caller in this realm).
-	 */
-	abstract public boolean isCurrent();
-
-	private Thread workerThread;
-
-	Queue workQueue = new Queue();
-	
-	/**
-	 * Runs the given runnable. If an exception occurs within the runnable, it
-	 * is logged and not re-thrown. If the runnable implements
-	 * {@link ISafeRunnable}, the exception is passed to its
-	 * <code>handleException<code> method.
-	 * 
-	 * @param runnable
-	 */
-	protected static void safeRun(final Runnable runnable) {
-		ISafeRunnable safeRunnable;
-		if (runnable instanceof ISafeRunnable) {
-			safeRunnable = (ISafeRunnable) runnable;
-		} else {
-			safeRunnable = new ISafeRunnable() {
-				public void handleException(Throwable exception) {
-					Policy
-							.getLog()
-							.log(
-									new Status(
-											IStatus.ERROR,
-											Policy.JFACE_DATABINDING,
-											IStatus.OK,
-											"Unhandled exception: " + exception.getMessage(), exception)); //$NON-NLS-1$
-				}
-				public void run() throws Exception {
-					runnable.run();
-				}
-			};
-		}
-		SafeRunner.run(safeRunnable);
-	}
-
-	/**
-	 * Causes the <code>run()</code> method of the runnable to be invoked from
-	 * within this realm. If the caller is executing in this realm, the
-	 * runnable's run method is invoked directly, otherwise it is run at the
-	 * next reasonable opportunity using asyncExec.
-	 * <p>
-	 * If the given runnable is an instance of {@link ISafeRunnable}, its
-	 * exception handler method will be called if any exceptions occur while
-	 * running it. Otherwise, the exception will be logged.
-	 * </p>
-	 * 
-	 * @param runnable
-	 */
-	public void exec(Runnable runnable) {
-		if (isCurrent()) {
-			safeRun(runnable);
-		} else {
-			asyncExec(runnable);
-		}
-	}
-
-	/**
-	 * Causes the <code>run()</code> method of the runnable to be invoked from
-	 * within this realm at the next reasonable opportunity. The caller of this
-	 * method continues to run in parallel, and is not notified when the
-	 * runnable has completed.
-	 * <p>
-	 * If the given runnable is an instance of {@link ISafeRunnable}, its
-	 * exception handler method will be called if any exceptions occur while
-	 * running it. Otherwise, the exception will be logged.
-	 * </p>
-	 * <p>
-	 * Subclasses should use {@link #safeRun(Runnable)} to run the runnable.
-	 * </p>
-	 * 
-	 * @param runnable
-	 */
-	public void asyncExec(Runnable runnable) {
-		synchronized (workQueue) {
-			ensureWorkerThreadIsRunning();
-			workQueue.enqueue(runnable);
-			workQueue.notifyAll();
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void ensureWorkerThreadIsRunning() {
-		if (workerThread == null) {
-			workerThread = new Thread() {
-				public void run() {
-					try {
-						while (true) {
-							Runnable work = null;
-							synchronized (workQueue) {
-								while (workQueue.isEmpty()) {
-									workQueue.wait();
-								}
-								work = (Runnable) workQueue.dequeue();
-							}
-							syncExec(work);
-						}
-					} catch (InterruptedException e) {
-						// exit
-					}
-				}
-			};
-			workerThread.start();
-		}
-	}
-
-	/**
-	 * Causes the <code>run()</code> method of the runnable to be invoked from
-	 * within this realm at the next reasonable opportunity. This method is
-	 * blocking the caller until the runnable completes.
-	 * <p>
-	 * If the given runnable is an instance of {@link ISafeRunnable}, its
-	 * exception handler method will be called if any exceptions occur while
-	 * running it. Otherwise, the exception will be logged.
-	 * </p>
-	 * <p>
-	 * Subclasses should use {@link #safeRun(Runnable)} to run the runnable.
-	 * </p>
-	 * <p>
-	 * Note: This class is not meant to be called by clients and therefore has
-	 * only protected access.
-	 * </p>
-	 * 
-	 * @param runnable
-	 */
-	protected void syncExec(Runnable runnable) {
-		SyncRunnable syncRunnable = new SyncRunnable(runnable);
-		asyncExec(syncRunnable);
-		synchronized (syncRunnable) {
-			while (!syncRunnable.hasRun) {
-				try {
-					syncRunnable.wait();
-				} catch (InterruptedException e) {
-					Thread.currentThread().interrupt();
-				}
-			}
-		}
-	}
-
-	static class SyncRunnable implements Runnable {
-		boolean hasRun = false;
-
-		private Runnable runnable;
-
-		SyncRunnable(Runnable runnable) {
-			this.runnable = runnable;
-		}
-
-		public void run() {
-			try {
-				safeRun(runnable);
-			} finally {
-				synchronized (this) {
-					hasRun = true;
-					this.notifyAll();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Sets the provided <code>realm</code> as the default for the duration of
-	 * {@link Runnable#run()} and resets the previous realm after completion.
-	 * Note that this will not set the given realm as the current realm.
-	 * 
-	 * @param realm
-	 * @param runnable
-	 */
-	public static void runWithDefault(Realm realm, Runnable runnable) {
-		Realm oldRealm = Realm.getDefault();
-		try {
-			defaultRealm.set(realm);
-			runnable.run();
-		} finally {
-			defaultRealm.set(oldRealm);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/StaleEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/StaleEvent.java
deleted file mode 100644
index 14e8c76..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/StaleEvent.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * Generic event denoting that the state of an {@link IObservable} object is
- * about to change. Note that this event is only fired when an observable
- * becomes stale, not when it becomes unstale; an observable that becomes
- * unstale should always fire a change event. Staleness can be used (for
- * example) to notify listeners when an observable has started a background
- * thread for updating its state. Clients can safely ignore staleness.
- * 
- * @see IObservable#isStale()
- * 
- * @since 1.0
- * 
- */
-public class StaleEvent extends ObservableEvent {
-
-	/**
-	 * Creates a new stale event.
-	 * 
-	 * @param source
-	 *            the source observable
-	 */
-	public StaleEvent(IObservable source) {
-		super(source);
-	}
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 3491012225431471077L;
-
-	static final Object TYPE = new Object();
-
-	protected void dispatch(IObservablesListener listener) {
-		((IStaleListener) listener).handleStale(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/AbstractObservableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/AbstractObservableList.java
deleted file mode 100644
index 658ff7f..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/AbstractObservableList.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 167204
- *     Matthew Hall - bug 118516
- *     Matthew Hall - bug 208858
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.AbstractList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.ChangeSupport;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.AssertionFailedException;
-
-/**
- * Subclasses should override at least get(int index) and size().
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public abstract class AbstractObservableList extends AbstractList implements
-		IObservableList {
-
-	private ChangeSupport changeSupport;
-
-	/**
-	 * @param realm 
-	 * 
-	 */
-	public AbstractObservableList(Realm realm) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		changeSupport = new ChangeSupport(realm){
-			protected void firstListenerAdded() {
-				AbstractObservableList.this.firstListenerAdded();
-			}
-			protected void lastListenerRemoved() {
-				AbstractObservableList.this.lastListenerRemoved();
-			}
-		};
-	}
-
-	/**
-	 * 
-	 */
-	public AbstractObservableList() {
-		this(Realm.getDefault());
-	}
-	
-	public boolean isStale() {
-		getterCalled();
-		return false;
-	}
-
-	public synchronized void addListChangeListener(IListChangeListener listener) {
-		changeSupport.addListener(ListChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeListChangeListener(IListChangeListener listener) {
-		changeSupport.removeListener(ListChangeEvent.TYPE, listener);
-	}
-
-	protected void fireListChange(ListDiff diff) {
-		// fire general change event first
-		fireChange();
-		changeSupport.fireEvent(new ListChangeEvent(this, diff));
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		changeSupport.addChangeListener(listener);
-	}
-
-	public synchronized void removeChangeListener(IChangeListener listener) {
-		changeSupport.removeChangeListener(listener);
-	}
-
-	public synchronized void addStaleListener(IStaleListener listener) {
-		changeSupport.addStaleListener(listener);
-	}
-
-	public synchronized void removeStaleListener(IStaleListener listener) {
-		changeSupport.removeStaleListener(listener);
-	}
-
-	/**
-	 * Fires change event. Must be invoked from the current realm.
-	 */
-	protected void fireChange() {
-		checkRealm();
-		changeSupport.fireEvent(new ChangeEvent(this));
-	}
-
-	/**
-	 * Fires stale event. Must be invoked from the current realm.
-	 */
-	protected void fireStale() {
-		checkRealm();
-		changeSupport.fireEvent(new StaleEvent(this));
-	}
-
-	/**
-	 * 
-	 */
-	protected void firstListenerAdded() {
-	}
-
-	/**
-	 * 
-	 */
-	protected void lastListenerRemoved() {
-	}
-
-	/**
-	 * 
-	 */
-	public synchronized void dispose() {
-		changeSupport = 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() {
-		getterCalled();
-		final Iterator wrappedIterator = super.iterator();
-		return new Iterator() {
-			public void remove() {
-				wrappedIterator.remove();
-			}
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				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);
-	}
-
-	/**
-	 * Moves the element located at <code>oldIndex</code> to
-	 * <code>newIndex</code>. This method is equivalent to calling
-	 * <code>add(newIndex, remove(oldIndex))</code>.
-	 * <p>
-	 * Subclasses should override this method to deliver list change
-	 * notification for the remove and add operations in the same
-	 * ListChangeEvent, as this allows {@link ListDiff#accept(ListDiffVisitor)}
-	 * to recognize the operation as a move.
-	 * 
-	 * @param oldIndex
-	 *            the element's position before the move. Must be within the
-	 *            range <code>0 &lt;= oldIndex &lt; size()</code>.
-	 * @param newIndex
-	 *            the element's position after the move. Must be within the
-	 *            range <code>0 &lt;= newIndex &lt; size()</code>.
-	 * @return the element that was moved.
-	 * @throws IndexOutOfBoundsException
-	 *             if either argument is out of range (<code>0 &lt;= index &lt; size()</code>).
-	 * @see ListDiffVisitor#handleMove(int, int, Object)
-	 * @see ListDiff#accept(ListDiffVisitor)
-	 * @since 1.1
-	 */
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		int size = doGetSize();
-		if (oldIndex < 0 || oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex < 0 || newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		Object element = remove(oldIndex);
-		add(newIndex, element);
-		return element;
-	}
-
-	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);
-	}
-
-	public Realm getRealm() {
-		return changeSupport.getRealm();
-	}
-	
-	/**
-	 * Asserts that the realm is the current realm.
-	 * 
-	 * @see Realm#isCurrent()
-	 * @throws AssertionFailedException
-	 *             if the realm is not the current realm
-	 */
-	protected void checkRealm() {
-		Assert.isTrue(getRealm().isCurrent(),
-				"This operation must be run within the observable's realm"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ComputedList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ComputedList.java
deleted file mode 100644
index e7f6b2b..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ComputedList.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/************************************************************************************************************
- * Copyright (c) 2007 Matthew Hall and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * 		Matthew Hall - initial API and implementation
- * 		IBM Corporation - initial API and implementation
- * 		Brad Reynolds - initial API and implementation (through bug 116920 and bug 147515)
- * 		Matthew Hall - bug 211786
- ***********************************************************************************************************/
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-
-/**
- * A Lazily calculated list that automatically computes and registers listeners
- * on its dependencies as long as all of its dependencies are IObservable
- * objects
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.1
- */
-public abstract class ComputedList extends AbstractObservableList {
-	private List cachedList = new ArrayList();
-
-	private boolean dirty = true;
-	private boolean stale = false;
-
-	private IObservable[] dependencies = new IObservable[0];
-
-	/**
-	 * Creates a computed list in the default realm and with an unknown (null)
-	 * element type.
-	 */
-	public ComputedList() {
-		this(Realm.getDefault(), null);
-	}
-
-	/**
-	 * Creates a computed list in the default realm and with the given element
-	 * type.
-	 * 
-	 * @param elementType
-	 *            the element type, may be <code>null</code> to indicate
-	 *            unknown element type
-	 */
-	public ComputedList(Object elementType) {
-		this(Realm.getDefault(), elementType);
-	}
-
-	/**
-	 * Creates a computed list in given realm and with an unknown (null) element
-	 * type.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * 
-	 */
-	public ComputedList(Realm realm) {
-		this(realm, null);
-	}
-
-	/**
-	 * Creates a computed list in the given realm and with the given element
-	 * type.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param elementType
-	 *            the element type, may be <code>null</code> to indicate
-	 *            unknown element type
-	 */
-	public ComputedList(Realm realm, Object elementType) {
-		super(realm);
-		this.elementType = elementType;
-	}
-
-	/**
-	 * 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 calculate and stores the result in cachedList.
-	 * </p>
-	 * 
-	 * <p>
-	 * The IChangeListener stores each observable in the dependencies list. This
-	 * is registered as the listener when calling ObservableTracker, to detect
-	 * every observable 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() {
-			cachedList = calculate();
-			if (cachedList == null)
-				cachedList = Collections.EMPTY_LIST;
-		}
-
-		public void handleStale(StaleEvent event) {
-			if (!dirty)
-				makeStale();
-		}
-
-		public void handleChange(ChangeEvent event) {
-			makeDirty();
-		}
-	}
-
-	private PrivateInterface privateInterface = new PrivateInterface();
-
-	private Object elementType;
-
-	protected int doGetSize() {
-		return doGetList().size();
-	}
-
-	public Object get(int index) {
-		getterCalled();
-		return doGetList().get(index);
-	}
-
-	private final List getList() {
-		getterCalled();
-		return doGetList();
-	}
-
-	final List doGetList() {
-		if (dirty) {
-			// This line will do the following:
-			// - Run the calculate method
-			// - While doing so, add any observable that is touched to the
-			// dependencies list
-			IObservable[] newDependencies = ObservableTracker.runAndMonitor(
-					privateInterface, privateInterface, null);
-
-			// If any dependencies are stale, a stale event will be fired here
-			// even if we were already stale before recomputing. This is in case
-			// clients assume that a list change is indicative of non-staleness.
-			stale = false;
-			for (int i = 0; i < newDependencies.length; i++) {
-				if (newDependencies[i].isStale()) {
-					makeStale();
-					break;
-				}
-			}
-
-			if (!stale) {
-				for (int i = 0; i < newDependencies.length; i++) {
-					newDependencies[i].addStaleListener(privateInterface);
-				}
-			}
-
-			dependencies = newDependencies;
-
-			dirty = false;
-		}
-
-		return cachedList;
-	}
-
-	private void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	/**
-	 * Subclasses must override this method to calculate the list contents.
-	 * 
-	 * @return the object's list.
-	 */
-	protected abstract List calculate();
-
-	private void makeDirty() {
-		if (!dirty) {
-			dirty = true;
-
-			makeStale();
-
-			stopListening();
-
-			// copy the old list
-			final List oldList = new ArrayList(cachedList);
-			// Fire the "dirty" event. This implementation recomputes the new
-			// list lazily.
-			fireListChange(new ListDiff() {
-				ListDiffEntry[] differences;
-
-				public ListDiffEntry[] getDifferences() {
-					if (differences == null)
-						differences = Diffs.computeListDiff(oldList, getList())
-								.getDifferences();
-					return differences;
-				}
-			});
-		}
-	}
-
-	private void stopListening() {
-		if (dependencies != null) {
-			for (int i = 0; i < dependencies.length; i++) {
-				IObservable observable = dependencies[i];
-
-				observable.removeChangeListener(privateInterface);
-				observable.removeStaleListener(privateInterface);
-			}
-			dependencies = null;
-		}
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	public boolean isStale() {
-		// recalculate list if dirty, to ensure staleness is correct.
-		getList();
-		return stale;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		super.addChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		computeListForListeners();
-	}
-
-	public synchronized void addListChangeListener(IListChangeListener listener) {
-		super.addListChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		computeListForListeners();
-	}
-
-	private void computeListForListeners() {
-		// Some clients just add a listener and expect to get notified even if
-		// they never called getValue(), so we have to call getValue() ourselves
-		// here to be sure. Need to be careful about realms though, this method
-		// can be called outside of our realm.
-		// See also bug 198211. If a client calls this outside of our realm,
-		// they may receive change notifications before the runnable below has
-		// been executed. It is their job to figure out what to do with those
-		// notifications.
-		getRealm().exec(new Runnable() {
-			public void run() {
-				if (dependencies == null) {
-					// We are not currently listening.
-					// But someone is listening for changes. Call getValue()
-					// to make sure we start listening to the observables we
-					// depend on.
-					getList();
-				}
-			}
-		});
-	}
-
-	public synchronized void dispose() {
-		stopListening();
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/IListChangeListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/IListChangeListener.java
deleted file mode 100644
index 8372729..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/IListChangeListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for changes to observable lists.
- * 
- * @since 1.0
- */
-public interface IListChangeListener extends IObservablesListener {
-
-	/**
-	 * Handle a change to an observable list. The change is described by the
-	 * diff object. The given event object must only be used locally in this
-	 * method because it may be reused for other change notifications. The diff
-	 * object referenced by the event is immutable and may be used non-locally.
-	 * 
-	 * @param event
-	 */
-	void handleListChange(ListChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/IObservableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/IObservableList.java
deleted file mode 100644
index 097d367..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/IObservableList.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 167204
- *     Matthew Hall - bug 208858
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-
-/**
- * A list whose changes can be tracked by list change listeners.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- *              Clients should instead subclass one of the framework 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.
- * 
- * @see AbstractObservableList
- * @see ObservableList
- * 
- * @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[]);
-
-	/**
-	 * 
-	 */
-    public boolean add(Object o);
-
-	/**
-	 * 
-	 */
-    public boolean remove(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean containsAll(Collection c);
-
-	/**
-	 * 
-	 */
-    public boolean addAll(Collection c);
-
-	/**
-	 * 
-	 */
-    public boolean addAll(int index, Collection c);
-
-	/**
-	 * 
-	 */
-    public boolean removeAll(Collection c);
-
-	/**
-	 *
-	 */
-    public boolean retainAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean equals(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public int hashCode();
-
-	/**
-	 * @TrackedGetter
-	 */
-    public Object get(int index);
-
-	/**
-	 * 
-	 */
-    public Object set(int index, Object element);
-
-	/**
-	 * Moves the element located at <code>oldIndex</code> to
-	 * <code>newIndex</code>. This method is equivalent to calling
-	 * <code>add(newIndex, remove(oldIndex))</code>.
-	 * <p>
-	 * Implementors should deliver list change notification for the remove and
-	 * add operations in the same ListChangeEvent, as this allows
-	 * {@link ListDiff#accept(ListDiffVisitor)} to recognize the operation as a
-	 * move.
-	 * 
-	 * @param oldIndex
-	 *            the element's position before the move. Must be within the
-	 *            range <code>0 &lt;= oldIndex &lt; size()</code>.
-	 * @param newIndex
-	 *            the element's position after the move. Must be within the
-	 *            range <code>0 &lt;= newIndex &lt; size()</code>.
-	 * @return the element that was moved.
-	 * @throws IndexOutOfBoundsException
-	 *             if either argument is out of range (<code>0 &lt;= index &lt; size()</code>).
-	 * @see ListDiffVisitor#handleMove(int, int, Object)
-	 * @see ListDiff#accept(ListDiffVisitor)
-	 * @since 1.1
-	 */
-	public Object move(int oldIndex, int newIndex);
-
-	/**
-	 * 
-	 */
-    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 or <code>null</code> if untyped
-	 */
-	Object getElementType();
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
deleted file mode 100644
index 1b2ce4d..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * List change event describing an incremental change of an
- * {@link IObservableList} object.
- * 
- * @since 1.0
- */
-public class ListChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -9154315534258776672L;
-
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable list. Listeners must
-	 * not change this field.
-	 */
-	public ListDiff diff;
-
-	/**
-	 * Creates a new list change event.
-	 * 
-	 * @param source
-	 *            the source observable list
-	 * @param diff
-	 *            the list change
-	 */
-	public ListChangeEvent(IObservableList source, ListDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * Returns the observable list from which this event originated.
-	 * 
-	 * @return the observable list from which this event originated
-	 */
-	public IObservableList getObservableList() {
-		return (IObservableList) getSource();
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IListChangeListener) listener).handleListChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiff.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiff.java
deleted file mode 100644
index df98632..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiff.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208858
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * Object describing a diff between two lists.
- * 
- * @since 1.0
- */
-public abstract class ListDiff {
-
-	/**
-	 * Returns a ListDiffEntry array representing the differences in the list,
-	 * in the order they are to be processed.
-	 * 
-	 * @return a ListDiffEntry array representing the differences in the list,
-	 *         in the order they are to be processed.
-	 */
-	public abstract ListDiffEntry[] getDifferences();
-
-	/**
-	 * Traverses the {@link #getDifferences()} array, calling the appropriate
-	 * method in <code>visitor</code> for each difference.
-	 * <ol>
-	 * <li>{@link ListDiffVisitor#handleReplace(int, Object, Object)} is called
-	 * whenever a remove entry is immediately followed by an add entry which
-	 * shares the same list index.
-	 * <li>{@link ListDiffVisitor#handleMove(int, int, Object)} is called
-	 * whenever a remove entry is immediately followed by an add entry with an
-	 * equivalent element.
-	 * <li>{@link ListDiffVisitor#handleRemove(int, Object)} is called whenever
-	 * a remove entry does not match conditions 1 or 2.
-	 * <li>{@link ListDiffVisitor#handleAdd(int, Object)} is called whenever an
-	 * add entry does not match conditions in 1 or 2.
-	 * </ol>
-	 * 
-	 * @param visitor
-	 *            the visitor to receive callbacks.
-	 * @see ListDiffVisitor
-	 * @since 1.1
-	 */
-	public void accept(ListDiffVisitor visitor) {
-		ListDiffEntry[] differences = getDifferences();
-		for (int i = 0; i < differences.length; i++) {
-			ListDiffEntry entry = differences[i];
-			int position = entry.getPosition();
-			Object element = entry.getElement();
-			boolean addition = entry.isAddition();
-
-			if (!addition && i + 1 < differences.length) {
-				ListDiffEntry entry2 = differences[i + 1];
-				if (entry2.isAddition()) {
-					int position2 = entry2.getPosition();
-					Object element2 = entry2.getElement();
-					if (position == position2) {
-						visitor.handleReplace(position, element, element2);
-						i++;
-						continue;
-					}
-					if (Util.equals(element, element2)) {
-						visitor.handleMove(position, position2, element);
-						i++;
-						continue;
-					}
-				}
-			}
-			if (addition)
-				visitor.handleAdd(position, element);
-			else
-				visitor.handleRemove(position, element);
-		}
-	}
-
-	/**
-	 * @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.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiffEntry.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiffEntry.java
deleted file mode 100644
index da2e79f..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/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.core.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.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiffVisitor.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiffVisitor.java
deleted file mode 100644
index e2d1389..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListDiffVisitor.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208858)
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.List;
-
-/**
- * A visitor for processing differences in a ListDiff.
- * 
- * @see ListDiff#accept(ListDiffVisitor)
- * @since 1.1
- */
-public abstract class ListDiffVisitor {
-	/**
-	 * Notifies the visitor that <code>element</code> was added to the list at
-	 * position <code>index</code>.
-	 * 
-	 * @param index
-	 *            the index where the element was added
-	 * @param element
-	 *            the element that was added
-	 */
-	public abstract void handleAdd(int index, Object element);
-
-	/**
-	 * Notifies the visitor that <code>element</code> was removed from the
-	 * list at position <code>index</code>.
-	 * 
-	 * @param index
-	 *            the index where the element was removed
-	 * @param element
-	 *            the element that was removed
-	 */
-	public abstract void handleRemove(int index, Object element);
-
-	/**
-	 * Notifies the visitor that <code>element</code> was moved in the list
-	 * from position <code>oldIndex</code> to position <code>newIndex</code>.
-	 * <p>
-	 * The default implementation of this method calls
-	 * {@link #handleRemove(int, Object)} with the old position, then
-	 * {@link #handleAdd(int, Object)} with the new position. Clients which are
-	 * interested in recognizing "moves" in a list (i.e. calls to
-	 * {@link IObservableList#move(int, int)}) should override this method.
-	 * 
-	 * @param oldIndex
-	 *            the index that the element was moved from.
-	 * @param newIndex
-	 *            the index that the element was moved to.
-	 * @param element
-	 *            the element that was moved
-	 * @see IObservableList#move(int, int)
-	 */
-	public void handleMove(int oldIndex, int newIndex, Object element) {
-		handleRemove(oldIndex, element);
-		handleAdd(newIndex, element);
-	}
-
-	/**
-	 * Notifies the visitor that <code>oldElement</code>, located at position
-	 * <code>index</code> in the list, was replaced by <code>newElement</code>.
-	 * <p>
-	 * The default implementation of this method calls
-	 * {@link #handleRemove(int, Object)} with the old element, then
-	 * {@link #handleAdd(int, Object)} with the new element. Clients which are
-	 * interested in recognizing "replaces" in a list (i.e. calls to
-	 * {@link List#set(int, Object)}) should override this method.
-	 * 
-	 * @param index
-	 *            the index where the element was replaced.
-	 * @param oldElement
-	 *            the element being replaced.
-	 * @param newElement
-	 *            the element that replaced oldElement.
-	 * @see List#set(int, Object)
-	 */
-	public void handleReplace(int index, Object oldElement, Object newElement) {
-		handleRemove(index, oldElement);
-		handleAdd(index, newElement);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ObservableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ObservableList.java
deleted file mode 100644
index 0a6123b..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ObservableList.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 167204
- *     Matthew Hall - bug 208858
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * Abstract implementation of {@link IObservableList}, based on an underlying regular list. 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- * 
- */
-public abstract class ObservableList extends AbstractObservable implements
-		IObservableList {
-
-	protected List wrappedList;
-
-	/**
-	 * Stale state of the list.  Access must occur in the current realm.
-	 */
-	private boolean stale = false;
-
-	private Object elementType;
-
-	protected ObservableList(List wrappedList, Object elementType) {
-		this(Realm.getDefault(), wrappedList, elementType);
-	}
-
-	protected ObservableList(Realm realm, List wrappedList, Object elementType) {
-		super(realm);
-		this.wrappedList = wrappedList;
-		this.elementType = elementType;
-	}
-
-	public synchronized void addListChangeListener(IListChangeListener listener) {
-		addListener(ListChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeListChangeListener(IListChangeListener listener) {
-		removeListener(ListChangeEvent.TYPE, listener);
-	}
-
-	protected void fireListChange(ListDiff diff) {
-		// fire general change event first
-		super.fireChange();
-		fireEvent(new ListChangeEvent(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() {
-		getterCalled();
-		final Iterator wrappedIterator = wrappedList.iterator();
-		return new Iterator() {
-
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				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) {
-    	getterCalled();
-		final ListIterator wrappedIterator = wrappedList.listIterator(index);
-		return new ListIterator() {
-
-			public int nextIndex() {
-				return wrappedIterator.nextIndex();
-			}
-
-			public int previousIndex() {
-				return wrappedIterator.previousIndex();
-			}
-
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public boolean hasPrevious() {
-				return wrappedIterator.hasPrevious();
-			}
-
-			public Object next() {
-				return wrappedIterator.next();
-			}
-
-			public Object previous() {
-				return wrappedIterator.previous();
-			}
-
-			public void add(Object o) {
-				throw new UnsupportedOperationException();
-			}
-
-			public void set(Object o) {
-				throw new UnsupportedOperationException();
-			}
-		};
-    }
-
-
-    public List subList(final int fromIndex, final int toIndex) {
-    	getterCalled();
-    	if (fromIndex < 0 || fromIndex > toIndex || toIndex > size()) {
-			throw new IndexOutOfBoundsException();
-		}
-    	return new AbstractObservableList(getRealm()) {
-		
-			public Object getElementType() {
-				return ObservableList.this.getElementType();
-			}
-		
-			public Object get(int location) {
-				return ObservableList.this.get(fromIndex + location);
-			}
-		
-			protected int doGetSize() {
-				return toIndex - fromIndex;
-			}
-		};
-    }
-
-	protected void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-    public Object set(int index, Object element) {
-    	throw new UnsupportedOperationException();
-    }
-
-	/**
-	 * Moves the element located at <code>oldIndex</code> to
-	 * <code>newIndex</code>. This method is equivalent to calling
-	 * <code>add(newIndex, remove(oldIndex))</code>.
-	 * <p>
-	 * Subclasses should override this method to deliver list change
-	 * notification for the remove and add operations in the same
-	 * ListChangeEvent, as this allows {@link ListDiff#accept(ListDiffVisitor)}
-	 * to recognize the operation as a move.
-	 * 
-	 * @param oldIndex
-	 *            the element's position before the move. Must be within the
-	 *            range <code>0 &lt;= oldIndex &lt; size()</code>.
-	 * @param newIndex
-	 *            the element's position after the move. Must be within the
-	 *            range <code>0 &lt;= newIndex &lt; size()</code>.
-	 * @return the element that was moved.
-	 * @throws IndexOutOfBoundsException
-	 *             if either argument is out of range (<code>0 &lt;= index &lt; size()</code>).
-	 * @see ListDiffVisitor#handleMove(int, int, Object)
-	 * @see ListDiff#accept(ListDiffVisitor)
-	 * @since 1.1
-	 */
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		int size = wrappedList.size();
-		if (oldIndex < 0 || oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex < 0 || newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		Object element = remove(oldIndex);
-		add(newIndex, element);
-		return element;
-	}
-
-    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();
-	}
-
-	/**
-	 * Returns the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @return stale state
-	 */
-	public boolean isStale() {
-		getterCalled();
-		return stale;
-	}
-
-	/**
-	 * Sets the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @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) {
-		checkRealm();
-
-		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 synchronized void dispose() {
-		super.dispose();
-	}
-	
-	public Object getElementType() {
-		return elementType;
-	}
-
-	protected void updateWrappedList(List newList) {
-		List oldList = wrappedList;
-		ListDiff listDiff = Diffs.computeListDiff(oldList, newList);
-		wrappedList = newList;
-		fireListChange(listDiff);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/WritableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/WritableList.java
deleted file mode 100644
index ca0c750..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/WritableList.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 167204
- *     Gautam Saggar - bug 169529
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 208858, 213145
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Mutable observable list backed by an ArrayList.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- */
-public class WritableList extends ObservableList {
-
-	/**
-	 * Creates an empty writable list in the default realm with a
-	 * <code>null</code> element type.
-	 * 
-	 */
-	public WritableList() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * Creates an empty writable list with a <code>null</code> element type.
-	 * 
-	 * @param realm
-	 */
-	public WritableList(Realm realm) {
-		this(realm, new ArrayList(), null);
-	}
-
-	/**
-	 * Constructs a new instance with the default realm.
-	 * 
-	 * @param toWrap
-	 * @param elementType
-	 *            can be <code>null</code>
-	 */
-	public WritableList(List toWrap, Object elementType) {
-		this(Realm.getDefault(), toWrap, elementType);
-	}
-
-	/**
-	 * Creates a writable list containing elements of the given type, wrapping
-	 * an existing client-supplied list.
-	 * 
-	 * @param realm
-	 * @param toWrap
-	 *            The java.utilList to wrap
-	 * @param elementType
-	 *            can be <code>null</code>
-	 */
-	public WritableList(Realm realm, List toWrap, Object elementType) {
-		super(realm, toWrap, elementType);
-	}
-
-	public Object set(int index, Object element) {
-		checkRealm();
-		Object oldElement = wrappedList.set(index, element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement), Diffs.createListDiffEntry(index, true,
-				element)));
-		return oldElement;
-	}
-
-	/**
-	 * @since 1.1
-	 */
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		int size = wrappedList.size();
-		if (oldIndex < 0 || oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex < 0 || newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (oldIndex == newIndex)
-			return wrappedList.get(oldIndex);
-		Object element = wrappedList.remove(oldIndex);
-		wrappedList.add(newIndex, element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(oldIndex,
-				false, element), Diffs.createListDiffEntry(newIndex, true,
-				element)));
-		return element;
-	}
-
-	public Object remove(int index) {
-		checkRealm();
-		Object oldElement = wrappedList.remove(index);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement)));
-		return oldElement;
-	}
-
-	public boolean add(Object element) {
-		checkRealm();
-		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) {
-		checkRealm();
-		wrappedList.add(index, element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				true, element)));
-	}
-
-	public boolean addAll(Collection c) {
-		checkRealm();
-		ListDiffEntry[] entries = new ListDiffEntry[c.size()];
-		int i = 0;
-		int addIndex = wrappedList.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) {
-		checkRealm();
-		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) {
-		checkRealm();
-		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) {
-		checkRealm();
-		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, false,
-						element));
-			}
-		}
-		if (entries.size() > 0)
-			fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-					.toArray(new ListDiffEntry[entries.size()])));
-		return entries.size() > 0;
-	}
-
-	public boolean retainAll(Collection c) {
-		checkRealm();
-		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++;
-			}
-		}
-		if (entries.size() > 0)
-			fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-					.toArray(new ListDiffEntry[entries.size()])));
-		return entries.size() > 0;
-	}
-
-	public void clear() {
-		checkRealm();
-		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));
-			it.remove();
-		}
-		fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-				.toArray(new ListDiffEntry[entries.size()])));
-	}
-
-	/**
-	 * @param elementType
-	 *            can be <code>null</code>
-	 * @return new list with the default realm.
-	 */
-	public static WritableList withElementType(Object elementType) {
-		return new WritableList(Realm.getDefault(), new ArrayList(),
-				elementType);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/package.html b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/package.html
deleted file mode 100644
index 2c2f1db..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes for observing changes in lists.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes for observing changes in lists.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/AbstractObservableMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/AbstractObservableMap.java
deleted file mode 100644
index b82d105..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/AbstractObservableMap.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.AbstractMap;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.ChangeSupport;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.AssertionFailedException;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- */
-public abstract class AbstractObservableMap extends AbstractMap implements
-		IObservableMap {
-
-	private ChangeSupport changeSupport;
-
-	private boolean stale;
-
-	/**
-	 */
-	public AbstractObservableMap() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * 
-	 */
-	protected void lastListenerRemoved() {
-	}
-
-	/**
-	 * 
-	 */
-	protected void firstListenerAdded() {
-	}
-
-	/**
-	 * @param realm
-	 */
-	public AbstractObservableMap(Realm realm) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		changeSupport = new ChangeSupport(realm){
-			protected void firstListenerAdded() {
-				AbstractObservableMap.this.firstListenerAdded();
-			}
-			protected void lastListenerRemoved() {
-				AbstractObservableMap.this.lastListenerRemoved();
-			}
-		};
-	}
-
-	public synchronized void addMapChangeListener(IMapChangeListener listener) {
-		changeSupport.addListener(MapChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeMapChangeListener(IMapChangeListener listener) {
-		changeSupport.removeListener(MapChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		changeSupport.addChangeListener(listener);
-	}
-
-	public synchronized void addStaleListener(IStaleListener listener) {
-		changeSupport.addStaleListener(listener);
-	}
-
-	public synchronized void dispose() {
-		changeSupport.dispose();
-		changeSupport = null;
-	}
-
-	public Realm getRealm() {
-		return changeSupport.getRealm();
-	}
-
-	public boolean isStale() {
-		checkRealm();
-		return stale;
-	}
-
-	public synchronized void removeChangeListener(IChangeListener listener) {
-		changeSupport.removeChangeListener(listener);
-	}
-
-	public synchronized void removeStaleListener(IStaleListener listener) {
-		changeSupport.removeStaleListener(listener);
-	}
-
-	/**
-	 * Sets the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @param stale
-	 */
-	public void setStale(boolean stale) {
-		checkRealm();
-		this.stale = stale;
-		if (stale) {
-			fireStale();
-		}
-	}
-
-	/**
-	 * Fires stale events.  Must be invoked from current realm.
-	 */
-	protected void fireStale() {
-		checkRealm();
-		changeSupport.fireEvent(new StaleEvent(this));
-	}
-
-	/**
-	 * Fires change events.  Must be invoked from current realm.
-	 */
-	protected void fireChange() {
-		checkRealm();
-		changeSupport.fireEvent(new ChangeEvent(this));
-	}
-
-	/**
-	 * Fires map change events.  Must be invoked from current realm.
-	 * 
-	 * @param diff
-	 */
-	protected void fireMapChange(MapDiff diff) {
-		checkRealm();
-		changeSupport.fireEvent(new MapChangeEvent(this, diff));
-	}
-
-	/**
-	 * Asserts that the realm is the current realm.
-	 * 
-	 * @see Realm#isCurrent()
-	 * @throws AssertionFailedException
-	 *             if the realm is not the current realm
-	 */
-	protected void checkRealm() {
-		Assert.isTrue(getRealm().isCurrent(),
-				"This operation must be run within the observable's realm"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/BidirectionalMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/BidirectionalMap.java
deleted file mode 100644
index c83f6ee..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/BidirectionalMap.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.map;
-
-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.core.databinding.observable.Realm;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- * 
- */
-public class BidirectionalMap extends ObservableMap {
-
-	private Map valueToElements = new HashMap();
-
-	private IMapChangeListener mapListener = new IMapChangeListener() {
-
-		public void handleMapChange(MapChangeEvent event) {
-			MapDiff diff = event.diff;
-			for (Iterator it = diff.getAddedKeys().iterator(); it.hasNext();) {
-				Object addedKey = it.next();
-				addMapping(addedKey, diff.getNewValue(addedKey));
-			}
-			for (Iterator it = diff.getChangedKeys().iterator(); it.hasNext();) {
-				Object changedKey = it.next();
-				removeMapping(changedKey, diff.getOldValue(changedKey));
-				addMapping(changedKey, diff.getNewValue(changedKey));
-			}
-			for (Iterator it = diff.getRemovedKeys().iterator(); it.hasNext();) {
-				Object removedKey = it.next();
-				removeMapping(removedKey, diff.getOldValue(removedKey));
-			}
-			fireMapChange(diff);
-		}
-	};
-
-	/**
-	 * @param wrappedMap
-	 */
-	public BidirectionalMap(IObservableMap wrappedMap) {
-		super(wrappedMap.getRealm(), wrappedMap);
-		wrappedMap.addMapChangeListener(mapListener);
-		for (Iterator it = wrappedMap.entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Entry) it.next();
-			addMapping(entry.getKey(), entry.getValue());
-		}
-	}
-
-	/**
-	 * @param key
-	 * @param value
-	 */
-	private void addMapping(Object key, Object value) {
-		Object elementOrSet = valueToElements.get(value);
-		if (elementOrSet == null) {
-			valueToElements.put(value, key);
-			return;
-		}
-		if (!(elementOrSet instanceof Set)) {
-			elementOrSet = new HashSet(Collections.singleton(elementOrSet));
-			valueToElements.put(value, elementOrSet);
-		}
-		Set set = (Set) elementOrSet;
-		set.add(key);
-	}
-
-	/**
-	 * @param functionValue
-	 * @param element
-	 */
-	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);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/CompositeMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/CompositeMap.java
deleted file mode 100644
index 8f3bbb6..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/CompositeMap.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.map;
-
-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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A read-only observable map formed by the composition of two observable maps.
- * If map1 maps keys a:A to values b1:B, and map2 maps keys b2:B to values c:C,
- * the composite map maps keys a:A to values c:C. For example, map1 could map
- * Order objects to their corresponding Customer objects, and map2 could map
- * Customer objects to their "last name" property of type String. The composite
- * map of map1 and map2 would then map Order objects to their customers' last
- * names.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.1
- * 
- */
-public class CompositeMap extends ObservableMap {
-
-	private Map valueToElements = new HashMap();
-
-	// adds that need to go through the second map and thus will be picked up by
-	// secondMapListener.
-	private Set pendingAdds = new HashSet();
-
-	// Removes that need to go through the second map and thus will be picked up
-	// by
-	// secondMapListener. Maps from value being removed to key being removed.
-	private Map pendingRemoves = new HashMap();
-
-	// Changes that need to go through the second map and thus will be picked up
-	// by
-	// secondMapListener. Maps from old value to new value and new value to old
-	// value.
-	private Map pendingChanges = new HashMap();
-
-	private IMapChangeListener firstMapListener = new IMapChangeListener() {
-
-		public void handleMapChange(MapChangeEvent event) {
-			MapDiff diff = event.diff;
-			Set rangeSetAdditions = new HashSet();
-			Set rangeSetRemovals = new HashSet();
-			final Set adds = new HashSet();
-			final Set changes = new HashSet();
-			final Set removes = new HashSet();
-			final Map oldValues = new HashMap();
-
-			for (Iterator it = diff.getAddedKeys().iterator(); it.hasNext();) {
-				Object addedKey = it.next();
-				Object newValue = diff.getNewValue(addedKey);
-				addMapping(addedKey, newValue);
-				if (!rangeSet.contains(newValue)) {
-					pendingAdds.add(newValue);
-					rangeSetAdditions.add(newValue);
-				} else {
-					adds.add(addedKey);
-					wrappedMap.put(addedKey, secondMap.get(newValue));
-				}
-			}
-			for (Iterator it = diff.getChangedKeys().iterator(); it.hasNext();) {
-				Object changedKey = it.next();
-				Object oldValue = diff.getOldValue(changedKey);
-				Object newValue = diff.getNewValue(changedKey);
-				boolean removed = removeMapping(changedKey, oldValue);
-				addMapping(changedKey, newValue);
-				boolean added = !rangeSet.contains(newValue);
-				if (removed) {
-					pendingRemoves.put(oldValue, changedKey);
-					rangeSetRemovals.add(oldValue);
-				}
-				if (added) {
-					pendingAdds.add(newValue);
-					rangeSetAdditions.add(newValue);
-				}
-				if (added || removed) {
-					pendingChanges.put(oldValue, newValue);
-					pendingChanges.put(newValue, oldValue);
-				} else {
-					changes.add(changedKey);
-					oldValues.put(changedKey, oldValue);
-					wrappedMap.put(changedKey, secondMap.get(newValue));
-				}
-			}
-			for (Iterator it = diff.getRemovedKeys().iterator(); it.hasNext();) {
-				Object removedKey = it.next();
-				Object oldValue = diff.getOldValue(removedKey);
-				if (removeMapping(removedKey, oldValue)) {
-					pendingRemoves.put(oldValue, removedKey);
-					rangeSetRemovals.add(oldValue);
-				} else {
-					removes.add(removedKey);
-					oldValues.put(removedKey, secondMap.get(oldValue));
-					wrappedMap.remove(removedKey);
-				}
-			}
-
-			if (adds.size() > 0 || removes.size() > 0 || changes.size() > 0) {
-				fireMapChange(new MapDiff() {
-
-					public Set getAddedKeys() {
-						return adds;
-					}
-
-					public Set getChangedKeys() {
-						return changes;
-					}
-
-					public Object getNewValue(Object key) {
-						return wrappedMap.get(key);
-					}
-
-					public Object getOldValue(Object key) {
-						return oldValues.get(key);
-					}
-
-					public Set getRemovedKeys() {
-						return removes;
-					}
-				});
-			}
-
-			if (rangeSetAdditions.size() > 0 || rangeSetRemovals.size() > 0) {
-				rangeSet.addAndRemove(rangeSetAdditions, rangeSetRemovals);
-			}
-		}
-	};
-
-	private IMapChangeListener secondMapListener = new IMapChangeListener() {
-
-		public void handleMapChange(MapChangeEvent event) {
-			MapDiff diff = event.diff;
-			final Set adds = new HashSet();
-			final Set changes = new HashSet();
-			final Set removes = new HashSet();
-			final Map oldValues = new HashMap();
-			final Map newValues = new HashMap();
-			Set addedKeys = new HashSet(diff.getAddedKeys());
-			Set removedKeys = new HashSet(diff.getRemovedKeys());
-
-			for (Iterator it = addedKeys.iterator(); it.hasNext();) {
-				Object addedKey = it.next();
-				Set elements = getElementsForValue(addedKey);
-				Object newValue = diff.getNewValue(addedKey);
-				if (pendingChanges.containsKey(addedKey)) {
-					Object oldKey = pendingChanges.remove(addedKey);
-					Object oldValue;
-					if (removedKeys.remove(oldKey)) {
-						oldValue = diff.getOldValue(oldKey);
-					} else {
-						oldValue = secondMap.get(oldKey);
-					}
-					pendingChanges.remove(oldKey);
-					pendingAdds.remove(addedKey);
-					pendingRemoves.remove(oldKey);
-					for (Iterator it2 = elements.iterator(); it2.hasNext();) {
-						Object element = it2.next();
-						changes.add(element);
-						oldValues.put(element, oldValue);
-						newValues.put(element, newValue);
-						wrappedMap.put(element, newValue);
-					}
-				} else if (pendingAdds.remove(addedKey)) {
-					for (Iterator it2 = elements.iterator(); it2.hasNext();) {
-						Object element = it2.next();
-						adds.add(element);
-						newValues.put(element, newValue);
-						wrappedMap.put(element, newValue);
-					}
-				} else {
-					Assert.isTrue(false, "unexpected case"); //$NON-NLS-1$
-				}
-			}
-			for (Iterator it = diff.getChangedKeys().iterator(); it.hasNext();) {
-				Object changedKey = it.next();
-				Set elements = getElementsForValue(changedKey);
-				for (Iterator it2 = elements.iterator(); it2.hasNext();) {
-					Object element = it2.next();
-					changes.add(element);
-					oldValues.put(element, diff.getOldValue(changedKey));
-					Object newValue = diff.getNewValue(changedKey);
-					newValues.put(element, newValue);
-					wrappedMap.put(element, newValue);
-				}
-			}
-			for (Iterator it = removedKeys.iterator(); it.hasNext();) {
-				Object removedKey = it.next();
-				Object element = pendingRemoves.remove(removedKey);
-				if (element != null) {
-					if (pendingChanges.containsKey(removedKey)) {
-						Object newKey = pendingChanges.remove(removedKey);
-						pendingChanges.remove(newKey);
-						pendingAdds.remove(newKey);
-						pendingRemoves.remove(removedKey);
-						changes.add(element);
-						oldValues.put(element, diff.getOldValue(removedKey));
-						Object newValue = secondMap.get(newKey);
-						newValues.put(element, newValue);
-						wrappedMap.put(element, newValue);
-					} else {
-						removes.add(element);
-						Object oldValue = diff.getOldValue(removedKey);
-						oldValues.put(element, oldValue);
-						wrappedMap.remove(element);
-					}
-				} else {
-					Assert.isTrue(false, "unexpected case"); //$NON-NLS-1$
-				}
-			}
-
-			if (adds.size() > 0 || removes.size() > 0 || changes.size() > 0) {
-				fireMapChange(new MapDiff() {
-
-					public Set getAddedKeys() {
-						return adds;
-					}
-
-					public Set getChangedKeys() {
-						return changes;
-					}
-
-					public Object getNewValue(Object key) {
-						return newValues.get(key);
-					}
-
-					public Object getOldValue(Object key) {
-						return oldValues.get(key);
-					}
-
-					public Set getRemovedKeys() {
-						return removes;
-					}
-				});
-			}
-		}
-	};
-
-	private IObservableMap firstMap;
-	private IObservableMap secondMap;
-
-	private static class WritableSetPlus extends WritableSet {
-		void addAndRemove(Set additions, Set removals) {
-			wrappedSet.removeAll(removals);
-			wrappedSet.addAll(additions);
-			fireSetChange(Diffs.createSetDiff(additions, removals));
-		}
-	}
-
-	private WritableSetPlus rangeSet = new WritableSetPlus();
-
-	/**
-	 * Creates a new composite map. Because the key set of the second map is
-	 * determined by the value set of the given observable map
-	 * <code>firstMap</code>, it cannot be passed in as an argument. Instead,
-	 * the second map will be created by calling
-	 * <code>secondMapFactory.createObservable(valueSet())</code>.
-	 * 
-	 * @param firstMap
-	 *            the first map
-	 * @param secondMapFactory
-	 *            a factory that creates the second map when given an observable
-	 *            set representing the value set of <code>firstMap</code>.
-	 */
-	public CompositeMap(IObservableMap firstMap,
-			IObservableFactory secondMapFactory) {
-		super(firstMap.getRealm(), new HashMap());
-		this.firstMap = firstMap;
-		firstMap.addMapChangeListener(firstMapListener);
-		for (Iterator it = firstMap.entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Entry) it.next();
-			addMapping(entry.getKey(), entry.getValue());
-			rangeSet.add(entry.getValue());
-		}
-		this.secondMap = (IObservableMap) secondMapFactory
-				.createObservable(rangeSet);
-		secondMap.addMapChangeListener(secondMapListener);
-		for (Iterator it = firstMap.entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Entry) it.next();
-			wrappedMap.put(entry.getKey(), secondMap.get(entry.getValue()));
-		}
-	}
-
-	/**
-	 * @param key
-	 * @param value
-	 */
-	private void addMapping(Object key, Object value) {
-		Object elementOrSet = valueToElements.get(value);
-		if (elementOrSet == null) {
-			valueToElements.put(value, key);
-			return;
-		}
-		if (!(elementOrSet instanceof Set)) {
-			elementOrSet = new HashSet(Collections.singleton(elementOrSet));
-			valueToElements.put(value, elementOrSet);
-		}
-		Set set = (Set) elementOrSet;
-		set.add(key);
-	}
-
-	/**
-	 * @param key
-	 * @param value
-	 */
-	private boolean removeMapping(Object key, Object value) {
-		Object elementOrSet = valueToElements.get(value);
-		if (elementOrSet instanceof Set) {
-			Set set = (Set) elementOrSet;
-			set.remove(key);
-			if (set.size() == 0) {
-				valueToElements.remove(value);
-				return true;
-			}
-			return false;
-		}
-		valueToElements.remove(value);
-		return true;
-	}
-
-	private Set getElementsForValue(Object value) {
-		Object elementOrSet = valueToElements.get(value);
-		if (elementOrSet instanceof Set) {
-			return (Set) elementOrSet;
-		}
-		return elementOrSet == null ? Collections.EMPTY_SET : Collections
-				.singleton(elementOrSet);
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-		firstMap.removeMapChangeListener(firstMapListener);
-		firstMap = null;
-		secondMap = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/ComputedObservableMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/ComputedObservableMap.java
deleted file mode 100644
index f743892..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/ComputedObservableMap.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.AbstractSet;
-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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-
-/**
- * Maps objects to one of their attributes. Tracks changes to the underlying
- * observable set of objects (keys), as well as changes to attribute values.
- */
-public abstract class ComputedObservableMap extends AbstractObservableMap {
-
-	private final IObservableSet keySet;
-
-	private ISetChangeListener setChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			Set addedKeys = new HashSet(event.diff.getAdditions());
-			Set removedKeys = new HashSet(event.diff.getRemovals());
-			Map oldValues = new HashMap();
-			Map newValues = new HashMap();
-			for (Iterator it = removedKeys.iterator(); it.hasNext();) {
-				Object removedKey = it.next();
-				Object oldValue = doGet(removedKey);
-				unhookListener(removedKey);
-				if (oldValue != null) {
-					oldValues.put(removedKey, oldValue);
-				}
-			}
-			for (Iterator it = addedKeys.iterator(); it.hasNext();) {
-				Object addedKey = it.next();
-				hookListener(addedKey);
-				Object newValue = doGet(addedKey);
-				newValues.put(addedKey, newValue);
-			}
-			fireMapChange(Diffs.createMapDiff(addedKeys, removedKeys,
-					Collections.EMPTY_SET, oldValues, newValues));
-		}
-	};
-
-	private Set entrySet = new EntrySet();
-
-	private class EntrySet extends AbstractSet {
-
-		public Iterator iterator() {
-			final Iterator keyIterator = keySet.iterator();
-			return new Iterator() {
-
-				public boolean hasNext() {
-					return keyIterator.hasNext();
-				}
-
-				public Object next() {
-					final Object key = keyIterator.next();
-					return new Map.Entry() {
-
-						public Object getKey() {
-							return key;
-						}
-
-						public Object getValue() {
-							return get(getKey());
-						}
-
-						public Object setValue(Object value) {
-							return put(getKey(), value);
-						}
-					};
-				}
-
-				public void remove() {
-					keyIterator.remove();
-				}
-			};
-		}
-
-		public int size() {
-			return keySet.size();
-		}
-
-	}
-
-	/**
-	 * @param keySet
-	 */
-	public ComputedObservableMap(IObservableSet keySet) {
-		super(keySet.getRealm());
-		this.keySet = keySet;
-		this.keySet.addSetChangeListener(setChangeListener);
-	}
-
-	protected void init() {
-		for (Iterator it = this.keySet.iterator(); it.hasNext();) {
-			Object key = it.next();
-			hookListener(key);
-		}
-	}
-
-	protected final void fireSingleChange(Object key, Object oldValue,
-			Object newValue) {
-		fireMapChange(Diffs.createMapDiffSingleChange(key, oldValue, newValue));
-	}
-
-	public Set entrySet() {
-		return entrySet;
-	}
-	
-	public Set keySet() {
-		return keySet;
-	}
-
-	final public Object get(Object key) {
-		return doGet(key);
-	}
-
-	final public Object put(Object key, Object value) {
-		return doPut(key, value);
-	}
-
-	/**
-	 * @param removedKey
-	 */
-	protected abstract void unhookListener(Object removedKey);
-
-	/**
-	 * @param addedKey
-	 */
-	protected abstract void hookListener(Object addedKey);
-
-	/**
-	 * @param key
-	 * @return the value for the given key
-	 */
-	protected abstract Object doGet(Object key);
-
-	/**
-	 * @param key
-	 * @param value
-	 * @return the old value for the given key
-	 */
-	protected abstract Object doPut(Object key, Object value);
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/IMapChangeListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/IMapChangeListener.java
deleted file mode 100644
index 3bc829e..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/IMapChangeListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for changes to observable maps.
- * 
- * @since 1.0
- * 
- */
-public interface IMapChangeListener extends IObservablesListener {
-
-	/**
-	 * Handle a change an observable map. The given event object must only be
-	 * used locally in this method because it may be reused for other change
-	 * notifications. The diff object referenced by the event is immutable and
-	 * may be used non-locally.
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	void handleMapChange(MapChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/IObservableMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/IObservableMap.java
deleted file mode 100644
index 78a0db0..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/IObservableMap.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Observable Map.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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.
- *              
- * @see AbstractObservableMap
- * @see ObservableMap
- * 
- * @since 1.1
- */
-public interface IObservableMap extends Map, IObservable {
-	
-	/**
-	 * @param listener
-	 */
-	public void addMapChangeListener(IMapChangeListener listener);
-
-	/**
-	 * @param listener
-	 */
-	public void removeMapChangeListener(IMapChangeListener listener);
-	
-	/**
-	 * @TrackedGetter
-	 */
-	public int size();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public boolean isEmpty();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public boolean containsKey(Object key);
-
-	/**
-	 * @TrackedGetter
-	 */
-	public boolean containsValue(Object value);
-
-	/**
-	 * @TrackedGetter
-	 */
-	public Object get(Object key);
-
-	/**
-	 * 
-	 */
-	public Object put(Object key, Object value);
-
-	/**
-	 * 
-	 */
-	public Object remove(Object key);
-
-	/**
-	 * @TrackedGetter
-	 */
-	public Set keySet();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public Collection values();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public Set entrySet();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public boolean equals(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-	public int hashCode();
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
deleted file mode 100644
index 90bfef9..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * Map change event describing an incremental change of an
- * {@link IObservableMap} object.
- * 
- * @since 1.0
- * 
- */
-public class MapChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -8092347212410548463L;
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable map. Listeners must
-	 * not change this field.
-	 */
-	public MapDiff diff;
-
-	/**
-	 * Creates a new map change event
-	 * 
-	 * @param source
-	 *            the source observable map
-	 * @param diff
-	 *            the map change
-	 */
-	public MapChangeEvent(IObservableMap source, MapDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * Returns the observable map from which this event originated.
-	 * 
-	 * @return the observable map from which this event originated
-	 */
-	public IObservableMap getObservableMap() {
-		return (IObservableMap) getSource();
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IMapChangeListener) listener).handleMapChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapDiff.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapDiff.java
deleted file mode 100644
index f54c37c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapDiff.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.Set;
-
-/**
- * @since 1.1
- * 
- */
-public abstract class MapDiff {
-
-	/**
-	 * @return the set of keys which were added
-	 */
-	public abstract Set getAddedKeys();
-
-	/**
-	 * @return the set of keys which were removed
-	 */
-	public abstract Set getRemovedKeys();
-
-	/**
-	 * @return the set of keys for which the value has changed
-	 */
-	public abstract Set getChangedKeys();
-
-	/**
-	 * Returns the old value for the given key, which must be an element of
-	 * {@link #getRemovedKeys()} or {@link #getChangedKeys()}.
-	 * 
-	 * @param key
-	 * @return the old value for the given key.
-	 */
-	public abstract Object getOldValue(Object key);
-
-	/**
-	 * Returns the new value for the given key, which must be an element of
-	 * {@link #getChangedKeys()} or {@link #getAddedKeys()}.
-	 * 
-	 * @param key
-	 * @return the new value for the given key.
-	 */
-	public abstract Object getNewValue(Object key);
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/ObservableMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/ObservableMap.java
deleted file mode 100644
index 59883b1..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/ObservableMap.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- */
-public class ObservableMap extends AbstractObservable implements IObservableMap {
-
-	protected Map wrappedMap;
-
-	private boolean stale = false;
-	
-	/**
-	 * @param wrappedMap
-	 */
-	public ObservableMap(Map wrappedMap) {
-		this(Realm.getDefault(), wrappedMap);
-	}
-
-	/**
-	 * @param realm 
-	 * @param wrappedMap
-	 */
-	public ObservableMap(Realm realm, Map wrappedMap) {
-		super(realm);
-		this.wrappedMap = wrappedMap;
-	}
-	
-	public synchronized void addMapChangeListener(IMapChangeListener listener) {
-		addListener(MapChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeMapChangeListener(IMapChangeListener listener) {
-		removeListener(MapChangeEvent.TYPE, listener);
-	}
-
-	protected void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	protected void fireMapChange(MapDiff diff) {
-		checkRealm();
-		
-		// fire general change event first
-		super.fireChange();
-
-		fireEvent(new MapChangeEvent(this, diff));
-	}
-
-	public boolean containsKey(Object key) {
-		getterCalled();
-		return wrappedMap.containsKey(key);
-	}
-
-	public boolean containsValue(Object value) {
-		getterCalled();
-		return wrappedMap.containsValue(value);
-	}
-
-	public Set entrySet() {
-		getterCalled();
-		return wrappedMap.entrySet();
-	}
-
-	public Object get(Object key) {
-		getterCalled();
-		return wrappedMap.get(key);
-	}
-
-	public boolean isEmpty() {
-		getterCalled();
-		return wrappedMap.isEmpty();
-	}
-
-	public Set keySet() {
-		getterCalled();
-		return wrappedMap.keySet();
-	}
-
-	public int size() {
-		getterCalled();
-		return wrappedMap.size();
-	}
-
-	public Collection values() {
-		getterCalled();
-		return wrappedMap.values();
-	}
-
-	/**
-	 * Returns the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @return stale state
-	 */
-	public boolean isStale() {
-		checkRealm();
-		return stale;
-	}
-
-	/**
-	 * Sets the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @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) {
-		checkRealm();
-		boolean wasStale = this.stale;
-		this.stale = stale;
-		if (!wasStale && stale) {
-			fireStale();
-		}
-	}
-
-	public Object put(Object key, Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Object remove(Object key) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void putAll(Map arg0) {
-		throw new UnsupportedOperationException();
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/WritableMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/WritableMap.java
deleted file mode 100644
index 4e53422..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/WritableMap.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 184830
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- */
-public class WritableMap extends ObservableMap {
-
-	/**
-	 * Constructs a new WritableMap on the default realm.
-	 */
-	public WritableMap() {
-		this(Realm.getDefault());
-	}
-	
-	/**
-	 * Constructs a new WritableMap on the given realm.
-	 * 
-	 * @param realm
-	 *            the realm
-	 */
-	public WritableMap(Realm realm) {
-		super(realm, new HashMap());
-	}
-
-	/**
-	 * Associates the provided <code>value</code> with the <code>key</code>.  Must be invoked from the current realm.
-	 */
-	public Object put(Object key, Object value) {
-		checkRealm();
-		Object result = wrappedMap.put(key, value);
-		if (!Util.equals(result, value)) {
-			if (result==null) {
-				fireMapChange(Diffs.createMapDiffSingleAdd(key, value));
-			} else {
-				fireMapChange(Diffs.createMapDiffSingleChange(key, result,
-						value));
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Removes the value with the provide <code>key</code>.  Must be invoked from the current realm.
-	 */
-	public Object remove(Object key) {
-		checkRealm();
-		Object result = wrappedMap.remove(key);
-		if (result!=null) {
-			fireMapChange(Diffs.createMapDiffSingleRemove(key, result));
-		}
-		return result;
-	}
-
-	/**
-	 * Clears the map.  Must be invoked from the current realm.
-	 */
-	public void clear() {
-		checkRealm();
-		if (!isEmpty()) {
-			Map copy = new HashMap(wrappedMap);
-			wrappedMap.clear();
-			fireMapChange(Diffs.createMapDiffRemoveAll(copy));
-		}
-	}
-
-	/**
-	 * Adds the provided <code>map</code>'s contents to this map.  Must be invoked from the current realm.
-	 */
-	public void putAll(Map map) {
-		checkRealm();
-		Set addedKeys = new HashSet(map.size());
-		Map changes = new HashMap(map.size());
-		for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Entry) it.next();
-			Object previousValue = wrappedMap.put(entry.getKey(), entry.getValue());
-			if (previousValue==null) {
-				addedKeys.add(entry.getKey());
-			} else {
-				changes.put(entry.getKey(), previousValue);
-			}
-		}
-		if (!addedKeys.isEmpty() || !changes.isEmpty()) {
-			fireMapChange(Diffs.createMapDiff(addedKeys, Collections.EMPTY_SET, changes.keySet(), changes, wrappedMap));
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/package.html b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/package.html
deleted file mode 100644
index 22107ea..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that can be used to observe changes in maps.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe changes in maps.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/IObservableFactory.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/IObservableFactory.java
deleted file mode 100644
index e113f14..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/IObservableFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.masterdetail;
-
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Generates an {@link IObservable} when passed a target instance.
- * 
- * @since 1.0
- */
-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.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/MasterDetailObservables.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/MasterDetailObservables.java
deleted file mode 100644
index 77832e3..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/MasterDetailObservables.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 221704
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.masterdetail;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableList;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableMap;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableValue;
-
-/**
- * Allows for the observation of an attribute, the detail, of an observable
- * representing selection or another transient instance, the master.
- * 
- * @since 1.0
- */
-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 and can be <code>null</code>
-	 * @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 detailValue(IObservableValue master,
-			IObservableFactory detailFactory, Object detailType) {
-		return new DetailObservableValue(master, detailFactory, 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 and can be <code>null</code>
-	 * @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 detailList(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 and can be <code>null</code>
-	 * @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 detailSet(IObservableValue master,
-			IObservableFactory detailFactory, Object detailElementType) {
-		return new DetailObservableSet(detailFactory, master, detailElementType);
-	}
-
-	/**
-	 * Creates a detail observable map from a master observable value and a
-	 * factory. This can be used to create observable maps that represent a map
-	 * property of a selected object in a table.
-	 * 
-	 * @param master
-	 *            the observable value to track
-	 * @param detailFactory
-	 *            a factory for createing {@link IObservableMap} instances given
-	 *            a current value of the master
-	 * @return an observable map that, for any current value of the given master
-	 *         value, behaves like the observable map created by the factory for
-	 *         that current value.
-	 * @since 1.1
-	 */
-	public static IObservableMap detailMap(IObservableValue master,
-			IObservableFactory detailFactory) {
-		return new DetailObservableMap(detailFactory, master);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/package.html b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/package.html
deleted file mode 100644
index 07b72e5..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/masterdetail/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 classes that can be used to observe a detail of a master object.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe a detail of a master object.  
-A common use case for master detail is observing the detail (e.g. name) of a master (e.g. selected Person) of a list of elements.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/package.html b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/package.html
deleted file mode 100644
index 0739c1c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the core APIs for observing changes in objects.
-<h2>
-Package Specification</h2>
-<p>
-This package provides the core APIs for observing changes in objects.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/AbstractObservableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/AbstractObservableSet.java
deleted file mode 100644
index 5c9d0b7..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/AbstractObservableSet.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.ChangeSupport;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * Abstract implementation of {@link IObservableSet}.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- */
-public abstract class AbstractObservableSet extends AbstractObservable implements
-		IObservableSet {
-
-	private ChangeSupport changeSupport;
-
-	private boolean stale = false;
-
-	protected AbstractObservableSet() {
-		this(Realm.getDefault());
-	}
-	
-	protected void firstListenerAdded() {
-		super.firstListenerAdded();
-	}
-
-	protected void lastListenerRemoved() {
-		super.lastListenerRemoved();
-	}
-	
-	protected AbstractObservableSet(Realm realm) {
-		super(realm);
-		changeSupport = new ChangeSupport(realm){
-			protected void firstListenerAdded() {
-				AbstractObservableSet.this.firstListenerAdded();
-			}
-			protected void lastListenerRemoved() {
-				AbstractObservableSet.this.lastListenerRemoved();
-			}
-		};
-	}
-	
-	public synchronized void addSetChangeListener(ISetChangeListener listener) {
-		changeSupport.addListener(SetChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeSetChangeListener(ISetChangeListener listener) {
-		changeSupport.removeListener(SetChangeEvent.TYPE, listener);
-	}
-
-	protected abstract Set getWrappedSet();
-	
-	protected void fireSetChange(SetDiff diff) {
-		// fire general change event first
-		super.fireChange();
-
-		changeSupport.fireEvent(new SetChangeEvent(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() {
-		getterCalled();
-		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() {
-		getterCalled();
-		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) {
-		checkRealm();
-		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 synchronized void dispose() {
-		super.dispose();
-		
-		if (changeSupport != null) {
-			changeSupport.dispose();
-			changeSupport = null;
-		}
-	}
-	
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/IObservableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/IObservableSet.java
deleted file mode 100644
index 0efecf6..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/IObservableSet.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-
-/**
- * A set whose changes can be tracked by set change listeners.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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.
- * 
- * @see AbstractObservableSet
- * @see ObservableSet
- * 
- * @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 or <code>null</code> if untyped
-	 */
-	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.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ISetChangeListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ISetChangeListener.java
deleted file mode 100644
index 51c429a..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ISetChangeListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for changes to observable sets.
- * 
- * @since 1.0
- * 
- */
-public interface ISetChangeListener extends IObservablesListener {
-
-	/**
-	 * Handle a change to an observable set. The given event object must only be
-	 * used locally in this method because it may be reused for other change
-	 * notifications. The diff object referenced by the event is immutable and
-	 * may be used non-locally.
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	void handleSetChange(SetChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ListToSetAdapter.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ListToSetAdapter.java
deleted file mode 100644
index e145fb3..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ListToSetAdapter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-
-/**
- * Observable set backed by an observable list. The wrapped list must not
- * contain duplicate elements.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public class ListToSetAdapter extends ObservableSet {
-
-	private final IObservableList list;
-
-	private IListChangeListener listener = new IListChangeListener() {
-
-		public void handleListChange(ListChangeEvent event) {
-			Set added = new HashSet();
-			Set removed = new HashSet();
-			ListDiffEntry[] differences = event.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(list.getRealm(), new HashSet(), list.getElementType());
-		this.list = list;
-		wrappedSet.addAll(list);
-		this.list.addListChangeListener(listener);
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-		if (list != null && listener != null) {
-			list.removeListChangeListener(listener);
-			listener = null;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/MappedSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/MappedSet.java
deleted file mode 100644
index c51c0c5..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/MappedSet.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public class MappedSet extends ObservableSet {
-
-	private final IObservableMap wrappedMap;
-
-	/*
-	 * Map from values (range elements) to Integer ref counts
-	 */
-	private Map valueCounts = new HashMap();
-
-	private ISetChangeListener domainListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			Set additions = new HashSet();
-			for (Iterator it = event.diff.getAdditions().iterator(); it.hasNext();) {
-				Object added = it.next();
-				Object mapValue = wrappedMap.get(added);
-				if (handleAddition(mapValue)) {
-					additions.add(mapValue);
-				}
-			}
-			Set removals = new HashSet();
-			for (Iterator it = event.diff.getRemovals().iterator(); it.hasNext();) {
-				Object removed = it.next();
-				Object mapValue = wrappedMap.get(removed);
-				if (handleRemoval(mapValue)) {
-					removals.add(mapValue);
-				}
-			}
-			fireSetChange(Diffs.createSetDiff(additions, removals));
-		}
-	};
-
-	private IMapChangeListener mapChangeListener = new IMapChangeListener() {
-		public void handleMapChange(MapChangeEvent event) {
-			MapDiff diff = event.diff;
-			Set additions = new HashSet();
-			Set removals = new HashSet();
-			for (Iterator it = diff.getRemovedKeys().iterator(); it.hasNext();) {
-				Object key = it.next();
-				Object oldValue = diff.getOldValue(key);
-				if (handleRemoval(oldValue)) {
-					removals.add(oldValue);
-				}
-			}
-			for (Iterator it = diff.getChangedKeys().iterator(); it.hasNext();) {
-				Object key = it.next();
-				Object oldValue = diff.getOldValue(key);
-				Object newValue = diff.getNewValue(key);
-				if (handleRemoval(oldValue)) {
-					removals.add(oldValue);
-				}
-				if (handleAddition(newValue)) {
-					additions.add(newValue);
-				}
-			}
-			for (Iterator it = diff.getAddedKeys().iterator(); it.hasNext();) {
-				Object key = it.next();
-				Object newValue = diff.getNewValue(key);
-				if (handleAddition(newValue)) {
-					additions.add(newValue);
-				}
-			}
-			fireSetChange(Diffs.createSetDiff(additions, removals));
-		}
-	};
-
-	private IObservableSet input;
-
-	/**
-	 * @param input
-	 * @param map
-	 */
-	public MappedSet(IObservableSet input, IObservableMap map) {
-		super(input.getRealm(), Collections.EMPTY_SET, Object.class);
-		setWrappedSet(valueCounts.keySet());
-		this.wrappedMap = map;
-		this.input = input;
-		for (Iterator it = input.iterator(); it.hasNext();) {
-			Object element = it.next();
-			Object functionValue = wrappedMap.get(element);
-			handleAddition(functionValue);
-		}
-		input.addSetChangeListener(domainListener);
-		map.addMapChangeListener(mapChangeListener);
-	}
-
-	/**
-	 * @param mapValue
-	 * @return true if the given mapValue was an addition
-	 */
-	protected boolean handleAddition(Object mapValue) {
-		Integer count = (Integer) valueCounts.get(mapValue);
-		if (count == null) {
-			valueCounts.put(mapValue, new Integer(1));
-			return true;
-		}
-		valueCounts.put(mapValue, new Integer(count.intValue() + 1));
-		return false;
-	}
-
-	/**
-	 * @param mapValue
-	 * @return true if the given mapValue has been removed
-	 */
-	protected boolean handleRemoval(Object mapValue) {
-		Integer count = (Integer) valueCounts.get(mapValue);
-		if (count.intValue() <= 1) {
-			valueCounts.remove(mapValue);
-			return true;
-		}
-		valueCounts.put(mapValue, new Integer(count.intValue() - 1));
-		return false;
-	}
-
-	public synchronized void dispose() {
-		wrappedMap.removeMapChangeListener(mapChangeListener);
-		input.removeSetChangeListener(domainListener);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ObservableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ObservableSet.java
deleted file mode 100644
index 721df8c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/ObservableSet.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * Abstract implementation of {@link IObservableSet}. 
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public abstract class ObservableSet extends AbstractObservable implements
-		IObservableSet {
-
-	protected Set wrappedSet;
-
-	private boolean stale = false;
-
-	protected Object elementType;
-
-	protected ObservableSet(Set wrappedSet, Object elementType) {
-		this(Realm.getDefault(), wrappedSet, elementType);
-	}
-
-	protected ObservableSet(Realm realm, Set wrappedSet, Object elementType) {
-		super(realm);
-		this.wrappedSet = wrappedSet;
-		this.elementType = elementType;
-	}
-	
-	public synchronized void addSetChangeListener(ISetChangeListener listener) {
-		addListener(SetChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeSetChangeListener(ISetChangeListener listener) {
-		removeListener(SetChangeEvent.TYPE, listener);
-	}
-
-	protected void fireSetChange(SetDiff diff) {
-		// fire general change event first
-		super.fireChange();
-
-		fireEvent(new SetChangeEvent(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() {
-		getterCalled();
-		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() {
-		getterCalled();
-		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) {
-		checkRealm();
-		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 synchronized void dispose() {
-		super.dispose();
-	}
-	
-	public Object getElementType() {
-		return elementType;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
deleted file mode 100644
index 4873885..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * List change event describing an incremental change of an
- * {@link IObservableSet} object.
- * 
- * @since 1.0
- * 
- */
-public class SetChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 7436547103857482256L;
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable set. Listeners must
-	 * not change this field.
-	 */
-	public SetDiff diff;
-
-	/**
-	 * Creates a new set change event.
-	 * 
-	 * @param source
-	 *            the source observable set
-	 * @param diff
-	 *            the set change
-	 */
-	public SetChangeEvent(IObservableSet source, SetDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * Returns the observable set from which this event originated.
-	 * 
-	 * @return the observable set from which this event originated
-	 */
-	public IObservableSet getObservableSet() {
-		return (IObservableSet) getSource();
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((ISetChangeListener) listener).handleSetChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetDiff.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetDiff.java
deleted file mode 100644
index d1a2f13..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetDiff.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.Set;
-
-/**
- * @since 1.0
- *
- */
-public abstract class SetDiff {
-	
-	/**
-	 * @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.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/UnionSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/UnionSet.java
deleted file mode 100644
index 768c62d..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/UnionSet.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.internal.databinding.observable.IStalenessConsumer;
-import org.eclipse.core.internal.databinding.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.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @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(childSets[0].getRealm(), null, childSets[0].getElementType());
-		System.arraycopy(childSets, 0, this.childSets = new IObservableSet[childSets.length], 0, childSets.length);
-		this.stalenessTracker = new StalenessTracker(childSets,
-				stalenessConsumer);
-	}
-
-	private ISetChangeListener childSetChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			processAddsAndRemoves(event.diff.getAdditions(), event.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() {
-		getterCalled();
-		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.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/WritableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/WritableSet.java
deleted file mode 100644
index 52ded9d..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/WritableSet.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 221351
- *******************************************************************************/
-
-package org.eclipse.core.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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Mutable (writable) implementation of {@link IObservableSet}.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- */
-public class WritableSet extends ObservableSet {
-
-	/**
-	 * Constructs a new empty instance in the default realm with a
-	 * <code>null</code> element type.
-	 * 
-	 */
-	public WritableSet() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * Constructs a new instance in the default realm containing the
-	 * elements of the given collection. Changes to the given collection after
-	 * calling this method do not affect the contents of the created WritableSet.
-	 * 
-	 * @param c
-	 * @param elementType
-	 *            can be <code>null</code>
-	 */
-	public WritableSet(Collection c, Object elementType) {
-		this(Realm.getDefault(), new HashSet(c), elementType);
-	}
-
-	/**
-	 * Constructs a new empty instance in the given realm and a
-	 * <code>null</code> element type.
-	 * 
-	 * @param realm
-	 */
-	public WritableSet(Realm realm) {
-		this(realm, new HashSet(), null);
-	}
-
-	/**
-	 * Constructs a new instance in the default realm with the given element
-	 * type, containing the elements of the given collection. Changes to the
-	 * given collection after calling this method do not affect the contents of
-	 * the created WritableSet.
-	 * 
-	 * @param realm
-	 * @param c
-	 * @param elementType
-	 *            can be <code>null</code>
-	 */
-	public WritableSet(Realm realm, Collection c, Object elementType) {
-		super(realm, new HashSet(c), elementType);
-		this.elementType = elementType;
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		boolean added = wrappedSet.add(o);
-		if (added) {
-			fireSetChange(Diffs.createSetDiff(Collections.singleton(o), Collections.EMPTY_SET));
-		}
-		return added;
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		Set additions = new HashSet();
-		Iterator it = c.iterator();
-		while (it.hasNext()) {
-			Object element = it.next();
-			if (wrappedSet.add(element)) {
-				additions.add(element);
-			}
-		}
-		if (additions.size() > 0) {
-			fireSetChange(Diffs.createSetDiff(additions, Collections.EMPTY_SET));
-			return true;
-		}
-		return false;
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		boolean removed = wrappedSet.remove(o);
-		if (removed) {
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, Collections
-					.singleton(o)));
-		}
-		return removed;
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		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) {
-		getterCalled();
-		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() {
-		getterCalled();
-		Set removes = new HashSet(wrappedSet);
-		wrappedSet.clear();
-		fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removes));
-	}
-
-	/**
-	 * @param elementType can be <code>null</code>
-	 * @return new instance with the default realm
-	 */
-	public static WritableSet withElementType(Object elementType) {
-		return new WritableSet(Realm.getDefault(), new HashSet(), elementType);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/package.html b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/package.html
deleted file mode 100644
index 5a57448..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that can be used to observe changes in sets.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe changes in sets.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
deleted file mode 100644
index 1c61589..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- * 
- */
-abstract public class AbstractObservableValue extends AbstractObservable implements IObservableValue {
-	/**
-	 * Constructs a new instance with the default realm.
-	 */
-	public AbstractObservableValue() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * @param realm
-	 */
-	public AbstractObservableValue(Realm realm) {
-		super(realm);
-	}
-
-	public synchronized void addValueChangeListener(IValueChangeListener listener) {
-		addListener(ValueChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeValueChangeListener(IValueChangeListener listener) {
-		removeListener(ValueChangeEvent.TYPE, listener);
-	}
-
-	final public void setValue(Object value) {
-		checkRealm();
-		doSetValue(value);
-	}
-
-	/**
-	 * Template method for setting the value of the observable. By default the
-	 * method throws an {@link UnsupportedOperationException}.
-	 * 
-	 * @param value
-	 */
-	protected void doSetValue(Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	protected void fireValueChange(ValueDiff diff) {
-		// fire general change event first
-		super.fireChange();
-		fireEvent(new ValueChangeEvent(this, diff));
-	}
-
-	public final Object getValue() {
-		getterCalled();
-		return doGetValue();
-	}
-
-	abstract protected Object doGetValue();
-
-	public boolean isStale() {
-		getterCalled();
-		return false;
-	}
-
-	private void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	protected void fireChange() {
-		throw new RuntimeException(
-				"fireChange should not be called, use fireValueChange() instead"); //$NON-NLS-1$
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractVetoableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractVetoableValue.java
deleted file mode 100644
index d3cff74..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractVetoableValue.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- * 
- */
-public abstract class AbstractVetoableValue extends AbstractObservableValue
-		implements IVetoableValue {
-
-	/**
-	 * Creates a new vetoable value.
-	 */
-	public AbstractVetoableValue() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * @param realm
-	 */
-	public AbstractVetoableValue(Realm realm) {
-		super(realm);
-	}
-
-	final protected void doSetValue(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$
-		}
-		doSetApprovedValue(value);
-		
-		if (!Util.equals(diff.getOldValue(), diff.getNewValue())) {
-			fireValueChange(diff);
-		}
-	}
-
-	/**
-	 * Sets the value. Invoked after performing veto checks.  Should not fire change events.
-	 * 
-	 * @param value
-	 */
-	protected abstract void doSetApprovedValue(Object value);
-
-	public synchronized void addValueChangingListener(
-			IValueChangingListener listener) {
-		addListener(ValueChangingEvent.TYPE, listener);
-	}
-
-	public synchronized void removeValueChangingListener(
-			IValueChangingListener listener) {
-		removeListener(ValueChangingEvent.TYPE, listener);
-	}
-
-	/**
-	 * 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) {
-		checkRealm();
-
-		ValueChangingEvent event = new ValueChangingEvent(this, diff);
-		fireEvent(event);
-		return !event.veto;
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ChangeVetoException.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ChangeVetoException.java
deleted file mode 100644
index 3c9261f..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/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.core.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.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ComputedValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ComputedValue.java
deleted file mode 100644
index 755063a..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ComputedValue.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 147515
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-
-/**
- * A Lazily calculated value that automatically computes and registers listeners
- * on its dependencies as long as all of its dependencies are IObservable
- * objects
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- */
-public abstract class ComputedValue extends AbstractObservableValue {
-
-	private boolean dirty = true;
-
-	private boolean stale = false;
-
-	private Object cachedValue = null;
-
-	/**
-	 * Array of observables this computed value depends on. This field has a
-	 * value of <code>null</code> if we are not currently listening.
-	 */
-	private IObservable[] dependencies = null;
-
-	/**
-	 * 
-	 */
-	public ComputedValue() {
-		this(Realm.getDefault(), null);
-	}
-
-	/**
-	 * @param valueType
-	 *            can be <code>null</code>
-	 */
-	public ComputedValue(Object valueType) {
-		this(Realm.getDefault(), valueType);
-	}
-
-	/**
-	 * @param realm
-	 * 
-	 */
-	public ComputedValue(Realm realm) {
-		this(realm, null);
-	}
-
-	/**
-	 * @param realm
-	 * @param valueType
-	 */
-	public ComputedValue(Realm realm, Object valueType) {
-		super(realm);
-		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 IChangeListener stores each observable in the dependencies list. This
-	 * is registered as the listener when calling ObservableTracker, to detect
-	 * every observable 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(StaleEvent event) {
-			if (!dirty && !stale) {
-				stale = true;
-				fireStale();
-			}
-		}
-
-		public void handleChange(ChangeEvent event) {
-			makeDirty();
-		}
-	}
-
-	private PrivateInterface privateInterface = new PrivateInterface();
-
-	private Object valueType;
-
-	protected final Object doGetValue() {
-		if (dirty) {
-			// This line will do the following:
-			// - Run the calculate method
-			// - While doing so, add any observable 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;
-
-			stopListening();
-
-			// 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();
-				}
-			});
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void stopListening() {
-		// Stop listening for dependency changes.
-		if (dependencies != null) {
-			for (int i = 0; i < dependencies.length; i++) {
-				IObservable observable = dependencies[i];
-
-				observable.removeChangeListener(privateInterface);
-				observable.removeStaleListener(privateInterface);
-			}
-			dependencies = null;
-		}
-	}
-
-	public boolean isStale() {
-		// we need to recompute, otherwise staleness wouldn't mean anything
-		getValue();
-		return stale;
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-
-	// this method exists here so that we can call it from the runnable below.
-	/**
-	 * @since 1.1
-	 */
-	protected boolean hasListeners() {
-		return super.hasListeners();
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		super.addChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		computeValueForListeners();
-	}
-
-	/**
-	 * Some clients just add a listener and expect to get notified even if they
-	 * never called getValue(), so we have to call getValue() ourselves here to
-	 * be sure. Need to be careful about realms though, this method can be
-	 * called outside of our realm. See also bug 198211. If a client calls this
-	 * outside of our realm, they may receive change notifications before the
-	 * runnable below has been executed. It is their job to figure out what to
-	 * do with those notifications.
-	 */
-	private void computeValueForListeners() {
-		getRealm().exec(new Runnable() {
-			public void run() {
-				if (dependencies == null) {
-					// We are not currently listening.
-					if (hasListeners()) {
-						// But someone is listening for changes. Call getValue()
-						// to make sure we start listening to the observables we
-						// depend on.
-						getValue();
-					}
-				}
-			}
-		});
-	}
-
-	public synchronized void addValueChangeListener(
-			IValueChangeListener listener) {
-		super.addValueChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		computeValueForListeners();
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-		stopListening();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IObservableValue.java
deleted file mode 100644
index 630b1c4..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IObservableValue.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * A value whose changes can be tracked by value change listeners.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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.
- * 
- * @see AbstractObservableValue
- * 
- * @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();
-
-	/**
-	 * Returns the value.  Must be invoked in the {@link Realm} of the observable.
-	 * 
-	 * @return the current value
-	 * @TrackedGetter
-	 */
-	public Object getValue();
-
-	/**
-	 * Sets the value.  Must be invoked in the {@link Realm} of the observable.
-	 * 
-	 * @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.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IValueChangeListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IValueChangeListener.java
deleted file mode 100644
index 7af5382..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IValueChangeListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for changes to observable values.
- * 
- * @since 1.0
- * 
- */
-public interface IValueChangeListener extends IObservablesListener {
-
-	/**
-	 * Handles a change to an observable value. The given event object must only
-	 * be used locally in this method because it may be reused for other change
-	 * notifications. The diff object referenced by the event is immutable and
-	 * may be used non-locally.
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	void handleValueChange(ValueChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IValueChangingListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IValueChangingListener.java
deleted file mode 100644
index ceb07b7..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IValueChangingListener.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for pre-change events for observable values.
- * 
- * @since 1.0
- * 
- */
-public interface IValueChangingListener extends IObservablesListener {
-
-	/**
-	 * This method is called when the value is about to change and provides an
-	 * opportunity to veto the change. The given event object must only be used
-	 * locally in this method because it may be reused for other change
-	 * notifications. The diff object referenced by the event is immutable and
-	 * may be used non-locally.
-	 * 
-	 * @param event
-	 */
-	public void handleValueChanging(ValueChangingEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IVetoableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IVetoableValue.java
deleted file mode 100644
index 1b795ed..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/IVetoableValue.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.value;
-
-/**
- * An observable value whose changes can be vetoed by listeners.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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.
- * 
- * @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.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
deleted file mode 100644
index 3d4fba9..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * Value change event describing a change of an {@link IObservableValue}
- * object's current value.
- * 
- * @since 1.0
- * 
- */
-public class ValueChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 2305345286999701156L;
-
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable value. Listeners must
-	 * not change this field.
-	 */
-	public ValueDiff diff;
-
-	/**
-	 * Creates a new value change event.
-	 * 
-	 * @param source
-	 *            the source observable value
-	 * @param diff
-	 *            the value change
-	 */
-	public ValueChangeEvent(IObservableValue source, ValueDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * Returns the observable value from which this event originated.
-	 * 
-	 * @return returns the observable value from which this event originated
-	 */
-	public IObservableValue getObservableValue() {
-		return (IObservableValue) source;
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IValueChangeListener) listener).handleValueChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
deleted file mode 100644
index f92cde7..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * Value changing event describing a pending change of an
- * {@link IObservableValue} object's current value. Listeners can veto the
- * pending change by setting {@link #veto} to <code>true</code>.
- * 
- * @since 1.0
- * 
- */
-public class ValueChangingEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 2305345286999701156L;
-
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable value. Listeners must
-	 * not change this field.
-	 */
-	public ValueDiff diff;
-
-	/**
-	 * Flag for vetoing this change. Default value is <code>false</code>, can
-	 * be set to <code>true</code> by listeners to veto this change.
-	 */
-	public boolean veto = false;
-
-	/**
-	 * Creates a new value changing event.
-	 * 
-	 * @param source
-	 *            the source observable value
-	 * @param diff
-	 *            the value change
-	 */
-	public ValueChangingEvent(IObservableValue source, ValueDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * @return the observable value from which this event originated
-	 */
-	public IObservableValue getObservableValue() {
-		return (IObservableValue) source;
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IValueChangingListener) listener).handleValueChanging(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueDiff.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueDiff.java
deleted file mode 100644
index 62a2f86..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueDiff.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.Diffs;
-
-/**
- * @since 1.0
- * 
- */
-public abstract class ValueDiff {
-	/**
-	 * 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.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/WritableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/WritableValue.java
deleted file mode 100644
index 5d794f1..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/WritableValue.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 158687
- *     Brad Reynolds - bug 164653, 147515
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Mutable (writable) implementation of {@link IObservableValue} that will maintain a value and fire
- * change events when the value changes.
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- */
-public class WritableValue extends AbstractObservableValue {
-
-	private final Object valueType;
-
-	/**
-	 * Constructs a new instance with the default realm, a <code>null</code>
-	 * value type, and a <code>null</code> value.
-	 */
-	public WritableValue() {
-		this(null, null);
-	}
-
-	/**
-	 * Constructs a new instance with the default realm.
-	 * 
-	 * @param initialValue
-	 *            can be <code>null</code>
-	 * @param valueType
-	 *            can be <code>null</code>
-	 */
-	public WritableValue(Object initialValue, Object valueType) {
-		this(Realm.getDefault(), initialValue, valueType);
-	}
-
-	/**
-	 * Constructs a new instance with the provided <code>realm</code>, a
-	 * <code>null</code> value type, and a <code>null</code> initial value.
-	 * 
-	 * @param realm
-	 */
-	public WritableValue(Realm realm) {
-		this(realm, null, null);
-	}
-
-	/**
-	 * Constructs a new instance.
-	 * 
-	 * @param realm
-	 * @param initialValue
-	 *            can be <code>null</code>
-	 * @param valueType
-	 *            can be <code>null</code>
-	 */
-	public WritableValue(Realm realm, Object initialValue, Object valueType) {
-		super(realm);
-		this.valueType = valueType;
-		this.value = initialValue;
-	}
-
-	private Object value = null;
-
-	public Object doGetValue() {
-		return value;
-	}
-
-	/**
-	 * @param value
-	 *            The value to set.
-	 */
-	public void doSetValue(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;
-	}
-
-	/**
-	 * @param elementType can be <code>null</code>
-	 * @return new instance with the default realm and a value of <code>null</code>
-	 */
-	public static WritableValue withValueType(Object elementType) {
-		return new WritableValue(Realm.getDefault(), null, elementType);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/package.html b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/package.html
deleted file mode 100644
index 4ce13df..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that can be used to observe changes in discrete values.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe changes in discrete values.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/ILogger.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/ILogger.java
deleted file mode 100644
index 652d719..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/ILogger.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     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.core.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 Policy#getLog()
- * @see 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.core.databinding.observable/src/org/eclipse/core/databinding/util/Policy.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/Policy.java
deleted file mode 100644
index 45467ba..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/Policy.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chris Gross (schtoo@schtoo.com) - support for ILogger added
- *       (bug 49497 [RCP] JFace dependency on org.eclipse.core.runtime enlarges standalone JFace applications)
- *     Brad Reynolds - bug 164653
- *     Tom Schindl <tom.schindl@bestsolution.at> - bug 194587
- *******************************************************************************/
-package org.eclipse.core.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.core.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.getPlugin() + " - " + status.getCode() + " - " + status.getMessage());  //$NON-NLS-1$//$NON-NLS-2$
-				if( status.getException() != null ) {
-					status.getException().printStackTrace(System.err);
-				}
-			}
-		};
-	}
-
-	/**
-	 * 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 synchronized 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 synchronized ILogger getLog() {
-		if (log == null) {
-			log = getDummyLog();
-		}
-		return log;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/package.html b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/package.html
deleted file mode 100644
index 0b186a7..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/util/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides general utilities for data binding.
-<h2>
-Package Specification</h2>
-<p>
-This package provides general utilities for data binding.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ConstantObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ConstantObservableValue.java
deleted file mode 100644
index f143efb..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ConstantObservableValue.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007-2008 Matt Carter and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matt Carter - initial API and implementation (bug 212518)
- *     Matthew Hall - bug 212518
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * An immutable {@link IObservableValue}.
- * 
- * @see WritableValue
- */
-public class ConstantObservableValue implements IObservableValue {
-	final Realm realm;
-	final Object value;
-	final Object type;
-
-	/**
-	 * Construct a constant value of the given type, in the default realm.
-	 * 
-	 * @param value
-	 *            immutable value
-	 * @param type
-	 *            type
-	 */
-	public ConstantObservableValue(Object value, Object type) {
-		this(Realm.getDefault(), value, type);
-	}
-
-	/**
-	 * Construct a constant value of the given type, in the given realm.
-	 * 
-	 * @param realm
-	 *            Realm
-	 * @param value
-	 *            immutable value
-	 * @param type
-	 *            type
-	 */
-	public ConstantObservableValue(Realm realm, Object value, Object type) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		this.realm = realm;
-		this.value = value;
-		this.type = type;
-	}
-
-	public Object getValueType() {
-		return type;
-	}
-
-	public Object getValue() {
-		ObservableTracker.getterCalled(this);
-		return value;
-	}
-
-	public void setValue(Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addValueChangeListener(IValueChangeListener listener) {
-		// ignore
-	}
-
-	public void removeValueChangeListener(IValueChangeListener listener) {
-		// ignore
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-		// ignore
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-		// ignore
-	}
-
-	public void dispose() {
-		// nothing to dispose
-	}
-
-	public Realm getRealm() {
-		return realm;
-	}
-
-	public boolean isStale() {
-		return false;
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		// ignore
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		// ignore
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/EmptyObservableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/EmptyObservableList.java
deleted file mode 100644
index 1b53b34..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/EmptyObservableList.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208858
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Singleton empty list
- */
-public class EmptyObservableList implements IObservableList {
-
-	private static final List emptyList = Collections.EMPTY_LIST;
-
-	private Realm realm;
-	private Object elementType;
-
-	/**
-	 * Creates an empty list. This list may be disposed multiple times
-	 * without any side-effects.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed list
-	 */
-	public EmptyObservableList(Realm realm) {
-		this(realm, null);
-	}
-
-	/**
-	 * Creates an empty list. This list may be disposed multiple times
-	 * without any side-effects.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed list
-	 * @param elementType
-	 *            the element type of the constructed list
-	 * @since 1.1
-	 */
-	public EmptyObservableList(Realm realm, Object elementType) {
-		this.realm = realm;
-		this.elementType = elementType;
-	}
-
-	public void addListChangeListener(IListChangeListener listener) {
-		// ignore
-	}
-
-	public void removeListChangeListener(IListChangeListener listener) {
-		// ignore
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public int size() {
-		checkRealm();
-		return 0;
-	}
-
-	void checkRealm() {
-		Assert.isTrue(realm.isCurrent(),
-				"Observable cannot be accessed outside its realm"); //$NON-NLS-1$
-	}
-
-	public boolean isEmpty() {
-		checkRealm();
-		return true;
-	}
-
-	public boolean contains(Object o) {
-		checkRealm();
-		return false;
-	}
-
-	public Iterator iterator() {
-		checkRealm();
-		return emptyList.iterator();
-	}
-
-	public Object[] toArray() {
-		checkRealm();
-		return emptyList.toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		return emptyList.toArray(a);
-	}
-
-	public boolean add(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean remove(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean containsAll(Collection c) {
-		checkRealm();
-		return c.isEmpty();
-	}
-
-	public boolean addAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean retainAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-	}
-
-	public boolean isStale() {
-		checkRealm();
-		return false;
-	}
-
-	public void dispose() {
-	}
-
-	public boolean addAll(int index, Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Object get(int index) {
-		return emptyList.get(index);
-	}
-
-	public int indexOf(Object o) {
-		return -1;
-	}
-
-	public int lastIndexOf(Object o) {
-		return -1;
-	}
-
-	public ListIterator listIterator() {
-		return emptyList.listIterator();
-	}
-
-	public ListIterator listIterator(int index) {
-		return emptyList.listIterator(index);
-	}
-
-	public Object remove(int index) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Object set(int index, Object element) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		throw new UnsupportedOperationException();
-	}
-
-	public List subList(int fromIndex, int toIndex) {
-		return emptyList.subList(fromIndex, toIndex);
-	}
-
-	public void add(int index, Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Realm getRealm() {
-		return realm;
-	}
-
-	public boolean equals(Object obj) {
-		checkRealm();
-		if (obj == this)
-			return true;
-		if (obj == null)
-			return false;
-		if (!(obj instanceof List))
-			return false;
-
-		return ((List) obj).isEmpty();
-	}
-
-	public int hashCode() {
-		checkRealm();
-		return 1;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/EmptyObservableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/EmptyObservableSet.java
deleted file mode 100644
index dab53c4..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/EmptyObservableSet.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Singleton empty set
- */
-public class EmptyObservableSet implements IObservableSet {
-
-	private static final Set emptySet = Collections.EMPTY_SET;
-
-	private Realm realm;
-	private Object elementType;
-
-	/**
-	 * Creates a singleton empty set. This set may be disposed multiple times
-	 * without any side-effects.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed set
-	 */
-	public EmptyObservableSet(Realm realm) {
-		this(realm, null);
-	}
-
-	/**
-	 * Creates a singleton empty set. This set may be disposed multiple times
-	 * without any side-effects.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed set
-	 * @param elementType
-	 *            the element type of the constructed set
-	 * @since 1.1
-	 */
-	public EmptyObservableSet(Realm realm, Object elementType) {
-		this.realm = realm;
-		this.elementType = elementType;
-	}
-
-	public void addSetChangeListener(ISetChangeListener listener) {
-	}
-
-	public void removeSetChangeListener(ISetChangeListener listener) {
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public int size() {
-		checkRealm();
-		return 0;
-	}
-
-	private void checkRealm() {
-		Assert.isTrue(realm.isCurrent(),
-				"Observable cannot be accessed outside its realm"); //$NON-NLS-1$
-	}
-
-	public boolean isEmpty() {
-		checkRealm();
-		return true;
-	}
-
-	public boolean contains(Object o) {
-		checkRealm();
-		return false;
-	}
-
-	public Iterator iterator() {
-		checkRealm();
-		return emptySet.iterator();
-	}
-
-	public Object[] toArray() {
-		checkRealm();
-		return emptySet.toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		return emptySet.toArray(a);
-	}
-
-	public boolean add(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean remove(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean containsAll(Collection c) {
-		checkRealm();
-		return c.isEmpty();
-	}
-
-	public boolean addAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean retainAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-	}
-
-	public boolean isStale() {
-		checkRealm();
-		return false;
-	}
-
-	public void dispose() {
-	}
-
-	public Realm getRealm() {
-		return realm;
-	}
-
-	public boolean equals(Object obj) {
-		checkRealm();
-		if (obj == this)
-			return true;
-		if (obj == null)
-			return false;
-		if (!(obj instanceof Set))
-			return false;
-
-		return ((Set) obj).isEmpty();
-	}
-
-	public int hashCode() {
-		checkRealm();
-		return 0;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/IStalenessConsumer.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/IStalenessConsumer.java
deleted file mode 100644
index cfe5c61..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/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.core.internal.databinding.observable;
-
-/**
- * @since 1.0
- * 
- */
-public interface IStalenessConsumer {
-	/**
-	 * @param stale
-	 * 
-	 */
-	public void setStale(boolean stale);
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/MapEntryObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/MapEntryObservableValue.java
deleted file mode 100644
index 3340eb6..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/MapEntryObservableValue.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Marko Topolnik and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Marko Topolnik - initial API and implementation (bug 184830)
- *     Matthew Hall - bug 184830
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * An {@link IObservableValue} that tracks the value of an entry in an
- * {@link IObservableMap}, identified by the entry's key.
- * 
- * @since 1.1
- */
-public class MapEntryObservableValue extends AbstractObservableValue {
-	private IObservableMap map;
-	private Object key;
-	private Object valueType;
-
-	private IMapChangeListener changeListener = new IMapChangeListener() {
-		public void handleMapChange(final MapChangeEvent event) {
-			if (event.diff.getAddedKeys().contains(key)) {
-				final Object newValue = event.diff.getNewValue(key);
-				if (newValue != null) {
-					fireValueChange(Diffs.createValueDiff(null, newValue));
-				}
-			} else if (event.diff.getChangedKeys().contains(key)) {
-				fireValueChange(Diffs.createValueDiff(event.diff
-						.getOldValue(key), event.diff.getNewValue(key)));
-			} else if (event.diff.getRemovedKeys().contains(key)) {
-				final Object oldValue = event.diff.getOldValue(key);
-				if (oldValue != null) {
-					fireValueChange(Diffs.createValueDiff(oldValue, null));
-				}
-			}
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	/**
-	 * Creates a map entry observable.
-	 * 
-	 * @param map
-	 *            the observable map whose entry will be tracked
-	 * @param key
-	 *            the key identifying the entry whose value will be tracked
-	 * @param valueType
-	 *            the type of the value
-	 */
-	public MapEntryObservableValue(IObservableMap map, Object key,
-			Object valueType) {
-		super(map.getRealm());
-		this.map = map;
-		this.key = key;
-		this.valueType = valueType;
-
-		map.addMapChangeListener(changeListener);
-		map.addStaleListener(staleListener);
-	}
-
-	public Object getValueType() {
-		return this.valueType;
-	}
-
-	public boolean isStale() {
-		ObservableTracker.getterCalled(this);
-		return map.isStale();
-	}
-
-	public synchronized void dispose() {
-		if (map != null) {
-			map.removeMapChangeListener(changeListener);
-			map.removeStaleListener(staleListener);
-			map = null;
-			changeListener = null;
-			staleListener = null;
-		}
-		super.dispose();
-	}
-
-	protected Object doGetValue() {
-		return this.map.get(this.key);
-	}
-
-	protected void doSetValue(Object value) {
-		this.map.put(this.key, value);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ProxyObservableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ProxyObservableList.java
deleted file mode 100644
index 6d15f2c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ProxyObservableList.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208332)
- *     IBM Corporation - initial API and implementation
- *         (through ProxyObservableSet.java)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.*;
-
-/**
- * Wraps an observable list. This object acts like an exact copy of the original
- * list, 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 IObservableList from a method that expects the
- * caller to dispose the list, but you have an IObservableList that you don't
- * want disposed.
- * 
- * @since 1.1
- */
-public class ProxyObservableList extends ObservableList {
-	private IListChangeListener listChangelistener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			fireListChange(event.diff);
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent event) {
-			fireStale();
-		}
-	};
-
-	private IObservableList wrappedList;
-
-	/**
-	 * Constructs a ProxyObservableList that tracks the state of the given list.
-	 * 
-	 * @param wrappedList
-	 *            the list being wrapped
-	 */
-	public ProxyObservableList(IObservableList wrappedList) {
-		super(wrappedList.getRealm(), wrappedList, wrappedList.getElementType());
-		this.wrappedList = wrappedList;
-		wrappedList.addListChangeListener(listChangelistener);
-		wrappedList.addStaleListener(staleListener);
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return wrappedList == null ? false : wrappedList.isStale();
-	}
-
-	public void dispose() {
-		if (wrappedList != null) {
-			wrappedList.removeListChangeListener(listChangelistener);
-			listChangelistener = null;
-			wrappedList.removeStaleListener(staleListener);
-			staleListener = null;
-			wrappedList = null;
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ProxyObservableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ProxyObservableSet.java
deleted file mode 100644
index 55a0b24..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ProxyObservableSet.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collections;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.AbstractObservableSet;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-
-/**
- * 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 class ProxyObservableSet extends AbstractObservableSet {
-	private IObservableSet wrappedSet;
-	private Object elementType;
-
-	private ISetChangeListener setChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			fireSetChange(event.diff);
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	/**
-	 * Constructs a ProxyObservableSet that tracks the state of the given set.
-	 * 
-	 * @param wrappedSet
-	 *            the set being wrapped
-	 */
-	public ProxyObservableSet(IObservableSet wrappedSet) {
-		super(wrappedSet.getRealm());
-		this.wrappedSet = wrappedSet;
-		this.elementType = wrappedSet.getElementType();
-		wrappedSet.addSetChangeListener(setChangeListener);
-		wrappedSet.addStaleListener(staleListener);
-	}
-
-	protected Set getWrappedSet() {
-		return wrappedSet == null ? Collections.EMPTY_SET : wrappedSet;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return wrappedSet == null ? false : wrappedSet.isStale();
-	}
-
-	public void dispose() {
-		if (wrappedSet != null) {
-			wrappedSet.removeSetChangeListener(setChangeListener);
-			setChangeListener = null;
-			wrappedSet.removeStaleListener(staleListener);
-			staleListener = null;
-			wrappedSet = null;
-		}
-		elementType = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/StalenessObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/StalenessObservableValue.java
deleted file mode 100644
index 6a07fad..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/StalenessObservableValue.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Boris Bokowski, IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 212468
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-
-/**
- * An observable value that tracks the staleness of an {@link IObservable}.
- * 
- * @since 1.1
- */
-public class StalenessObservableValue extends AbstractObservableValue {
-
-	private class MyListener implements IChangeListener, IStaleListener {
-		public void handleChange(ChangeEvent event) {
-			if (stale && !event.getObservable().isStale()) {
-				stale = false;
-				fireValueChange(Diffs.createValueDiff(Boolean.TRUE,
-						Boolean.FALSE));
-			}
-		}
-
-		public void handleStale(StaleEvent staleEvent) {
-			if (!stale) {
-				stale = true;
-				fireValueChange(Diffs.createValueDiff(Boolean.FALSE,
-						Boolean.TRUE));
-			}
-		}
-	}
-
-	private IObservable tracked;
-	private boolean stale;
-	private MyListener listener = new MyListener();
-
-	/**
-	 * Constructs a StalenessObservableValue that tracks the staleness of the
-	 * given {@link IObservable}.
-	 * 
-	 * @param observable
-	 *            the observable to track
-	 */
-	public StalenessObservableValue(IObservable observable) {
-		super(observable.getRealm());
-		this.tracked = observable;
-		this.stale = observable.isStale();
-		tracked.addChangeListener(listener);
-		tracked.addStaleListener(listener);
-	}
-
-	protected Object doGetValue() {
-		return tracked.isStale() ? Boolean.TRUE : Boolean.FALSE;
-	}
-
-	public Object getValueType() {
-		return Boolean.TYPE;
-	}
-
-	public synchronized void dispose() {
-		if (tracked != null) {
-			tracked.removeChangeListener(listener);
-			tracked.removeStaleListener(listener);
-			tracked = null;
-			listener = null;
-		}
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/StalenessTracker.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/StalenessTracker.java
deleted file mode 100644
index 6324325..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/StalenessTracker.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.internal.databinding.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(StaleEvent event) {
-			processStalenessChange((IObservable) event.getSource(), true);
-		}
-
-		public void handleChange(ChangeEvent event) {
-			processStalenessChange((IObservable) event.getSource(), 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.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableList.java
deleted file mode 100644
index 6f34e1e..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableList.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 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
- *     Matthew Hall - bug 208332
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.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 1.0
- */
-/*
- * Implementation makes the assumption that the superclass (ObservableList) is
- * unmodifiable and that all modify methods throw an
- * UnsupportedOperationException.
- */
-public class UnmodifiableObservableList extends ObservableList {
-	/**
-	 * List that is being made unmodifiable.
-	 */
-	private IObservableList wrappedList;
-
-	private IListChangeListener listChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			// Fires a Change and then ListChange event.
-			fireListChange(event.diff);
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent event) {
-			fireStale();
-		}
-	};
-
-	/**
-	 * @param wrappedList
-	 */
-	public UnmodifiableObservableList(IObservableList wrappedList) {
-		super(wrappedList.getRealm(), wrappedList, wrappedList.getElementType());
-		this.wrappedList = wrappedList;
-
-		wrappedList.addListChangeListener(listChangeListener);
-
-		wrappedList.addStaleListener(staleListener);
-	}
-
-	/**
-	 * Because this instance is immutable staleness cannot be changed.
-	 * 
-	 * @throws UnsupportedOperationException
-	 *             because this instance is unmodifiable.
-	 */
-	public void setStale(boolean stale) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return wrappedList == null ? false : wrappedList.isStale();
-	}
-
-	public synchronized void dispose() {
-		if (wrappedList != null) {
-			wrappedList.removeListChangeListener(listChangeListener);
-			wrappedList.removeStaleListener(staleListener);
-			wrappedList = null;
-		}
-		listChangeListener = null;
-		staleListener = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableSet.java
deleted file mode 100644
index ee38b25..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableSet.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208332)
- *     Brad Reynolds - initial API and implementation
- *         (through UnmodifiableObservableList.java)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.*;
-
-/**
- * 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 1.1
- */
-public class UnmodifiableObservableSet extends ObservableSet {
-	private ISetChangeListener setChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			fireSetChange(event.diff);
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent event) {
-			fireStale();
-		}
-	};
-
-	private IObservableSet wrappedSet;
-
-	/**
-	 * @param wrappedSet
-	 */
-	public UnmodifiableObservableSet(IObservableSet wrappedSet) {
-		super(wrappedSet.getRealm(), wrappedSet, wrappedSet.getElementType());
-
-		this.wrappedSet = wrappedSet;
-
-		wrappedSet.addSetChangeListener(setChangeListener);
-		wrappedSet.addStaleListener(staleListener);
-	}
-
-	/**
-	 * Because this instance is immutable staleness cannot be changed.
-	 */
-	public void setStale(boolean stale) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return wrappedSet == null ? false : wrappedSet.isStale();
-	}
-
-	public synchronized void dispose() {
-		if (wrappedSet != null) {
-			wrappedSet.removeSetChangeListener(setChangeListener);
-			wrappedSet.removeStaleListener(staleListener);
-			wrappedSet = null;
-		}
-		setChangeListener = null;
-		staleListener = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableValue.java
deleted file mode 100644
index e35712c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableValue.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 219909)
- *     Matthew Hall - bug 237884
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-
-/**
- * An unmodifiable wrapper class for IObservableValue instances.
- * @since 1.1
- */
-public class UnmodifiableObservableValue extends AbstractObservableValue {
-	private IObservableValue wrappedValue;
-
-	/**
-	 * Constructs an UnmodifiableObservableValue which wraps the given
-	 * observable value
-	 * 
-	 * @param wrappedValue
-	 *            the observable value to wrap in an unmodifiable instance.
-	 */
-	public UnmodifiableObservableValue(IObservableValue wrappedValue) {
-		super(wrappedValue.getRealm());
-
-		this.wrappedValue = wrappedValue;
-		wrappedValue.addValueChangeListener(new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-				fireValueChange(event.diff);
-			}
-		});
-		wrappedValue.addStaleListener(new IStaleListener() {
-			public void handleStale(StaleEvent staleEvent) {
-				fireStale();
-			}
-		});
-	}
-
-	protected Object doGetValue() {
-		return wrappedValue.getValue();
-	}
-
-	public Object getValueType() {
-		return wrappedValue.getValueType();
-	}
-
-	public boolean isStale() {
-		return wrappedValue.isStale();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableList.java
deleted file mode 100644
index c1fa461..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableList.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.list.ListDiffVisitor;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 3.3
- * 
- */
-public class ValidatedObservableList extends ObservableList {
-	private IObservableList target;
-	private IObservableValue validationStatus;
-
-	// Only true when out of sync with target due to validation status
-	private boolean stale;
-
-	// True when validaton status changes from invalid to valid.
-	private boolean computeNextDiff = false;
-
-	private boolean updatingTarget = false;
-
-	private IListChangeListener targetChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			if (updatingTarget)
-				return;
-			IStatus status = (IStatus) validationStatus.getValue();
-			if (isValid(status)) {
-				if (stale) {
-					// this.stale means we are out of sync with target,
-					// so reset wrapped list to exactly mirror target
-					stale = false;
-					updateWrappedList(new ArrayList(target));
-				} else {
-					ListDiff diff = event.diff;
-					if (computeNextDiff) {
-						diff = Diffs.computeListDiff(wrappedList, target);
-						computeNextDiff = false;
-					}
-					applyDiff(diff, wrappedList);
-					fireListChange(diff);
-				}
-			} else {
-				makeStale();
-			}
-		}
-	};
-
-	private static boolean isValid(IStatus status) {
-		return status.isOK() || status.matches(IStatus.INFO | IStatus.WARNING);
-	}
-
-	private IStaleListener targetStaleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	private IValueChangeListener validationStatusChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			IStatus oldStatus = (IStatus) event.diff.getOldValue();
-			IStatus newStatus = (IStatus) event.diff.getNewValue();
-			if (stale && !isValid(oldStatus) && isValid(newStatus)) {
-				// this.stale means we are out of sync with target,
-				// reset wrapped list to exactly mirror target
-				stale = false;
-				updateWrappedList(new ArrayList(target));
-
-				// If the validation status becomes valid because of a change in
-				// target observable
-				computeNextDiff = true;
-			}
-		}
-	};
-
-	/**
-	 * @param target
-	 * @param validationStatus
-	 */
-	public ValidatedObservableList(final IObservableList target,
-			final IObservableValue validationStatus) {
-		super(target.getRealm(), new ArrayList(target), target.getElementType());
-		Assert.isNotNull(validationStatus,
-				"Validation status observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(target.getRealm().equals(validationStatus.getRealm()),
-						"Target and validation status observables must be on the same realm"); //$NON-NLS-1$
-		this.target = target;
-		this.validationStatus = validationStatus;
-		target.addListChangeListener(targetChangeListener);
-		target.addStaleListener(targetStaleListener);
-		validationStatus.addValueChangeListener(validationStatusChangeListener);
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	private void updateTargetList(ListDiff diff) {
-		updatingTarget = true;
-		try {
-			if (stale) {
-				stale = false;
-				applyDiff(Diffs.computeListDiff(target, wrappedList), target);
-			} else {
-				applyDiff(diff, target);
-			}
-		} finally {
-			updatingTarget = false;
-		}
-	}
-
-	private void applyDiff(ListDiff diff, final List list) {
-		diff.accept(new ListDiffVisitor() {
-			public void handleAdd(int index, Object element) {
-				list.add(index, element);
-			}
-
-			public void handleRemove(int index, Object element) {
-				list.remove(index);
-			}
-
-			public void handleReplace(int index, Object oldElement,
-					Object newElement) {
-				list.set(index, newElement);
-			}
-		});
-	}
-
-	public boolean isStale() {
-		ObservableTracker.getterCalled(this);
-		return stale || target.isStale();
-	}
-
-	public void add(int index, Object element) {
-		checkRealm();
-		wrappedList.add(index, element);
-		ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				true, element));
-		updateTargetList(diff);
-		fireListChange(diff);
-	}
-
-	public boolean add(Object o) {
-		checkRealm();
-		add(wrappedList.size(), o);
-		return true;
-	}
-
-	public boolean addAll(Collection c) {
-		checkRealm();
-		return addAll(wrappedList.size(), c);
-	}
-
-	public boolean addAll(int index, Collection c) {
-		checkRealm();
-		Object[] elements = c.toArray();
-		ListDiffEntry[] entries = new ListDiffEntry[elements.length];
-		for (int i = 0; i < elements.length; i++) {
-			wrappedList.add(index + i, elements[i]);
-			entries[i] = Diffs
-					.createListDiffEntry(index + i, true, elements[i]);
-		}
-		ListDiff diff = Diffs.createListDiff(entries);
-		updateTargetList(diff);
-		fireListChange(diff);
-		return true;
-	}
-
-	public void clear() {
-		checkRealm();
-		if (isEmpty())
-			return;
-		ListDiff diff = Diffs.computeListDiff(wrappedList,
-				Collections.EMPTY_LIST);
-		wrappedList.clear();
-		updateTargetList(diff);
-		fireListChange(diff);
-	}
-
-	public Iterator iterator() {
-		getterCalled();
-		final ListIterator wrappedIterator = wrappedList.listIterator();
-		return new Iterator() {
-			Object last = null;
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				return last = wrappedIterator.next();
-			}
-
-			public void remove() {
-				int index = wrappedIterator.previousIndex();
-				wrappedIterator.remove();
-				ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-						index, false, last));
-				updateTargetList(diff);
-				fireListChange(diff);
-			}
-		};
-	}
-
-	public ListIterator listIterator() {
-		return listIterator(0);
-	}
-
-	public ListIterator listIterator(int index) {
-		getterCalled();
-		final ListIterator wrappedIterator = wrappedList.listIterator(index);
-		return new ListIterator() {
-			int lastIndex = -1;
-			Object last = null;
-
-			public void add(Object o) {
-				wrappedIterator.add(o);
-				lastIndex = previousIndex();
-				ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-						lastIndex, true, o));
-				updateTargetList(diff);
-				fireListChange(diff);
-			}
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public boolean hasPrevious() {
-				return wrappedIterator.hasPrevious();
-			}
-
-			public Object next() {
-				last = wrappedIterator.next();
-				lastIndex = previousIndex();
-				return last;
-			}
-
-			public int nextIndex() {
-				return wrappedIterator.nextIndex();
-			}
-
-			public Object previous() {
-				last = wrappedIterator.previous();
-				lastIndex = nextIndex();
-				return last;
-			}
-
-			public int previousIndex() {
-				return wrappedIterator.previousIndex();
-			}
-
-			public void remove() {
-				wrappedIterator.remove();
-				ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-						lastIndex, false, last));
-				lastIndex = -1;
-				updateTargetList(diff);
-				fireListChange(diff);
-			}
-
-			public void set(Object o) {
-				wrappedIterator.set(o);
-				ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-						lastIndex, false, last), Diffs.createListDiffEntry(
-						lastIndex, true, o));
-				last = o;
-				updateTargetList(diff);
-				fireListChange(diff);
-			}
-		};
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		int size = wrappedList.size();
-		if (oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (oldIndex == newIndex)
-			return wrappedList.get(oldIndex);
-		Object element = wrappedList.remove(oldIndex);
-		wrappedList.add(newIndex, element);
-		ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-				oldIndex, false, element), Diffs.createListDiffEntry(newIndex,
-				true, element));
-		updateTargetList(diff);
-		fireListChange(diff);
-		return element;
-	}
-
-	public Object remove(int index) {
-		checkRealm();
-		Object element = wrappedList.remove(index);
-		ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, element));
-		updateTargetList(diff);
-		fireListChange(diff);
-		return element;
-	}
-
-	public boolean remove(Object o) {
-		checkRealm();
-		int index = wrappedList.indexOf(o);
-		if (index == -1)
-			return false;
-		remove(index);
-		return true;
-	}
-
-	public boolean removeAll(Collection c) {
-		checkRealm();
-		List list = new ArrayList(wrappedList);
-		boolean changed = list.removeAll(c);
-		if (changed) {
-			ListDiff diff = Diffs.computeListDiff(wrappedList, list);
-			wrappedList = list;
-			updateTargetList(diff);
-			fireListChange(diff);
-		}
-		return changed;
-	}
-
-	public boolean retainAll(Collection c) {
-		checkRealm();
-		List list = new ArrayList(wrappedList);
-		boolean changed = list.retainAll(c);
-		if (changed) {
-			ListDiff diff = Diffs.computeListDiff(wrappedList, list);
-			wrappedList = list;
-			updateTargetList(diff);
-			fireListChange(diff);
-		}
-		return changed;
-	}
-
-	public Object set(int index, Object element) {
-		checkRealm();
-		Object oldElement = wrappedList.set(index, element);
-		ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement), Diffs.createListDiffEntry(index, true,
-				element));
-		updateTargetList(diff);
-		fireListChange(diff);
-		return oldElement;
-	}
-
-	public synchronized void dispose() {
-		target.removeListChangeListener(targetChangeListener);
-		target.removeStaleListener(targetStaleListener);
-		validationStatus
-				.removeValueChangeListener(validationStatusChangeListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableMap.java
deleted file mode 100644
index 1261f69..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableMap.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.observable.map.ObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 3.3
- * 
- */
-public class ValidatedObservableMap extends ObservableMap {
-	private IObservableMap target;
-	private IObservableValue validationStatus;
-
-	// Only true when out of sync with target due to validation status
-	private boolean stale;
-
-	// True when validation status changes from invalid to valid.
-	private boolean computeNextDiff = false;
-
-	private boolean updatingTarget = false;
-
-	private IMapChangeListener targetChangeListener = new IMapChangeListener() {
-		public void handleMapChange(MapChangeEvent event) {
-			if (updatingTarget)
-				return;
-			IStatus status = (IStatus) validationStatus.getValue();
-			if (isValid(status)) {
-				if (stale) {
-					// this.stale means we are out of sync with target,
-					// so reset wrapped list to exactly mirror target
-					stale = false;
-					updateWrappedMap(new HashMap(target));
-				} else {
-					MapDiff diff = event.diff;
-					if (computeNextDiff) {
-						diff = Diffs.computeMapDiff(wrappedMap, target);
-						computeNextDiff = false;
-					}
-					applyDiff(diff, wrappedMap);
-					fireMapChange(diff);
-				}
-			} else {
-				makeStale();
-			}
-		}
-	};
-
-	private IStaleListener targetStaleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	private IValueChangeListener validationStatusChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			IStatus oldStatus = (IStatus) event.diff.getOldValue();
-			IStatus newStatus = (IStatus) event.diff.getNewValue();
-			if (stale && !isValid(oldStatus) && isValid(newStatus)) {
-				// this.stale means we are out of sync with target,
-				// reset wrapped map to exactly mirror target
-				stale = false;
-				updateWrappedMap(new HashMap(target));
-
-				// If the validation status becomes valid because of a change in
-				// target observable
-				computeNextDiff = true;
-			}
-		}
-	};
-
-	/**
-	 * @param target
-	 * @param validationStatus
-	 */
-	public ValidatedObservableMap(final IObservableMap target,
-			final IObservableValue validationStatus) {
-		super(target.getRealm(), new HashMap(target));
-		Assert.isNotNull(validationStatus,
-				"Validation status observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(target.getRealm().equals(validationStatus.getRealm()),
-						"Target and validation status observables must be on the same realm"); //$NON-NLS-1$
-		this.target = target;
-		this.validationStatus = validationStatus;
-		target.addMapChangeListener(targetChangeListener);
-		target.addStaleListener(targetStaleListener);
-		validationStatus.addValueChangeListener(validationStatusChangeListener);
-	}
-
-	private void updateWrappedMap(Map newMap) {
-		Map oldMap = wrappedMap;
-		MapDiff diff = Diffs.computeMapDiff(oldMap, newMap);
-		wrappedMap = newMap;
-		fireMapChange(diff);
-	}
-
-	private static boolean isValid(IStatus status) {
-		return status.isOK() || status.matches(IStatus.INFO | IStatus.WARNING);
-	}
-
-	private void applyDiff(MapDiff diff, Map map) {
-		for (Iterator iterator = diff.getRemovedKeys().iterator(); iterator
-				.hasNext();)
-			map.remove(iterator.next());
-		for (Iterator iterator = diff.getChangedKeys().iterator(); iterator
-				.hasNext();) {
-			Object key = iterator.next();
-			map.put(key, diff.getNewValue(key));
-		}
-		for (Iterator iterator = diff.getAddedKeys().iterator(); iterator
-				.hasNext();) {
-			Object key = iterator.next();
-			map.put(key, diff.getNewValue(key));
-		}
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	private void updateTargetMap(MapDiff diff) {
-		updatingTarget = true;
-		try {
-			if (stale) {
-				stale = false;
-				applyDiff(Diffs.computeMapDiff(target, wrappedMap), target);
-			} else {
-				applyDiff(diff, target);
-			}
-		} finally {
-			updatingTarget = false;
-		}
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return stale || target.isStale();
-	}
-
-	public void clear() {
-		checkRealm();
-		if (isEmpty())
-			return;
-		MapDiff diff = Diffs.computeMapDiff(wrappedMap, Collections.EMPTY_MAP);
-		wrappedMap = new HashMap();
-		updateTargetMap(diff);
-		fireMapChange(diff);
-	}
-
-	public Object put(Object key, Object value) {
-		checkRealm();
-		MapDiff diff;
-		Object oldValue;
-		if (wrappedMap.containsKey(key)) {
-			oldValue = wrappedMap.put(key, value);
-			if (wrappedMap.containsKey(key)) { // Changed
-				diff = Diffs.createMapDiffSingleChange(key, oldValue, value);
-			} else { // Removed
-				diff = Diffs.createMapDiffSingleRemove(key, oldValue);
-			}
-		} else { // Added
-			oldValue = wrappedMap.put(key, value);
-			diff = Diffs.createMapDiffSingleAdd(key, value);
-		}
-		updateTargetMap(diff);
-		fireMapChange(diff);
-		return oldValue;
-	}
-
-	public void putAll(Map m) {
-		checkRealm();
-		Map map = new HashMap(wrappedMap);
-		map.putAll(m);
-		MapDiff diff = Diffs.computeMapDiff(wrappedMap, map);
-		wrappedMap = map;
-		updateTargetMap(diff);
-		fireMapChange(diff);
-	}
-
-	public Object remove(Object key) {
-		checkRealm();
-		if (!wrappedMap.containsKey(key))
-			return null;
-		Object oldValue = wrappedMap.remove(key);
-		MapDiff diff = Diffs.createMapDiffSingleRemove(key, oldValue);
-		updateTargetMap(diff);
-		fireMapChange(diff);
-		return oldValue;
-	}
-
-	public synchronized void dispose() {
-		target.removeMapChangeListener(targetChangeListener);
-		target.removeStaleListener(targetStaleListener);
-		validationStatus
-				.removeValueChangeListener(validationStatusChangeListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableSet.java
deleted file mode 100644
index bb7c6e6..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableSet.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 3.3
- * 
- */
-public class ValidatedObservableSet extends ObservableSet {
-	private IObservableSet target;
-	private IObservableValue validationStatus;
-
-	// Only true when out of sync with target due to validation status
-	private boolean stale;
-
-	// True when validation status changes from invalid to valid.
-	private boolean computeNextDiff = false;
-
-	private boolean updatingTarget = false;
-
-	private ISetChangeListener targetChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			if (updatingTarget)
-				return;
-			IStatus status = (IStatus) validationStatus.getValue();
-			if (isValid(status)) {
-				if (stale) {
-					// this.stale means we are out of sync with target,
-					// so reset wrapped list to exactly mirror target
-					stale = false;
-					updateWrappedSet(new HashSet(target));
-				} else {
-					SetDiff diff = event.diff;
-					if (computeNextDiff) {
-						diff = Diffs.computeSetDiff(wrappedSet, target);
-						computeNextDiff = false;
-					}
-					applyDiff(diff, wrappedSet);
-					fireSetChange(diff);
-				}
-			} else {
-				makeStale();
-			}
-		}
-	};
-
-	private IStaleListener targetStaleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	private IValueChangeListener validationStatusChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			IStatus oldStatus = (IStatus) event.diff.getOldValue();
-			IStatus newStatus = (IStatus) event.diff.getNewValue();
-			if (stale && !isValid(oldStatus) && isValid(newStatus)) {
-				// this.stale means we are out of sync with target,
-				// reset wrapped set to exactly mirror target
-				stale = false;
-				updateWrappedSet(new HashSet(target));
-
-				// If the validation status becomes valid because of a change in
-				// target observable
-				computeNextDiff = true;
-			}
-		}
-	};
-
-	/**
-	 * @param target
-	 * @param validationStatus
-	 */
-	public ValidatedObservableSet(final IObservableSet target,
-			final IObservableValue validationStatus) {
-		super(target.getRealm(), new HashSet(target), target.getElementType());
-		Assert.isNotNull(validationStatus,
-				"Validation status observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(target.getRealm().equals(validationStatus.getRealm()),
-						"Target and validation status observables must be on the same realm"); //$NON-NLS-1$
-		this.target = target;
-		this.validationStatus = validationStatus;
-		target.addSetChangeListener(targetChangeListener);
-		target.addStaleListener(targetStaleListener);
-		validationStatus.addValueChangeListener(validationStatusChangeListener);
-	}
-
-	private void updateWrappedSet(Set newSet) {
-		Set oldSet = wrappedSet;
-		SetDiff diff = Diffs.computeSetDiff(oldSet, newSet);
-		wrappedSet = newSet;
-		fireSetChange(diff);
-	}
-
-	private static boolean isValid(IStatus status) {
-		return status.isOK() || status.matches(IStatus.INFO | IStatus.WARNING);
-	}
-
-	private void applyDiff(SetDiff diff, Set set) {
-		for (Iterator iterator = diff.getRemovals().iterator(); iterator
-				.hasNext();) {
-			set.remove(iterator.next());
-		}
-		for (Iterator iterator = diff.getAdditions().iterator(); iterator
-				.hasNext();) {
-			set.add(iterator.next());
-		}
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	private void updateTargetSet(SetDiff diff) {
-		updatingTarget = true;
-		try {
-			if (stale) {
-				stale = false;
-				applyDiff(Diffs.computeSetDiff(target, wrappedSet), target);
-			} else {
-				applyDiff(diff, target);
-			}
-		} finally {
-			updatingTarget = false;
-		}
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return stale || target.isStale();
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		boolean changed = wrappedSet.add(o);
-		if (changed) {
-			SetDiff diff = Diffs.createSetDiff(Collections.singleton(o),
-					Collections.EMPTY_SET);
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		HashSet set = new HashSet(wrappedSet);
-		boolean changed = set.addAll(c);
-		if (changed) {
-			SetDiff diff = Diffs.computeSetDiff(wrappedSet, set);
-			wrappedSet = set;
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public void clear() {
-		getterCalled();
-		if (isEmpty())
-			return;
-		SetDiff diff = Diffs.createSetDiff(Collections.EMPTY_SET, wrappedSet);
-		wrappedSet = new HashSet();
-		updateTargetSet(diff);
-		fireSetChange(diff);
-	}
-
-	public Iterator iterator() {
-		getterCalled();
-		final Iterator wrappedIterator = wrappedSet.iterator();
-		return new Iterator() {
-			Object last = null;
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				return last = wrappedIterator.next();
-			}
-
-			public void remove() {
-				wrappedIterator.remove();
-				SetDiff diff = Diffs.createSetDiff(Collections.EMPTY_SET,
-						Collections.singleton(last));
-				updateTargetSet(diff);
-				fireSetChange(diff);
-			}
-		};
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		boolean changed = wrappedSet.remove(o);
-		if (changed) {
-			SetDiff diff = Diffs.createSetDiff(Collections.EMPTY_SET,
-					Collections.singleton(o));
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		Set set = new HashSet(wrappedSet);
-		boolean changed = set.removeAll(c);
-		if (changed) {
-			SetDiff diff = Diffs.computeSetDiff(wrappedSet, set);
-			wrappedSet = set;
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-		Set set = new HashSet(wrappedSet);
-		boolean changed = set.retainAll(c);
-		if (changed) {
-			SetDiff diff = Diffs.computeSetDiff(wrappedSet, set);
-			wrappedSet = set;
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public synchronized void dispose() {
-		target.removeSetChangeListener(targetChangeListener);
-		target.removeStaleListener(targetStaleListener);
-		validationStatus
-				.removeValueChangeListener(validationStatusChangeListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableValue.java
deleted file mode 100644
index 1164f53..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableValue.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.IVetoableValue;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.observable.value.ValueChangingEvent;
-import org.eclipse.core.internal.databinding.Util;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * An {@link IObservableValue} wrapper that stays in sync with the target
- * observable as long as a given validation status is valid.
- * <ul>
- * <li>While status is valid, ValidatedObservableValue stays in sync with its
- * target.
- * <li>When status becomes invalid, ValidatedObservableValue will retain the
- * last valid value of its target.
- * <li>While status is invalid, changes in the target observable cause
- * ValidatedObservableValue to fire a stale event, to indicate that changes are
- * pending.
- * <li>When status becomes valid, pending value changes are performed (if any)
- * and synchronization resumes.
- * </ul>
- * <p>
- * Note:
- * <ul>
- * <li>By default, a status is valid if its
- * {@link IStatus#getSeverity() severity} is {@link IStatus#OK OK},
- * {@link IStatus#INFO INFO}, or {@link IStatus#WARNING WARNING}
- * <li>Calls to {@link #setValue(Object)} on the validated observable changes
- * the value regardless of the validation status.
- * <li>This class will not forward {@link ValueChangingEvent} events from a
- * wrapped {@link IVetoableValue}.
- * </ul>
- * 
- * @since 1.2
- */
-public class ValidatedObservableValue extends AbstractObservableValue {
-	private IObservableValue target;
-	private IObservableValue validationStatus;
-
-	private Object cachedValue;
-	private boolean stale;
-	private boolean updatingTarget = false;
-
-	private IValueChangeListener targetChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			if (updatingTarget)
-				return;
-			IStatus status = (IStatus) validationStatus.getValue();
-			if (isValid(status))
-				internalSetValue(event.diff.getNewValue(), false);
-			else
-				makeStale();
-		}
-	};
-
-	private static boolean isValid(IStatus status) {
-		return status.isOK() || status.matches(IStatus.INFO | IStatus.WARNING);
-	}
-
-	private IStaleListener targetStaleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	private IValueChangeListener validationStatusChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			IStatus oldStatus = (IStatus) event.diff.getOldValue();
-			IStatus newStatus = (IStatus) event.diff.getNewValue();
-			if (stale && !isValid(oldStatus) && isValid(newStatus)) {
-				internalSetValue(target.getValue(), false);
-			}
-		}
-	};
-
-	/**
-	 * Constructs an observable value
-	 * 
-	 * @param target
-	 *            the observable value to be wrapped
-	 * @param validationStatus
-	 *            an observable value of type {@link IStatus}.class which
-	 *            contains the current validation status
-	 */
-	public ValidatedObservableValue(IObservableValue target,
-			IObservableValue validationStatus) {
-		super(target.getRealm());
-		Assert.isNotNull(validationStatus,
-				"Validation status observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(target.getRealm().equals(validationStatus.getRealm()),
-						"Target and validation status observables must be on the same realm"); //$NON-NLS-1$
-		this.target = target;
-		this.validationStatus = validationStatus;
-		this.cachedValue = target.getValue();
-
-		target.addValueChangeListener(targetChangeListener);
-		target.addStaleListener(targetStaleListener);
-		validationStatus.addValueChangeListener(validationStatusChangeListener);
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	public boolean isStale() {
-		ObservableTracker.getterCalled(this);
-		return stale || target.isStale();
-	}
-
-	protected Object doGetValue() {
-		return cachedValue;
-	}
-
-	private void internalSetValue(Object value, boolean updateTarget) {
-		Object oldValue = cachedValue;
-		cachedValue = value;
-		if (updateTarget) {
-			updatingTarget = true;
-			try {
-				target.setValue(value);
-				cachedValue = target.getValue();
-			} finally {
-				updatingTarget = false;
-			}
-		}
-		stale = false;
-		if (!Util.equals(oldValue, cachedValue))
-			fireValueChange(Diffs.createValueDiff(oldValue, cachedValue));
-	}
-
-	protected void doSetValue(Object value) {
-		internalSetValue(value, true);
-	}
-
-	public Object getValueType() {
-		return target.getValueType();
-	}
-
-	public synchronized void dispose() {
-		target.removeValueChangeListener(targetChangeListener);
-		target.removeStaleListener(targetStaleListener);
-		validationStatus
-				.removeValueChangeListener(validationStatusChangeListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableList.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableList.java
deleted file mode 100755
index 1baec56..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableList.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 221351
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.masterdetail;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @since 3.2
- * 
- */
-
-public class DetailObservableList extends ObservableList implements IObserving {
-
-	private boolean updating = false;
-
-	private IListChangeListener innerChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			if (!updating) {
-				fireListChange(event.diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private IObservableList innerObservableList;
-
-	private IObservableFactory factory;
-
-	private IObservableValue outerObservableValue;
-
-	private Object detailType;
-
-	/**
-	 * @param factory
-	 * @param outerObservableValue
-	 * @param detailType
-	 */
-	public DetailObservableList(IObservableFactory factory,
-			IObservableValue outerObservableValue, Object detailType) {
-		super(outerObservableValue.getRealm(), Collections.EMPTY_LIST, detailType);
-		this.factory = factory;
-		this.outerObservableValue = outerObservableValue;
-		this.detailType = detailType;
-		updateInnerObservableList(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			List oldList = new ArrayList(wrappedList);
-			updateInnerObservableList(outerObservableValue);
-			fireListChange(Diffs.computeListDiff(oldList, wrappedList));
-		}
-	};
-
-	private void updateInnerObservableList(IObservableValue outerObservableValue) {
-		if (innerObservableList != null) {
-			innerObservableList.removeListChangeListener(innerChangeListener);
-			innerObservableList.dispose();
-		}
-		currentOuterValue = outerObservableValue.getValue();
-		if (currentOuterValue == null) {
-			innerObservableList = null;
-			wrappedList = Collections.EMPTY_LIST;
-		} else {
-			this.innerObservableList = (IObservableList) factory
-					.createObservable(currentOuterValue);
-			wrappedList = innerObservableList;
-
-			if (detailType != null) {
-				Object innerValueType = innerObservableList.getElementType();
-				Assert.isTrue(getElementType().equals(innerValueType),
-						"Cannot change value type in a nested observable list"); //$NON-NLS-1$
-			}
-			innerObservableList.addListChangeListener(innerChangeListener);
-		}
-	}
-
-	public boolean add(Object o) {
-		return wrappedList.add(o);
-	}
-
-	public void add(int index, Object element) {
-		wrappedList.add(index, element);
-	}
-
-	public boolean remove(Object o) {
-		return wrappedList.remove(o);
-	}
-
-	public Object set(int index, Object element) {
-		return wrappedList.set(index, element);
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		if (innerObservableList != null)
-			return innerObservableList.move(oldIndex, newIndex);
-		return super.move(oldIndex, newIndex);
-	}
-
-	public Object remove(int index) {
-		return wrappedList.remove(index);
-	}
-
-	public boolean addAll(Collection c) {
-		return wrappedList.addAll(c);
-	}
-
-	public boolean addAll(int index, Collection c) {
-		return wrappedList.addAll(index, c);
-	}
-
-	public boolean removeAll(Collection c) {
-		return wrappedList.removeAll(c);
-	}
-
-	public boolean retainAll(Collection c) {
-		return wrappedList.retainAll(c);
-	}
-
-	public void clear() {
-		wrappedList.clear();
-	}
-	
-	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;
-	}
-
-	public Object getObserved() {
-		if (innerObservableList instanceof IObserving) {
-			return ((IObserving) innerObservableList).getObserved();
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableMap.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableMap.java
deleted file mode 100644
index a57148c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableMap.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 221704)
- *     Matthew Hall - bug 223114
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.masterdetail;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.ObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-
-/**
- * @since 1.1
- * 
- */
-public class DetailObservableMap extends ObservableMap {
-	private boolean updating = false;
-
-	private IObservableValue master;
-	private IObservableFactory detailFactory;
-
-	private IObservableMap detailMap;
-
-	private IValueChangeListener masterChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			Map oldMap = new HashMap(wrappedMap);
-			updateDetailMap();
-			fireMapChange(Diffs.computeMapDiff(oldMap, wrappedMap));
-		}
-	};
-
-	private IMapChangeListener detailChangeListener = new IMapChangeListener() {
-		public void handleMapChange(MapChangeEvent event) {
-			if (!updating) {
-				fireMapChange(event.diff);
-			}
-		}
-	};
-
-	/**
-	 * Constructs a new DetailObservableMap
-	 * 
-	 * @param detailFactory
-	 *            observable factory that creates IObservableMap instances given
-	 *            the current value of master observable value
-	 * @param master
-	 * 
-	 */
-	public DetailObservableMap(IObservableFactory detailFactory,
-			IObservableValue master) {
-		super(master.getRealm(), Collections.EMPTY_MAP);
-		this.master = master;
-		this.detailFactory = detailFactory;
-
-		updateDetailMap();
-		master.addValueChangeListener(masterChangeListener);
-	}
-
-	private void updateDetailMap() {
-		Object masterValue = master.getValue();
-		if (detailMap != null) {
-			detailMap.removeMapChangeListener(detailChangeListener);
-			detailMap.dispose();
-		}
-
-		if (masterValue == null) {
-			detailMap = null;
-			wrappedMap = Collections.EMPTY_MAP;
-		} else {
-			detailMap = (IObservableMap) detailFactory
-					.createObservable(masterValue);
-			wrappedMap = detailMap;
-			detailMap.addMapChangeListener(detailChangeListener);
-		}
-	}
-
-	public Object put(Object key, Object value) {
-		return detailMap.put(key, value);
-	}
-
-	public void putAll(Map map) {
-		detailMap.putAll(map);
-	}
-
-	public Object remove(Object key) {
-		return detailMap.remove(key);
-	}
-
-	public void clear() {
-		detailMap.clear();
-	}
-
-	public synchronized void dispose() {
-		if (master != null) {
-			master.removeValueChangeListener(masterChangeListener);
-			master = null;
-			masterChangeListener = null;
-		}
-		detailFactory = null;
-		if (detailMap != null) {
-			detailMap.removeMapChangeListener(detailChangeListener);
-			detailMap.dispose();
-			detailMap = null;
-		}
-		detailChangeListener = null;
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableSet.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableSet.java
deleted file mode 100755
index dc0fc46..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableSet.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 221351
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.masterdetail;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @since 3.2
- * 
- */
-public class DetailObservableSet extends ObservableSet implements IObserving {
-
-	private boolean updating = false;
-
-	private ISetChangeListener innerChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			if (!updating) {
-				fireSetChange(event.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(outerObservableValue.getRealm(), Collections.EMPTY_SET,
-				detailType);
-		this.factory = factory;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableSet(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			Set oldSet = new HashSet(wrappedSet);
-			updateInnerObservableSet(outerObservableValue);
-			fireSetChange(Diffs.computeSetDiff(oldSet, wrappedSet));
-		}
-	};
-
-	private void updateInnerObservableSet(IObservableValue outerObservableValue) {
-		currentOuterValue = outerObservableValue.getValue();
-		if (innerObservableSet != null) {
-			innerObservableSet.removeSetChangeListener(innerChangeListener);
-			innerObservableSet.dispose();
-		}
-		if (currentOuterValue == null) {
-			innerObservableSet = null;
-			wrappedSet = Collections.EMPTY_SET;
-		} else {
-			this.innerObservableSet = (IObservableSet) factory
-					.createObservable(currentOuterValue);
-			wrappedSet = innerObservableSet;
-
-			if (elementType != null) {
-				Object innerValueType = innerObservableSet.getElementType();
-
-				Assert.isTrue(elementType.equals(innerValueType),
-						"Cannot change value type in a nested observable set"); //$NON-NLS-1$
-			}
-
-			innerObservableSet.addSetChangeListener(innerChangeListener);
-		}
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		return wrappedSet.add(o);
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		return wrappedSet.remove(o);
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		return wrappedSet.addAll(c);
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		return wrappedSet.removeAll(c);
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-		return wrappedSet.retainAll(c);
-	}
-
-	public void clear() {
-		getterCalled();
-		wrappedSet.clear();
-	}
-
-	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;
-	}
-
-	public Object getObserved() {
-		if (innerObservableSet instanceof IObserving) {
-			return ((IObserving) innerObservableSet).getObserved();
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.java
deleted file mode 100755
index c1b1654..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 147515
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.masterdetail;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @since 1.0
- * 
- */
-public class DetailObservableValue extends AbstractObservableValue implements IObserving {
-
-	private boolean updating = false;
-
-	private IValueChangeListener innerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			if (!updating) {
-				fireValueChange(event.diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private IObservableValue innerObservableValue;
-
-	private Object detailType;
-
-	private IObservableValue outerObservableValue;
-
-	private IObservableFactory factory;
-
-	/**
-	 * @param outerObservableValue
-	 * @param factory
-	 * @param detailType
-	 */
-	public DetailObservableValue(IObservableValue outerObservableValue,
-			IObservableFactory factory, Object detailType) {
-		super(outerObservableValue.getRealm());
-		this.factory = factory;
-		this.detailType = detailType;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableValue(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			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) {
-				Assert
-						.isTrue(
-								detailType.equals(innerValueType),
-								"Cannot change value type in a nested observable value, from " + innerValueType + " to " + detailType); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			innerObservableValue.addValueChangeListener(innerChangeListener);
-		}
-	}
-
-	public void doSetValue(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;
-	}
-
-	public Object getObserved() {
-		if (innerObservableValue instanceof IObserving) {
-			return ((IObserving)innerObservableValue).getObserved();
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/AbstractObservableTree.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/AbstractObservableTree.java
deleted file mode 100644
index e1226c9..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/AbstractObservableTree.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164134
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 3.3
- * 
- */
-public abstract class AbstractObservableTree extends AbstractObservable
-		implements IObservableTree {
-
-	private boolean stale;
-
-	private ListenerList treeListeners = new ListenerList(ListenerList.IDENTITY);
-
-	/**
-	 * @param realm
-	 */
-	public AbstractObservableTree(Realm realm) {
-		super(realm);
-	}
-
-	public void addChild(TreePath parentPath, Object childElement) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addTreeChangeListener(ITreeChangeListener listener) {
-		treeListeners.add(listener);
-	}
-
-	public int getChildCount(TreePath parentPath) {
-		return getChildren(parentPath).length;
-	}
-
-	public boolean hasChildren(TreePath parentPath) {
-		return getChildCount(parentPath) > 0;
-	}
-
-	public void insertChild(TreePath parentPath, int index, Object childElement) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean isLazy() {
-		return false;
-	}
-
-	public boolean isOrdered() {
-		return false;
-	}
-
-	public void removeChild(TreePath parentPath, Object childElement) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeChild(TreePath parentPath, int index) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeTreeChangeListener(ITreeChangeListener listener) {
-		treeListeners.remove(listener);
-	}
-
-	public void setChildCount(TreePath parentPath, int count) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void setChildren(TreePath parentPath, Object[] children) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void updateChildren(IChildrenUpdate update) {
-		TreePath parent = update.getParent();
-		Object[] children = getChildren(parent);
-		for (int i = 0; i < update.getLength(); i++) {
-			int targetIndex = update.getOffset() + i;
-			if (targetIndex < children.length) {
-				update.setChild(children[targetIndex], targetIndex);
-			} else {
-				update
-						.setStatus(new Status(
-								IStatus.WARNING,
-								Policy.JFACE_DATABINDING, 
-								IStatus.OK,
-								BindingMessages
-										.getString(BindingMessages.INDEX_OUT_OF_RANGE), 
-										null));
-			}
-		}
-		update.done();
-	}
-
-	public void updateChildrenCount(IChildrenCountUpdate update) {
-		TreePath[] parents = update.getParents();
-		for (int i = 0; i < parents.length; i++) {
-			update.setChildCount(parents[i], getChildCount(parents[i]));
-		}
-		update.done();
-	}
-
-	public void updateHasChildren(IHasChildrenUpdate update) {
-		TreePath[] parents = update.getElements();
-		for (int i = 0; i < parents.length; i++) {
-			update.setHasChilren(parents[i], hasChildren(parents[i]));
-		}
-		update.done();
-	}
-
-	public boolean isStale() {
-		return stale;
-	}
-
-	/**
-	 * @param stale
-	 */
-	public void setStale(boolean stale) {
-		this.stale = stale;
-		if (stale) {
-			fireStale();
-		}
-	}
-
-	protected void fireTreeChange(TreeDiff diff) {
-		// fire general change event first
-		fireChange();
-
-		Object[] listeners = treeListeners.getListeners();
-		TreeChangeEvent event = new TreeChangeEvent(this, diff);
-		for (int i = 0; i < listeners.length; i++) {
-			((ITreeChangeListener) listeners[i]).handleTreeChange(event);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenCountUpdate.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenCountUpdate.java
deleted file mode 100644
index 331176a..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenCountUpdate.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * Request monitor used to collect the number of children for an element in a lazy
- * observable tree.
- * 
- * @since 3.3
- */
-public interface IChildrenCountUpdate extends IViewerUpdate {
-
-	/**
-	 * Returns the parent elements that children counts have been requested for
-	 * as tree paths. An empty path identifies the root element.
-	 * 
-	 * @return parent elements as tree paths
-	 */
-	public TreePath[] getParents();
-
-	/**
-	 * Sets the number of children for the given parent.
-	 * 
-	 * @param parentPath
-	 *            parent element or empty path for root element
-	 * @param numChildren
-	 *            number of children
-	 */
-	public void setChildCount(TreePath parentPath, int numChildren);
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenUpdate.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenUpdate.java
deleted file mode 100644
index 8d4b961..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenUpdate.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * Context sensitive children update request for a parent and subrange of its
- * children.
- *  
- * @since 3.3
- */
-public interface IChildrenUpdate extends IViewerUpdate {
-
-	/**
-	 * Returns the parent element that children are being requested for
-	 * as a tree path. An empty path identifies the root element.
-	 * 
-	 * @return parent element as a tree path
-	 */
-	public TreePath getParent();
-	
-	/**
-	 * Returns the offset at which children have been requested for. This is
-	 * the index of the first child being requested.
-	 * 
-	 * @return offset at which children have been requested for
-	 */
-	public int getOffset();
-	
-	/**
-	 * Returns the number of children requested.
-	 * 
-	 * @return number of children requested
-	 */
-	public int getLength();
-	
-	/**
-	 * Sets the child for this request's parent at the given offset.
-	 * 
-	 * @param child child
-	 * @param index child offset
-	 * 
-	 * TODO: what to do with <code>null</code>
-	 */
-	public void setChild(Object child, int index); 	
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IHasChildrenUpdate.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IHasChildrenUpdate.java
deleted file mode 100644
index f3eadd6..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IHasChildrenUpdate.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * Context sensitive update request for whether elements have children.
- * 
- * @since 3.3
- */
-public interface IHasChildrenUpdate extends IViewerUpdate {
-
-	/**
-	 * The elements this request is for specified as tree paths. An empty path
-	 * identifies the root element.
-	 * 
-	 * @return elements as tree paths
-	 */
-	public TreePath[] getElements();
-
-	/**
-	 * Sets whether the given element has children.
-	 * 
-	 * @param element
-	 *            tree path to element, or empty for root element
-	 * @param hasChildren
-	 *            whether it has children
-	 */
-	public void setHasChilren(TreePath element, boolean hasChildren);
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IObservableTree.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IObservableTree.java
deleted file mode 100644
index a877452..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IObservableTree.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * 
- * A tree whose changes can be tracked by tree change listeners. If the tree is
- * ordered ({@link #isOrdered()}), the order of children for a given tree path
- * matters, and tree change notifications will always specify indices. If the
- * tree is unordered, the children of a tree path are an unordered set and
- * indices in change notifications are not specified.
- * 
- * <p>
- * This interface is not intended to be implemented by clients. Clients should
- * instead subclass one of the framework classes that implement this interface.
- * Note that direct implementers of this interface outside of the framework will
- * be broken in future releases when methods are added to this interface.
- * </p>
- * 
- * @since 1.1
- */
-public interface IObservableTree extends IObservable {
-	
-	/**
-	 * Element that can be returned from synchronous getters if this observable
-	 * tree is lazy.
-	 */
-	public final static Object UNKNOWN_ELEMENT = new Object();
-	
-	/**
-	 * @param listener
-	 */
-	public void addTreeChangeListener(ITreeChangeListener listener);
-
-	/**
-	 * @param listener
-	 */
-	public void removeTreeChangeListener(ITreeChangeListener listener);
-
-	/**
-	 * Returns whether the order of children for a given parent is important. If
-	 * this tree is ordered, tree change notifications will always specify
-	 * indices.
-	 * 
-	 * @return true if the order of children for a given parent is important
-	 */
-	public boolean isOrdered();
-	
-	/**
-	 * Returns whether this tree is optimized to fetch subsets of children
-	 * lazily and possibly asynchronously. Implies {@link #isOrdered()}.
-	 * 
-	 * @return true if this tree 
-	 */
-	public boolean isLazy();
-
-	/**
-	 * @param parentPath
-	 * @return the children at the given parent path
-	 */
-	public Object[] getChildren(TreePath parentPath);
-	
-	/**
-	 * @param parentPath
-	 * @param children
-	 */
-	public void setChildren(TreePath parentPath, Object[] children);
-	
-	/**
-	 * @param parentPath
-	 * @param childElement
-	 */
-	public void addChild(TreePath parentPath, Object childElement);
-	
-	/**
-	 * @param parentPath
-	 * @param childElement 
-	 */
-	public void removeChild(TreePath parentPath, Object childElement);
-	
-	/**
-	 * @param parentPath
-	 * @param index
-	 * @param childElement
-	 */
-	public void insertChild(TreePath parentPath, int index, Object childElement);
-	
-	/**
-	 * @param parentPath
-	 * @param index
-	 */
-	public void removeChild(TreePath parentPath, int index);
-	
-	/**
-	 * @param parentPath
-	 * @return <code>true</code> if the element at the given path has children
-	 */
-	public boolean hasChildren(TreePath parentPath);
-	
-	/**
-	 * @param parentPath
-	 * @return the number of children of the element at the given path 
-	 */
-	public int getChildCount(TreePath parentPath);
-	
-	/**
-	 * @param parentPath
-	 * @param count
-	 */
-	public void setChildCount(TreePath parentPath, int count);
-	
-	/**
-	 * Updates the number of children for the given parent elements in the
-	 * specified request.
-	 * 
-	 * @param update specifies counts to update and stores result
-	 */
-	public void updateChildrenCount(IChildrenCountUpdate update);
-	
-	/**
-	 * Updates children as requested by the update.
-	 * 
-	 * @param update specifies children to update and stores result
-	 */	
-	public void updateChildren(IChildrenUpdate update);
-	
-	/**
-	 * Updates whether elements have children.
-	 * 
-	 * @param update specifies elements to update and stores result
-	 */
-	public void updateHasChildren(IHasChildrenUpdate update);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IOrderedTreeProvider.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IOrderedTreeProvider.java
deleted file mode 100644
index f60d561..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IOrderedTreeProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-
-/**
- * Objects that implement this interface are capable of describing a tree by
- * returning the list of children of any given element in the tree.
- * 
- * @since 3.3
- */
-public interface IOrderedTreeProvider {
-	/**
-	 * Returns the children of the given element, or null if the element is a
-	 * leaf node. The caller of this method is expected to dispose the result
-	 * list when it is no longer needed.
-	 * 
-	 * @param element
-	 *            the tree path of the element to query
-	 * @return the children of the given element, or null if the element is a
-	 *         leaf node
-	 */
-	IObservableList createChildList(TreePath element);
-
-	/**
-	 * @return the realm shared by all child lists
-	 */
-	Realm getRealm();
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/ITreeChangeListener.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/ITreeChangeListener.java
deleted file mode 100644
index 8fe9f8f..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/ITreeChangeListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * @since 3.3
- * 
- */
-public interface ITreeChangeListener {
-	/**
-	 * @param event
-	 */
-	void handleTreeChange(TreeChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IUnorderedTreeProvider.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IUnorderedTreeProvider.java
deleted file mode 100644
index 81941c8..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IUnorderedTreeProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-
-/**
- * @since 1.0
- *
- */
-public interface IUnorderedTreeProvider {
-	/**
-	 * @return the realm for the createChildSet method
-	 */
-	public Realm getRealm();
-	
-	/**
-	 * Returns the children of the given element, or null if the element is a leaf node.
-	 * The caller of this method is expected to dispose the result set when it is no
-	 * longer needed.
-	 * 
-	 * @param element element to query
-	 * @return the children of the given element, or null if the element is a leaf node
-	 */
-	IObservableSet createChildSet(Object element);
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IViewerUpdate.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IViewerUpdate.java
deleted file mode 100644
index 26cadab..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/IViewerUpdate.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A context sensitive viewer update request.
- * 
- * @since 3.3
- */
-public interface IViewerUpdate extends IProgressMonitor {
-
-    /**
-     * Sets the status of this request, possibly <code>null</code>.
-     * When a request fails, the status indicates why the request failed.
-     * A <code>null</code> status is considered to be successful.
-     * 
-     * @param status request status
-     */
-    public void setStatus(IStatus status);
-    
-    /**
-     * Returns the status of this request, or <code>null</code>.
-     * 
-     * @return request status or <code>null</code>
-     */
-    public IStatus getStatus();	
-    
-    /**
-     * Returns the model element corresponding to the given tree path.
-     * Returns the root element for the empty path.
-     * 
-     * @param path viewer tree path
-     * @return corresponding model element
-     */
-    public Object getElement(TreePath path);
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeChangeEvent.java
deleted file mode 100644
index b5051d5..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeChangeEvent.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import java.util.EventObject;
-
-/**
- * @since 3.3
- * 
- */
-public class TreeChangeEvent extends EventObject {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -3198503763995528027L;
-	/**
-	 * 
-	 */
-	public TreeDiff diff;
-
-	/**
-	 * @param source
-	 * @param diff
-	 */
-	public TreeChangeEvent(IObservableTree source, TreeDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * @return the observable tree from which this event originated
-	 */
-	public IObservableTree getObservable() {
-		return (IObservableTree) getSource();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiff.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiff.java
deleted file mode 100644
index 7c419ea..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiff.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * Describes the difference between two trees as a tree of tree diff nodes.
- * 
- * @since 1.1
- * 
- */
-public abstract class TreeDiff extends TreeDiffNode {
-
-	/**
-	 * Returns the tree path (possibly empty) of the parent, or
-	 * <code>null</code> if the underlying tree is not lazy and never contains
-	 * duplicate elements.
-	 * 
-	 * @return the tree path (possibly empty) of the unchanged parent, or
-	 *         <code>null</code>
-	 */
-	public abstract TreePath getParentPath();
-
-	/**
-	 * @param visitor
-	 */
-	public void accept(TreeDiffVisitor visitor) {
-		doAccept(visitor, getParentPath());
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffNode.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffNode.java
deleted file mode 100644
index a8b8b8d..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffNode.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * @since 1.1
- * 
- */
-public abstract class TreeDiffNode {
-
-	/**
-	 * 
-	 */
-	public final static int NO_CHANGE = 0x00;
-
-	/**
-	 * 
-	 */
-	public final static int ADDED = 0x01;
-
-	/**
-	 * 
-	 */
-	public final static int REMOVED = 0x02;
-
-	/**
-	 * 
-	 */
-	public final static int REPLACED = 0x03;
-
-	/**
-	 * 
-	 */
-	public static final TreeDiffNode[] NO_CHILDREN = new TreeDiffNode[0];
-
-	/**
-	 * 
-	 */
-	public static final int INDEX_UNKNOWN = -1;
-
-	/**
-	 * @return the change type
-	 */
-	public abstract int getChangeType();
-
-	/**
-	 * @return the element that was removed, or the replaced element
-	 */
-	public abstract Object getOldElement();
-
-	/**
-	 * @return the element that was not changed, added, or the replacement
-	 *         element
-	 */
-	public abstract Object getNewElement();
-
-	/**
-	 * @return the index at which the element was added, removed, or replaced
-	 */
-	public abstract int getIndex();
-
-	/**
-	 * Returns the child tree diff objects that describe changes to children. If
-	 * the change type is REMOVED, there will be no children.
-	 * 
-	 * @return the nodes representing changes to children
-	 */
-	public abstract TreeDiffNode[] getChildren();
-
-	protected void doAccept(TreeDiffVisitor visitor, TreePath parentPath) {
-		TreePath currentPath = parentPath.createChildPath(getNewElement());
-		boolean recurse = visitor.visit(this, currentPath);
-		if (recurse) {
-			TreeDiffNode[] children = getChildren();
-			for (int i = 0; i < children.length; i++) {
-				TreeDiffNode child = children[i];
-				child.doAccept(visitor, currentPath);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffVisitor.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffVisitor.java
deleted file mode 100644
index 837464d..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffVisitor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * @since 3.3
- * 
- */
-public abstract class TreeDiffVisitor {
-
-	/**
-	 * Visits the given tree diff.
-	 * 
-	 * @param diff
-	 *            the diff to visit
-	 * @param currentPath
-	 *            the current path (the diff's element is the last segment of
-	 *            the path)
-	 * 
-	 * @return <code>true</code> if the tree diff's children should be
-	 *         visited; <code>false</code> if they should be skipped.
-	 */
-	public abstract boolean visit(TreeDiffNode diff, TreePath currentPath);
-}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreePath.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreePath.java
deleted file mode 100644
index 99e987c..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/TreePath.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-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, "Segments array cannot be null"); //$NON-NLS-1$
-		this.segments = new Object[segments.length];
-		for (int i = 0; i < segments.length; i++) {
-			Assert.isNotNull(segments[i], "Segments array cannot contain null"); //$NON-NLS-1$
-			this.segments[i] = segments[i];
-		}
-	}
-
-	/**
-	 * 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;
-		}
-		TreePath otherPath = (TreePath) other;
-		if (segments.length != otherPath.segments.length) {
-			return false;
-		}
-		for (int i = 0; i < segments.length; i++) {
-				if (!segments[i].equals(otherPath.segments[i])) {
-					return false;
-				}
-		}
-		return true;
-	}
-
-	public int hashCode() {
-		if (hash == 0) {
-			for (int i = 0; i < segments.length; i++) {
-					hash += segments[i].hashCode();
-			}
-		}
-		return hash;
-	}
-
-	/**
-	 * 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
-	 * @return whether the given path is a prefix of this path, or the same as
-	 *         this path
-	 */
-	public boolean startsWith(TreePath treePath) {
-		int thisSegmentCount = getSegmentCount();
-		int otherSegmentCount = treePath.getSegmentCount();
-		if (otherSegmentCount == thisSegmentCount) {
-			return equals(treePath);
-		}
-		if (otherSegmentCount > thisSegmentCount) {
-			return false;
-		}
-		for (int i = 0; i < otherSegmentCount; i++) {
-			Object otherSegment = treePath.getSegment(i);
-				if (!otherSegment.equals(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.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/package.html b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/package.html
deleted file mode 100644
index d720e2b..0000000
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/internal/databinding/observable/tree/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-To be written.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to ...</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/.classpath b/bundles/org.eclipse.core.databinding/.classpath
deleted file mode 100644
index 6f3b481..0000000
--- a/bundles/org.eclipse.core.databinding/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.1%Foundation-1.1"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.core.databinding/.cvsignore b/bundles/org.eclipse.core.databinding/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.core.databinding/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.core.databinding/.project b/bundles/org.eclipse.core.databinding/.project
deleted file mode 100644
index a52c8d9..0000000
--- a/bundles/org.eclipse.core.databinding/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.core.databinding/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.core.databinding/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b9fdb95..0000000
--- a/bundles/org.eclipse.core.databinding/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-#Thu Apr 03 13:12:49 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=80
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.core.databinding/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.core.databinding/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0f5114f..0000000
--- a/bundles/org.eclipse.core.databinding/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,116 +0,0 @@
-#Mon Dec 03 13:49:43 EST 2007
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=false
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.3\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.core.databinding/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.core.databinding/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 60843cb..0000000
--- a/bundles/org.eclipse.core.databinding/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,145 +0,0 @@
-#Wed Apr 02 17:10:39 EDT 2008
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_LEAK=Warning
-API_PROFILE_ELEMENT_TYPE_REMOVED_API_COMPONENT=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_ADDED_FIELD=Error
-ENUM_ELEMENT_TYPE_ADDED_METHOD=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Ignore
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
diff --git a/bundles/org.eclipse.core.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.core.databinding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 4a56680..0000000
--- a/bundles/org.eclipse.core.databinding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Mon Dec 03 13:49:44 EST 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.core.databinding/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.databinding/META-INF/MANIFEST.MF
deleted file mode 100644
index b5aaa18..0000000
--- a/bundles/org.eclipse.core.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,34 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.core.databinding
-Bundle-Version: 1.1.1.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.core.databinding,
- org.eclipse.core.databinding.conversion;x-internal:=false,
- org.eclipse.core.databinding.observable,
- org.eclipse.core.databinding.observable.list;x-internal:=false,
- org.eclipse.core.databinding.observable.map,
- org.eclipse.core.databinding.observable.masterdetail,
- org.eclipse.core.databinding.observable.set;x-internal:=false,
- org.eclipse.core.databinding.observable.value;x-internal:=false,
- org.eclipse.core.databinding.util,
- org.eclipse.core.databinding.validation;x-internal:=false,
- org.eclipse.core.internal.databinding;x-friends:="org.eclipse.core.databinding.beans",
- org.eclipse.core.internal.databinding.conversion;x-friends:="org.eclipse.jface.tests.databinding",
- org.eclipse.core.internal.databinding.observable;x-internal:=true,
- org.eclipse.core.internal.databinding.observable.masterdetail;x-friends:="org.eclipse.jface.tests.databinding",
- org.eclipse.core.internal.databinding.observable.tree;x-friends:="org.eclipse.jface.databinding,org.eclipse.jface.tests.databinding",
- org.eclipse.core.internal.databinding.validation;x-friends:="org.eclipse.jface.tests.databinding"
-Require-Bundle: org.eclipse.equinox.common;bundle-version="[3.2.0,4.0.0)"
-Import-Package-Comment: see http://wiki.eclipse.org/
-Import-Package: com.ibm.icu.text,
- org.osgi.framework;version="[1.4.0,2.0.0)";resolution:=optional,
- org.osgi.util.tracker;version="[1.3.3,2.0.0)";resolution:=optional,
- org.eclipse.osgi.framework.log;version="[1.0.0,2.0.0)";resolution:=optional
-Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,
- J2SE-1.4
-Bundle-Activator: org.eclipse.core.internal.databinding.Activator
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.core.databinding/about.html b/bundles/org.eclipse.core.databinding/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.core.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.core.databinding/build.properties b/bundles/org.eclipse.core.databinding/build.properties
deleted file mode 100644
index 67499e3..0000000
--- a/bundles/org.eclipse.core.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.core.databinding/plugin.properties b/bundles/org.eclipse.core.databinding/plugin.properties
deleted file mode 100644
index e18f395..0000000
--- a/bundles/org.eclipse.core.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.core.databinding/src/org/eclipse/core/databinding/AggregateValidationStatus.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/AggregateValidationStatus.java
deleted file mode 100644
index bbba98e..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/AggregateValidationStatus.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matt Carter - bug 182822
- *     Boris Bokowski - bug 218269
- *     Matthew Hall - bug 218269
- *******************************************************************************/
-package org.eclipse.core.databinding;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * This class can be used to aggregate status values from a data binding context
- * into a single status value. Instances of this class can be used as an
- * observable value with a value type of {@link IStatus}, or the static methods
- * can be called directly if an aggregated status result is only needed once.
- * 
- * @since 1.0
- * 
- */
-public final class AggregateValidationStatus implements IObservableValue {
-
-	private IObservableValue implementation;
-
-	/**
-	 * Constant denoting an aggregation strategy that merges multiple non-OK
-	 * status objects in a {@link MultiStatus}. Returns an OK status result if
-	 * all statuses from the given validation status providers are the an OK
-	 * status. Returns a single status if there is only one non-OK status.
-	 * 
-	 * @see #getStatusMerged(Collection)
-	 */
-	public static final int MERGED = 1;
-
-	/**
-	 * Constant denoting an aggregation strategy that always returns the most
-	 * severe status from the given validation status providers. If there is
-	 * more than one status at the same severity level, it picks the first one
-	 * it encounters.
-	 * 
-	 * @see #getStatusMaxSeverity(Collection)
-	 */
-	public static final int MAX_SEVERITY = 2;
-
-	/**
-	 * Creates a new aggregate validation status observable for the given data
-	 * binding context.
-	 * 
-	 * @param dbc
-	 *            a data binding context
-	 * @param strategy
-	 *            a strategy constant, one of {@link #MERGED} or
-	 *            {@link #MAX_SEVERITY}.
-	 * @since 1.1
-	 */
-	public AggregateValidationStatus(DataBindingContext dbc, int strategy) {
-		this(dbc.getValidationRealm(), dbc.getValidationStatusProviders(),
-				strategy);
-	}
-
-	/**
-	 * @param validationStatusProviders
-	 *            an observable collection containing elements of type
-	 *            {@link ValidationStatusProvider}
-	 * @param strategy
-	 *            a strategy constant, one of {@link #MERGED} or
-	 *            {@link #MAX_SEVERITY}.
-	 * @see DataBindingContext#getValidationStatusProviders()
-	 */
-	public AggregateValidationStatus(
-			final IObservableCollection validationStatusProviders, int strategy) {
-		this(Realm.getDefault(), validationStatusProviders, strategy);
-	}
-
-	/**
-	 * @param realm
-	 *            Realm
-	 * @param validationStatusProviders
-	 *            an observable collection containing elements of type
-	 *            {@link ValidationStatusProvider}
-	 * @param strategy
-	 *            a strategy constant, one of {@link #MERGED} or
-	 *            {@link #MAX_SEVERITY}.
-	 * @see DataBindingContext#getValidationStatusProviders()
-	 * @since 1.1
-	 */
-	public AggregateValidationStatus(final Realm realm,
-			final IObservableCollection validationStatusProviders, int strategy) {
-		if (strategy == MERGED) {
-			implementation = new ComputedValue(realm, IStatus.class) {
-				protected Object calculate() {
-					return getStatusMerged(validationStatusProviders);
-				}
-			};
-		} else {
-			implementation = new ComputedValue(realm, IStatus.class) {
-				protected Object calculate() {
-					return getStatusMaxSeverity(validationStatusProviders);
-				}
-			};
-		}
-	}
-
-	/**
-	 * @param listener
-	 * @see org.eclipse.core.databinding.observable.IObservable#addChangeListener(org.eclipse.core.databinding.observable.IChangeListener)
-	 */
-	public void addChangeListener(IChangeListener listener) {
-		implementation.addChangeListener(listener);
-	}
-
-	/**
-	 * @param listener
-	 * @see org.eclipse.core.databinding.observable.IObservable#addStaleListener(org.eclipse.core.databinding.observable.IStaleListener)
-	 */
-	public void addStaleListener(IStaleListener listener) {
-		implementation.addStaleListener(listener);
-	}
-
-	/**
-	 * @param listener
-	 * @see org.eclipse.core.databinding.observable.value.IObservableValue#addValueChangeListener(org.eclipse.core.databinding.observable.value.IValueChangeListener)
-	 */
-	public void addValueChangeListener(IValueChangeListener listener) {
-		implementation.addValueChangeListener(listener);
-	}
-
-	public void dispose() {
-		implementation.dispose();
-	}
-
-	public Realm getRealm() {
-		return implementation.getRealm();
-	}
-
-	public Object getValue() {
-		return implementation.getValue();
-	}
-
-	public Object getValueType() {
-		return implementation.getValueType();
-	}
-
-	public boolean isStale() {
-		return implementation.isStale();
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		implementation.removeChangeListener(listener);
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		implementation.removeStaleListener(listener);
-	}
-
-	public void removeValueChangeListener(IValueChangeListener listener) {
-		implementation.removeValueChangeListener(listener);
-	}
-
-	public void setValue(Object value) {
-		implementation.setValue(value);
-	}
-
-	/**
-	 * Returns a status object that merges multiple non-OK status objects in a
-	 * {@link MultiStatus}. Returns an OK status result if all statuses from
-	 * the given validation status providers are the an OK status. Returns a
-	 * single status if there is only one non-OK status.
-	 * 
-	 * @param validationStatusProviders
-	 *            a collection of validation status providers
-	 * @return a merged status
-	 */
-	public static IStatus getStatusMerged(Collection validationStatusProviders) {
-		List statuses = new ArrayList();
-		for (Iterator it = validationStatusProviders.iterator(); it.hasNext();) {
-			ValidationStatusProvider validationStatusProvider = (ValidationStatusProvider) it
-					.next();
-			IStatus status = (IStatus) validationStatusProvider
-					.getValidationStatus().getValue();
-			if (!status.isOK()) {
-				statuses.add(status);
-			}
-		}
-		if (statuses.size() == 1) {
-			return (IStatus) statuses.get(0);
-		}
-		if (!statuses.isEmpty()) {
-			MultiStatus result = new MultiStatus(Policy.JFACE_DATABINDING, 0,
-					BindingMessages
-							.getString(BindingMessages.MULTIPLE_PROBLEMS), null);
-			for (Iterator it = statuses.iterator(); it.hasNext();) {
-				IStatus status = (IStatus) it.next();
-				result.merge(status);
-			}
-			return result;
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Returns a status that always returns the most severe status from the
-	 * given validation status providers. If there is more than one status at
-	 * the same severity level, it picks the first one it encounters.
-	 * 
-	 * @param validationStatusProviders
-	 *            a collection of validation status providers
-	 * @return a single status reflecting the most severe status from the given
-	 *         validation status providers
-	 */
-	public static IStatus getStatusMaxSeverity(
-			Collection validationStatusProviders) {
-		int maxSeverity = IStatus.OK;
-		IStatus maxStatus = Status.OK_STATUS;
-		for (Iterator it = validationStatusProviders.iterator(); it.hasNext();) {
-			ValidationStatusProvider validationStatusProvider = (ValidationStatusProvider) it
-					.next();
-			IStatus status = (IStatus) validationStatusProvider
-					.getValidationStatus().getValue();
-			if (status.getSeverity() > maxSeverity) {
-				maxSeverity = status.getSeverity();
-				maxStatus = status;
-			}
-		}
-		return maxStatus;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/Binding.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/Binding.java
deleted file mode 100644
index a1939a4..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/Binding.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 159768
- *     Boris Bokowski - bug 218269
- *     Matthew Hall - bug 218269
- *******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import java.util.Collections;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * This abstract class represents a binding between a model and a target. Newly
- * created instances need to be added to a data binding context using
- * {@link #init(DataBindingContext)}.
- * 
- * @since 1.0
- */
-public abstract class Binding extends ValidationStatusProvider {
-
-	protected DataBindingContext context;
-	private IObservable target;
-	private IObservable model;
-	
-	/**
-	 * Creates a new binding.
-	 * 
-	 * @param target target observable
-	 * @param model model observable
-	 */
-	public Binding(IObservable target, IObservable model) {
-		this.target = target;
-		this.model = model;
-	}
-	
-	/**
-	 * Initializes this binding with the given context and adds it to the list
-	 * of bindings of the context.
-	 * <p>
-	 * Subclasses may extend, but must call the super implementation.
-	 * </p>
-	 * 
-	 * @param context
-	 */
-	public final void init(DataBindingContext context) {
-		this.context = context;
-		preInit();
-		context.addBinding(this);
-		postInit();
-	}
-	
-	/**
-	 * Called by {@link #init(DataBindingContext)} after setting
-	 * {@link #context} but before adding this binding to the context.
-	 * Subclasses may use this method to perform initialization that could not
-	 * be done in the constructor. Care should be taken not to cause any events
-	 * while running this method.
-	 */
-	protected abstract void preInit();
-	
-	/**
-	 * Called by {@link #init(DataBindingContext)} after adding this binding to
-	 * the context. Subclasses may use this method to perform initialization
-	 * that may cause events to be fired, including BindingEvents that are
-	 * forwarded to the data binding context.
-	 */
-	protected abstract void postInit();
-
-	/**
-	 * @return an observable value containing the current validation status
-	 */
-	public abstract IObservableValue getValidationStatus();
-
-	/**
-	 * Updates the model's state from the target's state at the next reasonable
-	 * opportunity. There is no guarantee that the state will have been updated
-	 * by the time this call returns.
-	 */
-	public abstract void updateTargetToModel();
-
-	/**
-	 * Updates the target's state from the model's state at the next reasonable
-	 * opportunity. There is no guarantee that the state will have been updated
-	 * by the time this call returns.
-	 */
-	public abstract void updateModelToTarget();
-	
-	/**
-	 * Validates the target's state at the next reasonable
-	 * opportunity. There is no guarantee that the validation status will have been updated
-	 * by the time this call returns.
-	 */
-	public abstract void validateTargetToModel();
-	
-	/**
-	 * Validates the model's state at the next reasonable
-	 * opportunity. There is no guarantee that the validation status will have been updated
-	 * by the time this call returns.
-	 */
-	public abstract void validateModelToTarget();
-	
-	/**
-	 * Disposes of this Binding. Subclasses may extend, but must call super.dispose().
-	 */
-	public void dispose() {
-		if (context != null) {
-			context.removeBinding(this);
-		}
-		context = null;
-		target = null;
-		model = null;
-		super.dispose();
-	}
-
-	/**
-	 * @param context
-	 */
-	/* package */ void setDataBindingContext(DataBindingContext context) {
-		this.context = context;
-	}
-
-	/**
-	 * @return target observable
-	 */
-	public IObservable getTarget() {
-		return target;
-	}
-
-	/**
-	 * @since 1.1
-	 */
-	public IObservableList getTargets() {
-		return Observables.staticObservableList(context.getValidationRealm(),
-				Collections.singletonList(target));
-	}
-
-	/**
-	 * @return model observable
-	 */
-	public IObservable getModel() {
-		return model;
-	}
-
-	/**
-	 * @since 1.1
-	 */
-	public IObservableList getModels() {
-		return Observables.staticObservableList(context.getValidationRealm(),
-				Collections.singletonList(model));
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/BindingException.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/BindingException.java
deleted file mode 100644
index ebe8624..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/BindingException.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-
-/**
- * An unchecked exception indicating a binding problem.
- * 
- * @since 1.0
- */
-public class BindingException extends RuntimeException {
-
-	/*
-	 * Needed because all Throwables are Serializable.
-	 */
-	private static final long serialVersionUID = -4092828452936724217L;
-	private Throwable cause;
-
-	/**
-	 * 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);
-		this.cause = cause;
-	}
-
-	public void printStackTrace(PrintStream err) {
-		super.printStackTrace(err);
-		if (cause != null) {
-			err.println("caused by:"); //$NON-NLS-1$
-			cause.printStackTrace(err);
-		}
-	}
-
-	public void printStackTrace(PrintWriter err) {
-		super.printStackTrace(err);
-		if (cause != null) {
-			err.println("caused by:"); //$NON-NLS-1$
-			cause.printStackTrace(err);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/DataBindingContext.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/DataBindingContext.java
deleted file mode 100644
index 08acd66..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/DataBindingContext.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 159539
- *     Brad Reynolds - bug 140644
- *     Brad Reynolds - bug 159940
- *     Brad Reynolds - bug 116920, 159768
- *     Matthew Hall - bugs 118516, 124684, 218269
- *     Boris Bokowski - bug 218269
- *******************************************************************************/
-package org.eclipse.core.databinding;
-
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.ValidationStatusMap;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A DataBindingContext is the point of contact for the creation and management
- * of {@link Binding bindings}, and aggregates validation statuses of its
- * bindings, or more generally, its validation status providers.
- * <p>
- * A DataBindingContext provides the following abilities:
- * <ul>
- * <li>Ability to create bindings between
- * {@link IObservableValue observable values}.</li>
- * <li>Ability to create bindings between
- * {@link IObservableList observable lists}.</li>
- * <li>Access to the bindings created by the instance.</li>
- * <li>Access to the list of validation status providers (this includes all
- * bindings).</li>
- * </ul>
- * </p>
- * <p>
- * Multiple contexts can be used at any point in time. One strategy for the
- * management of contexts is the aggregation of validation statuses. For example
- * an <code>IWizardPage</code> could use a single context and the statuses
- * could be aggregated to set the page status and fulfillment. Each page in the
- * <code>IWizard</code> would have its own context instance.
- * </p>
- * 
- * @since 1.0
- */
-public class DataBindingContext {
-	private WritableList bindings;
-	private WritableList validationStatusProviders;
-
-	/**
-	 * Unmodifiable version of {@link #bindings} for public exposure.
-	 */
-	private IObservableList unmodifiableBindings;
-	/**
-	 * Unmodifiable version of {@link #validationStatusProviders} for public
-	 * exposure.
-	 */
-	private IObservableList unmodifiableStatusProviders;
-
-	private IObservableMap validationStatusMap;
-
-	private Realm validationRealm;
-
-	/**
-	 * Creates a data binding context, using the current default realm for the
-	 * validation observables.
-	 * 
-	 * @see Realm
-	 */
-	public DataBindingContext() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * Creates a data binding context using the given realm for the validation
-	 * observables.
-	 * 
-	 * @param validationRealm
-	 *            the realm to be used for the validation observables
-	 * 
-	 * @see Realm
-	 */
-	public DataBindingContext(Realm validationRealm) {
-		Assert.isNotNull(validationRealm, "Validation realm cannot be null"); //$NON-NLS-1$
-		this.validationRealm = validationRealm;
-
-		bindings = new WritableList(validationRealm);
-		unmodifiableBindings = Observables.unmodifiableObservableList(bindings);
-
-		validationStatusProviders = new WritableList(validationRealm);
-		unmodifiableStatusProviders = Observables
-				.unmodifiableObservableList(validationStatusProviders);
-
-		validationStatusMap = new ValidationStatusMap(validationRealm, bindings);
-	}
-
-	/**
-	 * Creates a {@link Binding} to synchronize the values of two
-	 * {@link IObservableValue observable values}. During synchronization
-	 * validation and conversion can be employed to customize the process. For
-	 * specifics on the customization of the process see
-	 * {@link UpdateValueStrategy}.
-	 * 
-	 * @param targetObservableValue
-	 *            target value, commonly a UI widget
-	 * @param modelObservableValue
-	 *            model value
-	 * @param targetToModel
-	 *            strategy to employ when the target is the source of the change
-	 *            and the model is the destination
-	 * @param modelToTarget
-	 *            strategy to employ when the model is the source of the change
-	 *            and the target is the destination
-	 * @return created binding
-	 * 
-	 * @see UpdateValueStrategy
-	 */
-	public final Binding bindValue(IObservableValue targetObservableValue,
-			IObservableValue modelObservableValue,
-			UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget) {
-		UpdateValueStrategy targetToModelStrategy = targetToModel != null ? targetToModel
-						: createTargetToModelUpdateValueStrategy(targetObservableValue, modelObservableValue);
-		UpdateValueStrategy modelToTargetStrategy = modelToTarget != null ? modelToTarget
-				: createModelToTargetUpdateValueStrategy(modelObservableValue, targetObservableValue);
-		targetToModelStrategy.fillDefaults(targetObservableValue, modelObservableValue);
-		modelToTargetStrategy.fillDefaults(modelObservableValue, targetObservableValue);
-		ValueBinding result = new ValueBinding(targetObservableValue,
-				modelObservableValue, targetToModelStrategy,
-				modelToTargetStrategy);
-		result.init(this);
-		return result;
-	}
-
-	/**
-	 * Returns an update value strategy to be used for copying values from the
-	 * from value to the to value. Clients may override.
-	 * 
-	 * @param fromValue
-	 * @param toValue
-	 * @return a update value strategy
-	 */
-	protected UpdateValueStrategy createModelToTargetUpdateValueStrategy(
-			IObservableValue fromValue, IObservableValue toValue) {
-		return new UpdateValueStrategy();
-	}
-
-	/**
-	 * Returns an update value strategy to be used for copying values from the
-	 * from value to the to value. Clients may override.
-	 * 
-	 * @param fromValue
-	 * @param toValue
-	 * @return a update value strategy
-	 */
-	protected UpdateValueStrategy createTargetToModelUpdateValueStrategy(
-			IObservableValue fromValue, IObservableValue toValue) {
-		return new UpdateValueStrategy();
-	}
-	
-	/**
-	 * Creates a {@link Binding} to synchronize the values of two
-	 * {@link IObservableList observable lists}. During synchronization
-	 * validation and conversion can be employed to customize the process. For
-	 * specifics on the customization of the process see
-	 * {@link UpdateListStrategy}.
-	 * 
-	 * @param targetObservableList
-	 *            target list, commonly a list representing a list in the UI
-	 * @param modelObservableList
-	 *            model list
-	 * @param targetToModel
-	 *            strategy to employ when the target is the source of the change
-	 *            and the model is the destination
-	 * @param modelToTarget
-	 *            strategy to employ when the model is the source of the change
-	 *            and the target is the destination
-	 * @return created binding
-	 * 
-	 * @see UpdateListStrategy
-	 */
-	public final Binding bindList(IObservableList targetObservableList,
-			IObservableList modelObservableList,
-			UpdateListStrategy targetToModel, UpdateListStrategy modelToTarget) {
-		UpdateListStrategy targetToModelStrategy = targetToModel != null ? targetToModel
-				: createTargetToModelUpdateListStrategy(targetObservableList,
-						modelObservableList);
-		UpdateListStrategy modelToTargetStrategy = modelToTarget != null ? modelToTarget
-				: createModelToTargetUpdateListStrategy(modelObservableList,
-						targetObservableList);
-		targetToModelStrategy.fillDefaults(targetObservableList,
-				modelObservableList);
-		modelToTargetStrategy.fillDefaults(modelObservableList,
-				targetObservableList);
-		ListBinding result = new ListBinding(targetObservableList,
-				modelObservableList, targetToModelStrategy,
-				modelToTargetStrategy);
-		result.init(this);
-		return result;
-	}
-
-	/**
-	 * @param modelObservableList
-	 * @param targetObservableList
-	 * @return an update list strategy
-	 */
-	protected UpdateListStrategy createModelToTargetUpdateListStrategy(
-			IObservableList modelObservableList,
-			IObservableList targetObservableList) {
-		return new UpdateListStrategy();
-	}
-
-	/**
-	 * @param targetObservableList
-	 * @param modelObservableList
-	 * @return an update list strategy 
-	 */
-	protected UpdateListStrategy createTargetToModelUpdateListStrategy(
-			IObservableList targetObservableList,
-			IObservableList modelObservableList) {
-		return new UpdateListStrategy();
-	}
-
-	/**
-	 * Creates a {@link Binding} to synchronize the values of two
-	 * {@link IObservableSet observable sets}. During synchronization
-	 * validation and conversion can be employed to customize the process. For
-	 * specifics on the customization of the process see
-	 * {@link UpdateSetStrategy}.
-	 * 
-	 * @param targetObservableSet
-	 *            target set, commonly a set representing a set in the UI
-	 * @param modelObservableSet
-	 *            model set
-	 * @param targetToModel
-	 *            strategy to employ when the target is the source of the change
-	 *            and the model is the destination
-	 * @param modelToTarget
-	 *            strategy to employ when the model is the source of the change
-	 *            and the target is the destination
-	 * @return created binding
-	 * @since 1.1
-	 */
-	public final Binding bindSet(IObservableSet targetObservableSet,
-			IObservableSet modelObservableSet, UpdateSetStrategy targetToModel,
-			UpdateSetStrategy modelToTarget) {
-		if (targetToModel == null)
-			targetToModel = createTargetToModelUpdateSetStrategy(
-					targetObservableSet, modelObservableSet);
-		if (modelToTarget == null)
-			modelToTarget = createModelToTargetUpdateSetStrategy(
-					modelObservableSet, targetObservableSet);
-		targetToModel.fillDefaults(targetObservableSet, modelObservableSet);
-		modelToTarget.fillDefaults(modelObservableSet, targetObservableSet);
-		SetBinding result = new SetBinding(targetObservableSet,
-				modelObservableSet, targetToModel, modelToTarget);
-		result.init(this);
-		return result;
-	}
-
-	/**
-	 * @param targetObservableSet 
-	 * @param modelObservableSet 
-	 * @return a default set update strategy
-	 * @since 1.1
-	 */
-	protected UpdateSetStrategy createTargetToModelUpdateSetStrategy(
-			IObservableSet targetObservableSet,
-			IObservableSet modelObservableSet) {
-		return new UpdateSetStrategy();
-	}
-
-	/**
-	 * @param modelObservableSet 
-	 * @param targetObservableSet 
-	 * @return a default set update strategy 
-	 * @since 1.1
-	 */
-	protected UpdateSetStrategy createModelToTargetUpdateSetStrategy(
-			IObservableSet modelObservableSet,
-			IObservableSet targetObservableSet) {
-		return new UpdateSetStrategy();
-	}
-
-	/**
-	 * Disposes of this data binding context and all bindings and validation
-	 * status providers that were added to this context.
-	 */
-	public final void dispose() {
-		Binding[] bindingArray = (Binding[]) bindings.toArray(new Binding[bindings.size()]);
-		for (int i = 0; i < bindingArray.length; i++) {
-			bindingArray[i].dispose();
-		}
-		ValidationStatusProvider[] statusProviderArray = (ValidationStatusProvider[]) validationStatusProviders
-				.toArray(new ValidationStatusProvider[validationStatusProviders
-						.size()]);
-		for (int i = 0; i < statusProviderArray.length; i++) {
-			if (!statusProviderArray[i].isDisposed())
-				statusProviderArray[i].dispose();
-		}
-	}
-
-	/**
-	 * Returns an unmodifiable observable list with elements of type
-	 * {@link Binding}, ordered by time of addition.
-	 * 
-	 * @return the observable list containing all bindings
-	 */
-	public final IObservableList getBindings() {
-		return unmodifiableBindings;
-	}
-
-	/**
-	 * Returns an unmodifiable observable list with elements of type
-	 * {@link ValidationStatusProvider}, ordered by time of addition.
-	 * 
-	 * @return the observable list containing all bindings
-	 * @since 1.1
-	 */
-	public final IObservableList getValidationStatusProviders() {
-		return unmodifiableStatusProviders;
-	}
-
-	/**
-	 * Returns an observable map from bindings (type: {@link Binding}) to
-	 * statuses (type: {@link IStatus}). The keys of the map are the bindings
-	 * returned by {@link #getBindings()}, and the values are the current
-	 * validaion status objects for each binding.
-	 * 
-	 * @return the observable map from bindings to status objects.
-	 * 
-	 * @deprecated as of 1.1, please use {@link #getValidationStatusProviders()}
-	 */
-	public final IObservableMap getValidationStatusMap() {
-		return validationStatusMap;
-	}
-
-	/**
-	 * Adds the given binding to this data binding context. This will also add
-	 * the given binding to the list of validation status providers.
-	 * 
-	 * @param binding
-	 *            The binding to add.
-	 * @see #addValidationStatusProvider(ValidationStatusProvider)
-	 * @see #getValidationStatusProviders()
-	 */
-	public void addBinding(Binding binding) {
-		addValidationStatusProvider(binding);
-		bindings.add(binding);
-	}
-
-	/**
-	 * Adds the given validation status provider to this data binding context.
-	 * 
-	 * @param validationStatusProvider
-	 *            The validation status provider to add.
-	 * @since 1.1
-	 */
-	public void addValidationStatusProvider(
-			ValidationStatusProvider validationStatusProvider) {
-		validationStatusProviders.add(validationStatusProvider);
-	}
-
-	/**
-	 * Updates all model observable objects to reflect the current state of the
-	 * target observable objects.
-	 * 
-	 */
-	public final void updateModels() {
-		for (Iterator it = bindings.iterator(); it.hasNext();) {
-			Binding binding = (Binding) it.next();
-			binding.updateTargetToModel();
-		}
-	}
-
-	/**
-	 * Updates all target observable objects to reflect the current state of the
-	 * model observable objects.
-	 * 
-	 */
-	public final void updateTargets() {
-		for (Iterator it = bindings.iterator(); it.hasNext();) {
-			Binding binding = (Binding) it.next();
-			binding.updateModelToTarget();
-		}
-	}
-
-	/**
-	 * Removes the given binding.
-	 * 
-	 * @param binding
-	 * @return <code>true</code> if was associated with the context,
-	 *         <code>false</code> if not
-	 */
-	public boolean removeBinding(Binding binding) {
-		return bindings.remove(binding) && removeValidationStatusProvider(binding);
-	}
-
-	/**
-	 * Removes the validation status provider.
-	 * 
-	 * @param validationStatusProvider
-	 * @return <code>true</code> if was associated with the context,
-	 *         <code>false</code> if not
-	 * @since 1.1
-	 */
-	public boolean removeValidationStatusProvider(
-			ValidationStatusProvider validationStatusProvider) {
-		return validationStatusProviders.remove(validationStatusProvider);
-	}
-
-	/**
-	 * Returns the validation realm.
-	 * 
-	 * @return the realm for the validation observables
-	 * @see Realm
-	 */
-	public final Realm getValidationRealm() {
-		return validationRealm;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ListBinding.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ListBinding.java
deleted file mode 100644
index 459c524..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ListBinding.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import java.util.Collections;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.BindingStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 1.0
- * 
- */
-public class ListBinding extends Binding {
-
-	private UpdateListStrategy targetToModel;
-	private UpdateListStrategy modelToTarget;
-	private IObservableValue validationStatusObservable;
-	private boolean updatingTarget;
-	private boolean updatingModel;
-
-	private IListChangeListener targetChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			if (!updatingTarget) {
-				doUpdate((IObservableList) getTarget(),
-						(IObservableList) getModel(), event.diff,
-						targetToModel, false, false);
-			}
-		}
-	};
-	private IListChangeListener modelChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			if (!updatingModel) {
-				doUpdate((IObservableList) getModel(),
-						(IObservableList) getTarget(), event.diff,
-						modelToTarget, false, false);
-			}
-		}
-	};
-
-	/**
-	 * @param target
-	 * @param model
-	 * @param modelToTargetStrategy
-	 * @param targetToModelStrategy
-	 */
-	public ListBinding(IObservableList target, IObservableList model,
-			UpdateListStrategy targetToModelStrategy,
-			UpdateListStrategy modelToTargetStrategy) {
-		super(target, model);
-		this.targetToModel = targetToModelStrategy;
-		this.modelToTarget = modelToTargetStrategy;
-		if ((targetToModel.getUpdatePolicy() & UpdateValueStrategy.POLICY_UPDATE) != 0) {
-			target.addListChangeListener(targetChangeListener);
-		} else {
-			targetChangeListener = null;
-		}
-		if ((modelToTarget.getUpdatePolicy() & UpdateValueStrategy.POLICY_UPDATE) != 0) {
-			model.addListChangeListener(modelChangeListener);
-		} else {
-			modelChangeListener = null;
-		}
-	}
-
-	public IObservableValue getValidationStatus() {
-		return validationStatusObservable;
-	}
-
-	protected void preInit() {
-		validationStatusObservable = new WritableValue(context
-				.getValidationRealm(), Status.OK_STATUS, IStatus.class);
-	}
-
-	protected void postInit() {
-		if (modelToTarget.getUpdatePolicy() == UpdateListStrategy.POLICY_UPDATE) {
-			updateModelToTarget();
-		}
-		if (targetToModel.getUpdatePolicy() != UpdateListStrategy.POLICY_NEVER) {
-			validateTargetToModel();
-		}
-	}
-
-	public void updateModelToTarget() {
-		final IObservableList modelList = (IObservableList) getModel();
-		modelList.getRealm().exec(new Runnable() {
-			public void run() {
-				ListDiff diff = Diffs.computeListDiff(Collections.EMPTY_LIST,
-						modelList);
-				doUpdate(modelList, (IObservableList) getTarget(), diff,
-						modelToTarget, true, true);
-			}
-		});
-	}
-
-	public void updateTargetToModel() {
-		final IObservableList targetList = (IObservableList) getTarget();
-		targetList.getRealm().exec(new Runnable() {
-			public void run() {
-				ListDiff diff = Diffs.computeListDiff(Collections.EMPTY_LIST,
-						targetList);
-				doUpdate(targetList, (IObservableList) getModel(), diff,
-						targetToModel, true, true);
-			}
-		});
-	}
-
-	public void validateModelToTarget() {
-		// nothing for now
-	}
-
-	public void validateTargetToModel() {
-		// nothing for now
-	}
-
-	/*
-	 * This method may be moved to UpdateListStrategy in the future if clients
-	 * need more control over how the two lists are kept in sync.
-	 */
-	private void doUpdate(final IObservableList source,
-			final IObservableList destination, final ListDiff diff,
-			final UpdateListStrategy updateListStrategy,
-			final boolean explicit, final boolean clearDestination) {
-		final int policy = updateListStrategy.getUpdatePolicy();
-		if (policy != UpdateListStrategy.POLICY_NEVER) {
-			if (policy != UpdateListStrategy.POLICY_ON_REQUEST || explicit) {
-				destination.getRealm().exec(new Runnable() {
-					public void run() {
-						if (destination == getTarget()) {
-							updatingTarget = true;
-						} else {
-							updatingModel = true;
-						}
-						MultiStatus multiStatus = BindingStatus.ok();
-
-						try {
-							if (clearDestination) {
-								destination.clear();
-							}
-							ListDiffEntry[] diffEntries = diff.getDifferences();
-							for (int i = 0; i < diffEntries.length; i++) {
-								ListDiffEntry listDiffEntry = diffEntries[i];
-								if (listDiffEntry.isAddition()) {
-									IStatus setterStatus = updateListStrategy
-											.doAdd(
-													destination,
-													updateListStrategy
-															.convert(listDiffEntry
-																	.getElement()),
-													listDiffEntry.getPosition());
-
-									mergeStatus(multiStatus, setterStatus);
-									// TODO - at this point, the two lists
-									// will be out of sync if an error occurred...
-								} else {
-									IStatus setterStatus = updateListStrategy
-											.doRemove(destination,
-													listDiffEntry.getPosition());
-									
-									mergeStatus(multiStatus, setterStatus);
-									// TODO - at this point, the two lists
-									// will be out of sync if an error occurred...
-								}
-							}
-						} finally {
-							validationStatusObservable.setValue(multiStatus);
-
-							if (destination == getTarget()) {
-								updatingTarget = false;
-							} else {
-								updatingModel = false;
-							}
-						}
-					}
-				});
-			}
-		}
-	}
-
-	/**
-	 * Merges the provided <code>newStatus</code> into the
-	 * <code>multiStatus</code>.
-	 * 
-	 * @param multiStatus
-	 * @param newStatus
-	 */
-	/* package */void mergeStatus(MultiStatus multiStatus, IStatus newStatus) {
-		if (!newStatus.isOK()) {
-			multiStatus.add(newStatus);
-		}
-	}
-
-	public void dispose() {
-		if (targetChangeListener != null) {
-			((IObservableList)getTarget()).removeListChangeListener(targetChangeListener);
-			targetChangeListener = null;
-		}
-		if (modelChangeListener != null) {
-			((IObservableList)getModel()).removeListChangeListener(modelChangeListener);
-			modelChangeListener = null;
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ObservablesManager.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ObservablesManager.java
deleted file mode 100644
index 4efad45..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ObservablesManager.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bob Smith - bug 198880
- *******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.internal.databinding.Pair;
-
-/**
- * An observables manager can be used for lifecycle management of
- * {@link IObservable} objects.
- *
- * @noextend This class is not intended to be subclassed by clients.
- *
- * @since 1.0
- *
- */
-public class ObservablesManager {
-
-	private Set managedObservables = new HashSet();
-	private Set excludedObservables = new HashSet();
-	private Map contexts = new HashMap();
-
-	/**
-	 * Create a new observables manager.
-	 */
-	public ObservablesManager() {
-	}
-
-	/**
-	 * Adds the given observable to this manager.
-	 *
-	 * @param observable
-	 *            the observable
-	 */
-	public void addObservable(IObservable observable) {
-		managedObservables.add(observable);
-	}
-
-	/**
-	 * Adds the given observable to this manager's exclusion list. The given
-	 * observable will not be disposed of by this manager.
-	 *
-	 * @param observable
-	 *            the observable
-	 */
-	public void excludeObservable(IObservable observable) {
-		excludedObservables.add(observable);
-	}
-
-	/**
-	 * Adds the given data binding context's target and/or model observables to
-	 * this manager.
-	 *
-	 * @param context
-	 *            the data binding context
-	 * @param trackTargets
-	 *            <code>true</code> if the target observables of the context
-	 *            should be managed
-	 * @param trackModels
-	 *            <code>true</code> if the model observables of the context
-	 *            should be managed
-	 */
-	public void addObservablesFromContext(DataBindingContext context,
-			boolean trackTargets, boolean trackModels) {
-		if (trackTargets || trackModels) {
-			contexts.put(context, new Pair(new Boolean(trackTargets),
-					new Boolean(trackModels)));
-		}
-	}
-
-	/**
-	 * Disposes of this manager and all observables that it manages.
-	 */
-	public void dispose() {
-		Set observables = new HashSet();
-		observables.addAll(managedObservables);
-		for (Iterator it = contexts.keySet().iterator(); it.hasNext();) {
-			DataBindingContext context = (DataBindingContext) it.next();
-			Pair trackModelsOrTargets = (Pair) contexts.get(context);
-			boolean disposeTargets = ((Boolean) trackModelsOrTargets.a)
-					.booleanValue();
-			boolean disposeModels = ((Boolean) trackModelsOrTargets.b)
-					.booleanValue();
-			for (Iterator it2 = context.getBindings().iterator(); it2.hasNext();) {
-				Binding binding = (Binding) it2.next();
-				if (disposeTargets) {
-					observables.add(binding.getTarget());
-				}
-				if (disposeModels) {
-					observables.add(binding.getModel());
-				}
-			}
-		}
-		observables.removeAll(excludedObservables);
-		for (Iterator it = observables.iterator(); it.hasNext();) {
-			IObservable observable = (IObservable) it.next();
-			observable.dispose();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/SetBinding.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/SetBinding.java
deleted file mode 100644
index 9e3d747..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/SetBinding.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 124684)
- *     IBM Corporation - through ListBinding.java
- ******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import java.util.Collections;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.BindingStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 1.1
- * 
- */
-public class SetBinding extends Binding {
-
-	private UpdateSetStrategy targetToModel;
-	private UpdateSetStrategy modelToTarget;
-	private IObservableValue validationStatusObservable;
-	private boolean updatingTarget;
-	private boolean updatingModel;
-
-	private ISetChangeListener targetChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			if (!updatingTarget) {
-				doUpdate((IObservableSet) getTarget(),
-						(IObservableSet) getModel(), event.diff, targetToModel,
-						false, false);
-			}
-		}
-	};
-
-	private ISetChangeListener modelChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			if (!updatingModel) {
-				doUpdate((IObservableSet) getModel(),
-						(IObservableSet) getTarget(), event.diff,
-						modelToTarget, false, false);
-			}
-		}
-	};
-
-	/**
-	 * @param target
-	 * @param model
-	 * @param modelToTargetStrategy
-	 * @param targetToModelStrategy
-	 */
-	public SetBinding(IObservableSet target, IObservableSet model,
-			UpdateSetStrategy targetToModelStrategy,
-			UpdateSetStrategy modelToTargetStrategy) {
-		super(target, model);
-		this.targetToModel = targetToModelStrategy;
-		this.modelToTarget = modelToTargetStrategy;
-		if ((targetToModel.getUpdatePolicy() & UpdateSetStrategy.POLICY_UPDATE) != 0) {
-			target.addSetChangeListener(targetChangeListener);
-		} else {
-			targetChangeListener = null;
-		}
-		if ((modelToTarget.getUpdatePolicy() & UpdateSetStrategy.POLICY_UPDATE) != 0) {
-			model.addSetChangeListener(modelChangeListener);
-		} else {
-			modelChangeListener = null;
-		}
-	}
-
-	public IObservableValue getValidationStatus() {
-		return validationStatusObservable;
-	}
-
-	protected void preInit() {
-		validationStatusObservable = new WritableValue(context
-				.getValidationRealm(), Status.OK_STATUS, IStatus.class);
-	}
-
-	protected void postInit() {
-		if (modelToTarget.getUpdatePolicy() == UpdateSetStrategy.POLICY_UPDATE) {
-			updateModelToTarget();
-		}
-		if (targetToModel.getUpdatePolicy() != UpdateSetStrategy.POLICY_NEVER) {
-			validateTargetToModel();
-		}
-	}
-
-	public void updateModelToTarget() {
-		final IObservableSet modelSet = (IObservableSet) getModel();
-		modelSet.getRealm().exec(new Runnable() {
-			public void run() {
-				SetDiff diff = Diffs.computeSetDiff(Collections.EMPTY_SET,
-						modelSet);
-				doUpdate(modelSet, (IObservableSet) getTarget(), diff,
-						modelToTarget, true, true);
-			}
-		});
-	}
-
-	public void updateTargetToModel() {
-		final IObservableSet targetSet = (IObservableSet) getTarget();
-		targetSet.getRealm().exec(new Runnable() {
-			public void run() {
-				SetDiff diff = Diffs.computeSetDiff(Collections.EMPTY_SET,
-						targetSet);
-				doUpdate(targetSet, (IObservableSet) getModel(), diff,
-						targetToModel, true, true);
-			}
-		});
-	}
-
-	public void validateModelToTarget() {
-		// nothing for now
-	}
-
-	public void validateTargetToModel() {
-		// nothing for now
-	}
-
-	/*
-	 * This method may be moved to UpdateSetStrategy in the future if clients
-	 * need more control over how the two sets are kept in sync.
-	 */
-	private void doUpdate(final IObservableSet source,
-			final IObservableSet destination, final SetDiff diff,
-			final UpdateSetStrategy updateSetStrategy, final boolean explicit,
-			final boolean clearDestination) {
-		final int policy = updateSetStrategy.getUpdatePolicy();
-		if (policy == UpdateSetStrategy.POLICY_NEVER)
-			return;
-		if (policy == UpdateSetStrategy.POLICY_ON_REQUEST && !explicit)
-			return;
-		destination.getRealm().exec(new Runnable() {
-			public void run() {
-				if (destination == getTarget()) {
-					updatingTarget = true;
-				} else {
-					updatingModel = true;
-				}
-				MultiStatus multiStatus = BindingStatus.ok();
-
-				try {
-					if (clearDestination) {
-						destination.clear();
-					}
-
-					for (Iterator iterator = diff.getRemovals().iterator(); iterator
-							.hasNext();) {
-						IStatus setterStatus = updateSetStrategy.doRemove(
-								destination, updateSetStrategy.convert(iterator
-										.next()));
-
-						mergeStatus(multiStatus, setterStatus);
-						// TODO - at this point, the two sets
-						// will be out of sync if an error
-						// occurred...
-					}
-
-					for (Iterator iterator = diff.getAdditions().iterator(); iterator
-							.hasNext();) {
-						IStatus setterStatus = updateSetStrategy.doAdd(
-								destination, updateSetStrategy.convert(iterator
-										.next()));
-
-						mergeStatus(multiStatus, setterStatus);
-						// TODO - at this point, the two sets
-						// will be out of sync if an error
-						// occurred...
-					}
-				} finally {
-					validationStatusObservable.setValue(multiStatus);
-
-					if (destination == getTarget()) {
-						updatingTarget = false;
-					} else {
-						updatingModel = false;
-					}
-				}
-			}
-		});
-	}
-
-	/**
-	 * Merges the provided <code>newStatus</code> into the
-	 * <code>multiStatus</code>.
-	 * 
-	 * @param multiStatus
-	 * @param newStatus
-	 */
-	/* package */void mergeStatus(MultiStatus multiStatus, IStatus newStatus) {
-		if (!newStatus.isOK()) {
-			multiStatus.add(newStatus);
-		}
-	}
-
-	public void dispose() {
-		if (targetChangeListener != null) {
-			((IObservableSet) getTarget())
-					.removeSetChangeListener(targetChangeListener);
-			targetChangeListener = null;
-		}
-		if (modelChangeListener != null) {
-			((IObservableSet) getModel())
-					.removeSetChangeListener(modelChangeListener);
-			modelChangeListener = null;
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateListStrategy.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateListStrategy.java
deleted file mode 100644
index de8d949..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateListStrategy.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- *******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Customizes a {@link Binding} between two
- * {@link IObservableList observable lists}. The following behaviors can be
- * customized via the strategy:
- * <ul>
- * <li>Conversion</li>
- * <li>Automatic processing</li>
- * </ul>
- * <p>
- * Conversion:<br/> When elements are added they can be
- * {@link #convert(Object) converted} to the destination element type.
- * </p>
- * <p>
- * Automatic processing:<br/> The processing to perform when the source
- * observable changes. This behavior is configured via policies provided on
- * construction of the strategy (e.g. {@link #POLICY_NEVER},
- * {@link #POLICY_ON_REQUEST}, {@link #POLICY_UPDATE}).
- * </p>
- *
- *
- * @see DataBindingContext#bindList(IObservableList, IObservableList,
- *      UpdateListStrategy, UpdateListStrategy)
- * @see IConverter
- * @since 1.0
- */
-public class UpdateListStrategy extends UpdateStrategy {
-
-	/**
-	 * Policy constant denoting that the source observable's state should not be
-	 * tracked and that the destination observable's state should never be
-	 * updated.
-	 */
-	public static int POLICY_NEVER = notInlined(1);
-
-	/**
-	 * Policy constant denoting that the source observable's state should not be
-	 * tracked, but that conversion and updating the destination observable's
-	 * state should be performed when explicitly requested.
-	 */
-	public static int POLICY_ON_REQUEST = notInlined(2);
-
-	/**
-	 * Policy constant denoting that the source observable's state should be
-	 * tracked, and that conversion and updating the destination observable's
-	 * state should be performed automatically on every change of the source
-	 * observable state.
-	 */
-	public static int POLICY_UPDATE = notInlined(8);
-
-	/**
-	 * Helper method allowing API evolution of the above constant values. The
-	 * compiler will not inline constant values into client code if values are
-	 * "computed" using this helper.
-	 *
-	 * @param i
-	 *            an integer
-	 * @return the same integer
-	 */
-	private static int notInlined(int i) {
-		return i;
-	}
-
-	protected IConverter converter;
-
-	private int updatePolicy;
-
-	protected boolean provideDefaults;
-
-	/**
-	 * Creates a new update list strategy for automatically updating the
-	 * destination observable list whenever the source observable list changes.
-	 * A default converter will be provided. The defaults can be changed by
-	 * calling one of the setter methods.
-	 */
-	public UpdateListStrategy() {
-		this(true, POLICY_UPDATE);
-	}
-
-	/**
-	 * Creates a new update list strategy with a configurable update policy. A
-	 * default converter will be provided. The defaults can be changed by
-	 * calling one of the setter methods.
-	 *
-	 * @param updatePolicy
-	 *            one of {@link #POLICY_NEVER}, {@link #POLICY_ON_REQUEST}, or
-	 *            {@link #POLICY_UPDATE}
-	 */
-	public UpdateListStrategy(int updatePolicy) {
-		this(true, updatePolicy);
-	}
-
-	/**
-	 * Creates a new update list strategy with a configurable update policy. A
-	 * default converter will be provided if <code>provideDefaults</code> is
-	 * <code>true</code>. The defaults can be changed by calling one of the
-	 * setter methods.
-	 *
-	 * @param provideDefaults
-	 *            if <code>true</code>, default validators and a default
-	 *            converter will be provided based on the observable list's
-	 *            type.
-	 * @param updatePolicy
-	 *            one of {@link #POLICY_NEVER}, {@link #POLICY_ON_REQUEST}, or
-	 *            {@link #POLICY_UPDATE}
-	 */
-	public UpdateListStrategy(boolean provideDefaults, int updatePolicy) {
-		this.provideDefaults = provideDefaults;
-		this.updatePolicy = updatePolicy;
-	}
-
-	/**
-	 * When an element is added to the destination converts the element from the
-	 * source element type to the destination element type.
-	 * <p>
-	 * Default implementation will use the
-	 * {@link #setConverter(IConverter) converter} if one exists. If no
-	 * converter exists no conversion occurs.
-	 * </p>
-	 *
-	 * @param element
-	 * @return the converted element
-	 */
-	public Object convert(Object element) {
-		return converter == null ? element : converter.convert(element);
-	}
-
-	/**
-	 *
-	 * @param source
-	 * @param destination
-	 */
-	protected void fillDefaults(IObservableList source,
-			IObservableList destination) {
-		Object sourceType = source.getElementType();
-		Object destinationType = destination.getElementType();
-		if (provideDefaults && sourceType != null && destinationType != null) {
-			if (converter == null) {
-				setConverter(createConverter(sourceType, destinationType));
-			}
-		}
-		if (converter != null) {
-			if (sourceType != null) {
-				checkAssignable(converter.getFromType(), sourceType,
-						"converter does not convert from type " + sourceType); //$NON-NLS-1$
-			}
-			if (destinationType != null) {
-				checkAssignable(converter.getToType(), destinationType,
-						"converter does not convert to type " + destinationType); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * @return the update policy
-	 */
-	public int getUpdatePolicy() {
-		return updatePolicy;
-	}
-
-	/**
-	 * Sets the converter to be invoked when converting added elements from the
-	 * source element type to the destination element type.
-	 *
-	 * @param converter
-	 * @return the receiver, to enable method call chaining
-	 */
-	public UpdateListStrategy setConverter(IConverter converter) {
-		this.converter = converter;
-		return this;
-	}
-
-	/**
-	 * Adds the given element at the given index to the given observable list.
-	 * Clients may extend but must call the super implementation.
-	 *
-	 * @param observableList
-	 * @param element
-	 * @param index
-	 * @return a status
-	 */
-	protected IStatus doAdd(IObservableList observableList, Object element,
-			int index) {
-		try {
-			observableList.add(index, element);
-		} catch (Exception ex) {
-			return ValidationStatus.error(BindingMessages
-					.getString(BindingMessages.VALUEBINDING_ERROR_WHILE_SETTING_VALUE),
-					ex);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Removes the element at the given index from the given observable list.
-	 * Clients may extend but must call the super implementation.
-	 *
-	 * @param observableList
-	 * @param index
-	 * @return a status
-	 */
-	protected IStatus doRemove(IObservableList observableList, int index) {
-		try {
-			observableList.remove(index);
-		} catch (Exception ex) {
-			return ValidationStatus.error(BindingMessages
-					.getString(BindingMessages.VALUEBINDING_ERROR_WHILE_SETTING_VALUE),
-					ex);
-		}
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateSetStrategy.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateSetStrategy.java
deleted file mode 100644
index 8867bbd..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateSetStrategy.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 124684)
- *     IBM Corporation - through UpdateListStrategy.java
- ******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Customizes a {@link Binding} between two
- * {@link IObservableSet observable sets}. The following behaviors can be
- * customized via the strategy:
- * <ul>
- * <li>Conversion</li>
- * <li>Automatic processing</li>
- * </ul>
- * <p>
- * Conversion:<br/> When elements are added they can be
- * {@link #convert(Object) converted} to the destination element type.
- * </p>
- * <p>
- * Automatic processing:<br/> The processing to perform when the source
- * observable changes. This behavior is configured via policies provided on
- * construction of the strategy (e.g. {@link #POLICY_NEVER},
- * {@link #POLICY_ON_REQUEST}, {@link #POLICY_UPDATE}).
- * </p>
- * 
- * 
- * @see DataBindingContext#bindSet(IObservableSet, IObservableSet,
- *      UpdateSetStrategy, UpdateSetStrategy)
- * @see IConverter
- * @since 1.1
- */
-public class UpdateSetStrategy extends UpdateStrategy {
-
-	/**
-	 * Policy constant denoting that the source observable's state should not be
-	 * tracked and that the destination observable's state should never be
-	 * updated.
-	 */
-	public final static int POLICY_NEVER = notInlined(1);
-
-	/**
-	 * Policy constant denoting that the source observable's state should not be
-	 * tracked, but that conversion and updating the destination observable's
-	 * state should be performed when explicitly requested.
-	 */
-	public final static int POLICY_ON_REQUEST = notInlined(2);
-
-	/**
-	 * Policy constant denoting that the source observable's state should be
-	 * tracked, and that conversion and updating the destination observable's
-	 * state should be performed automatically on every change of the source
-	 * observable state.
-	 */
-	public final static int POLICY_UPDATE = notInlined(8);
-
-	/**
-	 * Helper method allowing API evolution of the above constant values. The
-	 * compiler will not inline constant values into client code if values are
-	 * "computed" using this helper.
-	 * 
-	 * @param i
-	 *            an integer
-	 * @return the same integer
-	 */
-	private static int notInlined(int i) {
-		return i;
-	}
-
-	protected IConverter converter;
-
-	private int updatePolicy;
-
-	protected boolean provideDefaults;
-
-	/**
-	 * Creates a new update list strategy for automatically updating the
-	 * destination observable list whenever the source observable list changes.
-	 * A default converter will be provided. The defaults can be changed by
-	 * calling one of the setter methods.
-	 */
-	public UpdateSetStrategy() {
-		this(true, POLICY_UPDATE);
-	}
-
-	/**
-	 * Creates a new update list strategy with a configurable update policy. A
-	 * default converter will be provided. The defaults can be changed by
-	 * calling one of the setter methods.
-	 * 
-	 * @param updatePolicy
-	 *            one of {@link #POLICY_NEVER}, {@link #POLICY_ON_REQUEST}, or
-	 *            {@link #POLICY_UPDATE}
-	 */
-	public UpdateSetStrategy(int updatePolicy) {
-		this(true, updatePolicy);
-	}
-
-	/**
-	 * Creates a new update list strategy with a configurable update policy. A
-	 * default converter will be provided if <code>provideDefaults</code> is
-	 * <code>true</code>. The defaults can be changed by calling one of the
-	 * setter methods.
-	 * 
-	 * @param provideDefaults
-	 *            if <code>true</code>, default validators and a default
-	 *            converter will be provided based on the observable list's
-	 *            type.
-	 * @param updatePolicy
-	 *            one of {@link #POLICY_NEVER}, {@link #POLICY_ON_REQUEST}, or
-	 *            {@link #POLICY_UPDATE}
-	 */
-	public UpdateSetStrategy(boolean provideDefaults, int updatePolicy) {
-		this.provideDefaults = provideDefaults;
-		this.updatePolicy = updatePolicy;
-	}
-
-	/**
-	 * When an element is added to the destination converts the element from the
-	 * source element type to the destination element type.
-	 * <p>
-	 * Default implementation will use the
-	 * {@link #setConverter(IConverter) converter} if one exists. If no
-	 * converter exists no conversion occurs.
-	 * </p>
-	 * 
-	 * @param element
-	 * @return the converted element
-	 */
-	public Object convert(Object element) {
-		return converter == null ? element : converter.convert(element);
-	}
-
-	/**
-	 * 
-	 * @param source
-	 * @param destination
-	 */
-	protected void fillDefaults(IObservableSet source,
-			IObservableSet destination) {
-		Object sourceType = source.getElementType();
-		Object destinationType = destination.getElementType();
-		if (provideDefaults && sourceType != null && destinationType != null) {
-			if (converter == null) {
-				setConverter(createConverter(sourceType, destinationType));
-			}
-		}
-		if (converter != null) {
-			if (sourceType != null) {
-				checkAssignable(converter.getFromType(), sourceType,
-						"converter does not convert from type " + sourceType); //$NON-NLS-1$
-			}
-			if (destinationType != null) {
-				checkAssignable(converter.getToType(), destinationType,
-						"converter does not convert to type " + destinationType); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * @return the update policy
-	 */
-	public int getUpdatePolicy() {
-		return updatePolicy;
-	}
-
-	/**
-	 * Sets the converter to be invoked when converting added elements from the
-	 * source element type to the destination element type.
-	 * 
-	 * @param converter
-	 * @return the receiver, to enable method call chaining
-	 */
-	public UpdateSetStrategy setConverter(IConverter converter) {
-		this.converter = converter;
-		return this;
-	}
-
-	/**
-	 * Adds the given element at the given index to the given observable list.
-	 * Clients may extend but must call the super implementation.
-	 * 
-	 * @param observableSet
-	 * @param element
-	 * @return a status
-	 */
-	protected IStatus doAdd(IObservableSet observableSet, Object element) {
-		try {
-			observableSet.add(element);
-		} catch (Exception ex) {
-			return ValidationStatus.error(BindingMessages
-					.getString("ValueBinding_ErrorWhileSettingValue"), //$NON-NLS-1$
-					ex);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Removes the element at the given index from the given observable list.
-	 * Clients may extend but must call the super implementation.
-	 * 
-	 * @param observableSet
-	 * @param element 
-	 * @return a status
-	 */
-	protected IStatus doRemove(IObservableSet observableSet, Object element) {
-		try {
-			observableSet.remove(element);
-		} catch (Exception ex) {
-			return ValidationStatus.error(BindingMessages
-					.getString("ValueBinding_ErrorWhileSettingValue"), //$NON-NLS-1$
-					ex);
-		}
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateStrategy.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateStrategy.java
deleted file mode 100644
index f8adb89..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateStrategy.java
+++ /dev/null
@@ -1,710 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matt Carter - Bug 180392
- *                 - Character support completed (bug 197679)
- *******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.conversion.NumberToStringConverter;
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.ClassLookupSupport;
-import org.eclipse.core.internal.databinding.Pair;
-import org.eclipse.core.internal.databinding.conversion.CharacterToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.IdentityConverter;
-import org.eclipse.core.internal.databinding.conversion.IntegerToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigDecimalConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
-import org.eclipse.core.internal.databinding.conversion.ObjectToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToByteConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToCharacterConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToShortConverter;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.0
- *
- */
-/* package */class UpdateStrategy {
-
-	private static final String BOOLEAN_TYPE = "java.lang.Boolean.TYPE"; //$NON-NLS-1$
-
-	private static final String SHORT_TYPE = "java.lang.Short.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 FLOAT_TYPE = "java.lang.Float.TYPE"; //$NON-NLS-1$
-
-	private static final String INTEGER_TYPE = "java.lang.Integer.TYPE"; //$NON-NLS-1$
-
-	private static final String LONG_TYPE = "java.lang.Long.TYPE"; //$NON-NLS-1$
-
-	private static final String CHARACTER_TYPE = "java.lang.Character.TYPE"; //$NON-NLS-1$
-
-	private static Map converterMap;
-
-	private static 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;
-		else if (clazz == Character.TYPE)
-			return Character.class;
-		return clazz;
-	}
-
-	final protected void checkAssignable(Object toType, Object fromType,
-			String errorString) {
-		Boolean assignableFromModelToModelConverter = isAssignableFromTo(
-				fromType, toType);
-		if (assignableFromModelToModelConverter != null
-				&& !assignableFromModelToModelConverter.booleanValue()) {
-			throw new BindingException(errorString
-					+ " Expected: " + fromType + ", actual: " + toType); //$NON-NLS-1$//$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * 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.
-	 *
-	 * @param fromType
-	 * @param toType
-	 * @return an IConverter, or <code>null</code> if unsuccessful
-	 */
-	protected IConverter createConverter(Object fromType, Object toType) {
-		if (!(fromType instanceof Class) || !(toType instanceof Class)) {
-			return new DefaultConverter(fromType, toType);
-		}
-		Class toClass = (Class) toType;
-		Class originalToClass = toClass;
-		if (toClass.isPrimitive()) {
-			toClass = autoboxed(toClass);
-		}
-		Class fromClass = (Class) fromType;
-		Class originalFromClass = fromClass;
-		if (fromClass.isPrimitive()) {
-			fromClass = autoboxed(fromClass);
-		}
-		if (!((Class) toType).isPrimitive()
-				&& toClass.isAssignableFrom(fromClass)) {
-			return new IdentityConverter(originalFromClass, originalToClass);
-		}
-		if (((Class) fromType).isPrimitive() && ((Class) toType).isPrimitive()
-				&& fromType.equals(toType)) {
-			return new IdentityConverter(originalFromClass, originalToClass);
-		}
-		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 (Exception e) {
-					Policy
-							.getLog()
-							.log(
-									new Status(
-											IStatus.ERROR,
-											Policy.JFACE_DATABINDING,
-											0,
-											"Error while instantiating default converter", e)); //$NON-NLS-1$
-				}
-			}
-		}
-		// 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(originalFromClass, originalToClass);
-		}
-		return new DefaultConverter(fromType, toType);
-	}
-
-	private synchronized static Map getConverterMap() {
-		// using string-based lookup avoids loading of too many classes
-		if (converterMap == null) {
-			// NumberFormat to be shared across converters for the formatting of
-			// integer values
-			NumberFormat integerFormat = NumberFormat.getIntegerInstance();
-			// NumberFormat to be shared across converters for formatting non
-			// integer values
-			NumberFormat numberFormat = NumberFormat.getNumberInstance();
-
-			converterMap = new HashMap();
-			// Standard and Boxed Types
-			converterMap
-					.put(
-							new Pair("java.util.Date", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.DateToStringConverter"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Boolean"), "org.eclipse.core.internal.databinding.conversion.StringToBooleanConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Byte"), StringToByteConverter.toByte(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.util.Date"), "org.eclipse.core.internal.databinding.conversion.StringToDateConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Short"), StringToShortConverter.toShort(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Character"), StringToCharacterConverter.toCharacter(false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Integer"), StringToNumberConverter.toInteger(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Double"), StringToNumberConverter.toDouble(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Long"), StringToNumberConverter.toLong(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.lang.Float"), StringToNumberConverter.toFloat(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.String", "java.math.BigInteger"), StringToNumberConverter.toBigInteger(integerFormat)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.Integer", "java.lang.String"), NumberToStringConverter.fromInteger(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.Long", "java.lang.String"), NumberToStringConverter.fromLong(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.Double", "java.lang.String"), NumberToStringConverter.fromDouble(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.Float", "java.lang.String"), NumberToStringConverter.fromFloat(numberFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.math.BigInteger", "java.lang.String"), NumberToStringConverter.fromBigInteger(integerFormat)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.Byte", "java.lang.String"), IntegerToStringConverter.fromByte(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.Short", "java.lang.String"), IntegerToStringConverter.fromShort(integerFormat, false)); //$NON-NLS-1$//$NON-NLS-2$
-			converterMap
-					.put(
-							new Pair("java.lang.Character", "java.lang.String"), CharacterToStringConverter.fromCharacter(false)); //$NON-NLS-1$//$NON-NLS-2$
-
-			converterMap
-					.put(
-							new Pair("java.lang.Object", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.ObjectToStringConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-
-			// Integer.TYPE
-			converterMap
-					.put(
-							new Pair("java.lang.String", INTEGER_TYPE), StringToNumberConverter.toInteger(integerFormat, true)); //$NON-NLS-1$
-			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.Object"), new IdentityConverter(Integer.TYPE, Object.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(INTEGER_TYPE, "java.lang.String"), NumberToStringConverter.fromInteger(integerFormat, true)); //$NON-NLS-1$
-
-			// Byte.TYPE
-			converterMap
-					.put(
-							new Pair("java.lang.String", BYTE_TYPE), StringToByteConverter.toByte(integerFormat, true)); //$NON-NLS-1$
-			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"), IntegerToStringConverter.fromByte(integerFormat, true)); //$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), StringToNumberConverter.toDouble(numberFormat, true)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(DOUBLE_TYPE, "java.lang.String"), NumberToStringConverter.fromDouble(numberFormat, true)); //$NON-NLS-1$
-
-			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.Object"), new IdentityConverter(Double.TYPE, Object.class)); //$NON-NLS-1$
-
-			// Boolean.TYPE
-			converterMap
-					.put(
-							new Pair("java.lang.String", BOOLEAN_TYPE), "org.eclipse.core.internal.databinding.conversion.StringToBooleanPrimitiveConverter"); //$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 ObjectToStringConverter(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), StringToNumberConverter.toFloat(numberFormat, true)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(FLOAT_TYPE, "java.lang.String"), NumberToStringConverter.fromFloat(numberFormat, true)); //$NON-NLS-1$
-			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.Object"), new IdentityConverter(Float.TYPE, Object.class)); //$NON-NLS-1$
-
-			// Short.TYPE
-			converterMap
-					.put(
-							new Pair("java.lang.String", SHORT_TYPE), StringToShortConverter.toShort(integerFormat, true)); //$NON-NLS-1$
-			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"), IntegerToStringConverter.fromShort(integerFormat, true)); //$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), StringToNumberConverter.toLong(integerFormat, true)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(LONG_TYPE, "java.lang.String"), NumberToStringConverter.fromLong(integerFormat, true)); //$NON-NLS-1$
-			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.Object"), new IdentityConverter(Long.TYPE, Object.class)); //$NON-NLS-1$
-
-			// Character.TYPE
-			converterMap
-					.put(
-							new Pair("java.lang.String", CHARACTER_TYPE), StringToCharacterConverter.toCharacter(true)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(CHARACTER_TYPE, "java.lang.Character"), new IdentityConverter(Character.TYPE, Character.class)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(CHARACTER_TYPE, "java.lang.String"), CharacterToStringConverter.fromCharacter(true)); //$NON-NLS-1$
-			converterMap
-					.put(
-							new Pair(CHARACTER_TYPE, "java.lang.Object"), new IdentityConverter(Character.TYPE, Object.class)); //$NON-NLS-1$
-
-			// Miscellaneous
-			converterMap
-					.put(
-							new Pair(
-									"org.eclipse.core.runtime.IStatus", "java.lang.String"), "org.eclipse.core.internal.databinding.conversion.StatusToStringConverter"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-
-			addNumberToByteConverters(converterMap, integerFormat,
-					integerClasses);
-			addNumberToByteConverters(converterMap, numberFormat, floatClasses);
-
-			addNumberToShortConverters(converterMap, integerFormat,
-					integerClasses);
-			addNumberToShortConverters(converterMap, numberFormat, floatClasses);
-
-			addNumberToIntegerConverters(converterMap, integerFormat,
-					integerClasses);
-			addNumberToIntegerConverters(converterMap, numberFormat,
-					floatClasses);
-
-			addNumberToLongConverters(converterMap, integerFormat,
-					integerClasses);
-			addNumberToLongConverters(converterMap, numberFormat, floatClasses);
-
-			addNumberToFloatConverters(converterMap, integerFormat,
-					integerClasses);
-			addNumberToFloatConverters(converterMap, numberFormat, floatClasses);
-
-			addNumberToDoubleConverters(converterMap, integerFormat,
-					integerClasses);
-			addNumberToDoubleConverters(converterMap, numberFormat,
-					floatClasses);
-
-			addNumberToBigIntegerConverters(converterMap, integerFormat,
-					integerClasses);
-			addNumberToBigIntegerConverters(converterMap, numberFormat,
-					floatClasses);
-
-			addNumberToBigDecimalConverters(converterMap, integerFormat,
-					integerClasses);
-			addNumberToBigDecimalConverters(converterMap, numberFormat,
-					floatClasses);
-		}
-
-		return converterMap;
-	}
-
-	private static final Class[] integerClasses = new Class[] { Byte.TYPE,
-			Byte.class, Short.TYPE, Short.class, Integer.TYPE, Integer.class,
-			Long.TYPE, Long.class, BigInteger.class };
-
-	private static final Class[] floatClasses = new Class[] { Float.TYPE,
-			Float.class, Double.TYPE, Double.class, BigDecimal.class };
-
-	/**
-	 * Registers converters to boxed and unboxed types from a list of from
-	 * classes.
-	 *
-	 * @param map
-	 * @param numberFormat
-	 * @param fromTypes
-	 */
-	private static void addNumberToByteConverters(Map map,
-			NumberFormat numberFormat, Class[] fromTypes) {
-
-		for (int i = 0; i < fromTypes.length; i++) {
-			Class fromType = fromTypes[i];
-			if (!fromType.equals(Byte.class) && !fromType.equals(Byte.TYPE)) {
-				String fromName = (fromType.isPrimitive()) ? getKeyForClass(
-						fromType, null) : fromType.getName();
-
-				map
-						.put(new Pair(fromName, BYTE_TYPE),
-								new NumberToByteConverter(numberFormat,
-										fromType, true));
-				map
-						.put(new Pair(fromName, Byte.class.getName()),
-								new NumberToByteConverter(numberFormat,
-										fromType, false));
-			}
-		}
-	}
-
-	/**
-	 * Registers converters to boxed and unboxed types from a list of from
-	 * classes.
-	 *
-	 * @param map
-	 * @param numberFormat
-	 * @param fromTypes
-	 */
-	private static void addNumberToShortConverters(Map map,
-			NumberFormat numberFormat, Class[] fromTypes) {
-		for (int i = 0; i < fromTypes.length; i++) {
-			Class fromType = fromTypes[i];
-			if (!fromType.equals(Short.class) && !fromType.equals(Short.TYPE)) {
-				String fromName = (fromType.isPrimitive()) ? getKeyForClass(
-						fromType, null) : fromType.getName();
-
-				map
-						.put(new Pair(fromName, SHORT_TYPE),
-								new NumberToShortConverter(numberFormat,
-										fromType, true));
-				map.put(new Pair(fromName, Short.class.getName()),
-						new NumberToShortConverter(numberFormat, fromType,
-								false));
-			}
-		}
-	}
-
-	/**
-	 * Registers converters to boxed and unboxed types from a list of from
-	 * classes.
-	 *
-	 * @param map
-	 * @param numberFormat
-	 * @param fromTypes
-	 */
-	private static void addNumberToIntegerConverters(Map map,
-			NumberFormat numberFormat, Class[] fromTypes) {
-		for (int i = 0; i < fromTypes.length; i++) {
-			Class fromType = fromTypes[i];
-			if (!fromType.equals(Integer.class)
-					&& !fromType.equals(Integer.TYPE)) {
-				String fromName = (fromType.isPrimitive()) ? getKeyForClass(
-						fromType, null) : fromType.getName();
-
-				map.put(new Pair(fromName, INTEGER_TYPE),
-						new NumberToIntegerConverter(numberFormat, fromType,
-								true));
-				map.put(new Pair(fromName, Integer.class.getName()),
-						new NumberToIntegerConverter(numberFormat, fromType,
-								false));
-			}
-		}
-	}
-
-	/**
-	 * Registers converters to boxed and unboxed types from a list of from
-	 * classes.
-	 *
-	 * @param map
-	 * @param numberFormat
-	 * @param fromTypes
-	 */
-	private static void addNumberToLongConverters(Map map,
-			NumberFormat numberFormat, Class[] fromTypes) {
-		for (int i = 0; i < fromTypes.length; i++) {
-			Class fromType = fromTypes[i];
-			if (!fromType.equals(Long.class) && !fromType.equals(Long.TYPE)) {
-				String fromName = (fromType.isPrimitive()) ? getKeyForClass(
-						fromType, null) : fromType.getName();
-
-				map
-						.put(new Pair(fromName, LONG_TYPE),
-								new NumberToLongConverter(numberFormat,
-										fromType, true));
-				map
-						.put(new Pair(fromName, Long.class.getName()),
-								new NumberToLongConverter(numberFormat,
-										fromType, false));
-			}
-		}
-	}
-
-	/**
-	 * Registers converters to boxed and unboxed types from a list of from
-	 * classes.
-	 *
-	 * @param map
-	 * @param numberFormat
-	 * @param fromTypes
-	 */
-	private static void addNumberToFloatConverters(Map map,
-			NumberFormat numberFormat, Class[] fromTypes) {
-		for (int i = 0; i < fromTypes.length; i++) {
-			Class fromType = fromTypes[i];
-			if (!fromType.equals(Float.class) && !fromType.equals(Float.TYPE)) {
-				String fromName = (fromType.isPrimitive()) ? getKeyForClass(
-						fromType, null) : fromType.getName();
-
-				map
-						.put(new Pair(fromName, FLOAT_TYPE),
-								new NumberToFloatConverter(numberFormat,
-										fromType, true));
-				map.put(new Pair(fromName, Float.class.getName()),
-						new NumberToFloatConverter(numberFormat, fromType,
-								false));
-			}
-		}
-	}
-
-	/**
-	 * Registers converters to boxed and unboxed types from a list of from
-	 * classes.
-	 *
-	 * @param map
-	 * @param numberFormat
-	 * @param fromTypes
-	 */
-	private static void addNumberToDoubleConverters(Map map,
-			NumberFormat numberFormat, Class[] fromTypes) {
-		for (int i = 0; i < fromTypes.length; i++) {
-			Class fromType = fromTypes[i];
-			if (!fromType.equals(Double.class) && !fromType.equals(Double.TYPE)) {
-				String fromName = (fromType.isPrimitive()) ? getKeyForClass(
-						fromType, null) : fromType.getName();
-
-				map.put(new Pair(fromName, DOUBLE_TYPE),
-						new NumberToDoubleConverter(numberFormat, fromType,
-								true));
-				map.put(new Pair(fromName, Double.class.getName()),
-						new NumberToDoubleConverter(numberFormat, fromType,
-								false));
-			}
-		}
-	}
-
-	/**
-	 * Registers converters to boxed and unboxed types from a list of from
-	 * classes.
-	 *
-	 * @param map
-	 * @param numberFormat
-	 * @param fromTypes
-	 */
-	private static void addNumberToBigIntegerConverters(Map map,
-			NumberFormat numberFormat, Class[] fromTypes) {
-		for (int i = 0; i < fromTypes.length; i++) {
-			Class fromType = fromTypes[i];
-			if (!fromType.equals(BigInteger.class)) {
-				String fromName = (fromType.isPrimitive()) ? getKeyForClass(
-						fromType, null) : fromType.getName();
-
-				map
-						.put(new Pair(fromName, BigInteger.class.getName()),
-								new NumberToBigIntegerConverter(numberFormat,
-										fromType));
-			}
-		}
-	}
-
-	/**
-	 * Registers converters to boxed and unboxed types from a list of from
-	 * classes.
-	 *
-	 * @param map
-	 * @param numberFormat
-	 * @param fromTypes
-	 */
-	private static void addNumberToBigDecimalConverters(Map map,
-			NumberFormat numberFormat, Class[] fromTypes) {
-		for (int i = 0; i < fromTypes.length; i++) {
-			Class fromType = fromTypes[i];
-			if (!fromType.equals(BigDecimal.class)) {
-				String fromName = (fromType.isPrimitive()) ? getKeyForClass(
-						fromType, null) : fromType.getName();
-
-				map
-						.put(new Pair(fromName, BigDecimal.class.getName()),
-								new NumberToBigDecimalConverter(numberFormat,
-										fromType));
-			}
-		}
-	}
-
-	private static 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();
-	}
-
-	/**
-	 * Returns {@link Boolean#TRUE} if the from type is assignable to the to
-	 * type, or {@link Boolean#FALSE} if it not, or <code>null</code> if
-	 * unknown.
-	 * 
-	 * @param fromType
-	 * @param toType
-	 * @return whether fromType is assignable to toType, or <code>null</code>
-	 *         if unknown
-	 */
-	protected 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 toClass.isAssignableFrom(fromClass) ? Boolean.TRUE
-					: Boolean.FALSE;
-		}
-		return null;
-	}
-
-	/*
-	 * Default converter implementation, does not perform any conversion.
-	 */
-	protected static final class DefaultConverter implements IConverter {
-
-		private final Object toType;
-
-		private final Object fromType;
-
-		/**
-		 * @param fromType
-		 * @param toType
-		 */
-		DefaultConverter(Object fromType, Object toType) {
-			this.toType = toType;
-			this.fromType = fromType;
-		}
-
-		public Object convert(Object fromObject) {
-			return fromObject;
-		}
-
-		public Object getFromType() {
-			return fromType;
-		}
-
-		public Object getToType() {
-			return toType;
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateValueStrategy.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateValueStrategy.java
deleted file mode 100644
index 22a7a35..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/UpdateValueStrategy.java
+++ /dev/null
@@ -1,580 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matt Carter - Character support completed (bug 197679)
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- *******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import java.util.Date;
-import java.util.HashMap;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.internal.databinding.Pair;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigDecimalConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToCharacterConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToDateConverter;
-import org.eclipse.core.internal.databinding.validation.NumberFormatConverter;
-import org.eclipse.core.internal.databinding.validation.NumberToByteValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToDoubleValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToFloatValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToIntegerValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToLongValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToShortValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToUnboundedNumberValidator;
-import org.eclipse.core.internal.databinding.validation.ObjectToPrimitiveValidator;
-import org.eclipse.core.internal.databinding.validation.StringToByteValidator;
-import org.eclipse.core.internal.databinding.validation.StringToCharacterValidator;
-import org.eclipse.core.internal.databinding.validation.StringToDateValidator;
-import org.eclipse.core.internal.databinding.validation.StringToDoubleValidator;
-import org.eclipse.core.internal.databinding.validation.StringToFloatValidator;
-import org.eclipse.core.internal.databinding.validation.StringToIntegerValidator;
-import org.eclipse.core.internal.databinding.validation.StringToLongValidator;
-import org.eclipse.core.internal.databinding.validation.StringToShortValidator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Customizes a {@link Binding} between two
- * {@link IObservableValue observable values}. The following behaviors can be
- * customized via the strategy:
- * <ul>
- * <li>Validation</li>
- * <li>Conversion</li>
- * <li>Automatic processing</li>
- * </ul>
- * <p>
- * The update phases are:
- * <ol>
- * <li>Validate after get - {@link #validateAfterGet(Object)}</li>
- * <li>Conversion - {@link #convert(Object)}</li>
- * <li>Validate after conversion - {@link #validateAfterConvert(Object)}</li>
- * <li>Validate before set - {@link #validateBeforeSet(Object)}</li>
- * <li>Value set - {@link #doSet(IObservableValue, Object)}</li>
- * </ol>
- * </p>
- * <p>
- * Validation:<br/> {@link IValidator Validators} validate the value at
- * multiple phases in the update process. Statuses returned from validators are
- * aggregated into a <code>MultiStatus</code> until a status of
- * <code>ERROR</code> or <code>CANCEL</code> is encountered. Either of these
- * statuses will abort the update process. These statuses are available as the
- * {@link Binding#getValidationStatus() binding validation status}.
- * </p>
- * <p>
- * Conversion:<br/> A {@link IConverter converter} will convert the value from
- * the type of the source observable into the type of the destination. The
- * strategy has the ability to default converters for common scenarios.
- * </p>
- * <p>
- * Automatic processing:<br/> The processing to perform when the source
- * observable changes. This behavior is configured via policies provided on
- * construction of the strategy (e.g. {@link #POLICY_NEVER},
- * {@link #POLICY_CONVERT}, {@link #POLICY_ON_REQUEST}, {@link #POLICY_UPDATE}).
- * </p>
- *
- * @see DataBindingContext#bindValue(IObservableValue, IObservableValue,
- *      UpdateValueStrategy, UpdateValueStrategy)
- * @see Binding#getValidationStatus()
- * @see IValidator
- * @see IConverter
- * @since 1.0
- */
-public class UpdateValueStrategy extends UpdateStrategy {
-
-	/**
-	 * Policy constant denoting that the source observable's state should not be
-	 * tracked and that the destination observable's value should never be
-	 * updated.
-	 */
-	public static int POLICY_NEVER = notInlined(1);
-
-	/**
-	 * Policy constant denoting that the source observable's state should not be
-	 * tracked, but that validation, conversion and updating the destination
-	 * observable's value should be performed when explicitly requested.
-	 */
-	public static int POLICY_ON_REQUEST = notInlined(2);
-
-	/**
-	 * Policy constant denoting that the source observable's state should be
-	 * tracked, including validating changes except for
-	 * {@link #validateBeforeSet(Object)}, but that the destination
-	 * observable's value should only be updated on request.
-	 */
-	public static int POLICY_CONVERT = notInlined(4);
-
-	/**
-	 * Policy constant denoting that the source observable's state should be
-	 * tracked, and that validation, conversion and updating the destination
-	 * observable's value should be performed automaticlly on every change of
-	 * the source observable value.
-	 */
-	public static int POLICY_UPDATE = notInlined(8);
-
-	/**
-	 * Helper method allowing API evolution of the above constant values. The
-	 * compiler will not inline constant values into client code if values are
-	 * "computed" using this helper.
-	 *
-	 * @param i
-	 *            an integer
-	 * @return the same integer
-	 */
-	private static int notInlined(int i) {
-		return i;
-	}
-
-	protected IValidator afterGetValidator;
-	protected IValidator afterConvertValidator;
-	protected IValidator beforeSetValidator;
-	protected IConverter converter;
-
-	private int updatePolicy;
-
-	private static ValidatorRegistry validatorRegistry = new ValidatorRegistry();
-	private static HashMap validatorsByConverter = new HashMap();
-
-	protected boolean provideDefaults;
-
-	/**
-	 * <code>true</code> if we defaulted the converter
-	 */
-	private boolean defaultedConverter = false;
-
-	/**
-	 * Creates a new update value strategy for automatically updating the
-	 * destination observable value whenever the source observable value
-	 * changes. Default validators and a default converter will be provided. The
-	 * defaults can be changed by calling one of the setter methods.
-	 */
-	public UpdateValueStrategy() {
-		this(true, POLICY_UPDATE);
-	}
-
-	/**
-	 * Creates a new update value strategy with a configurable update policy.
-	 * Default validators and a default converter will be provided. The defaults
-	 * can be changed by calling one of the setter methods.
-	 *
-	 * @param updatePolicy
-	 *            one of {@link #POLICY_NEVER}, {@link #POLICY_ON_REQUEST},
-	 *            {@link #POLICY_CONVERT}, or {@link #POLICY_UPDATE}
-	 */
-	public UpdateValueStrategy(int updatePolicy) {
-		this(true, updatePolicy);
-	}
-
-	/**
-	 * Creates a new update value strategy with a configurable update policy.
-	 * Default validators and a default converter will be provided if
-	 * <code>provideDefaults</code> is <code>true</code>. The defaults can
-	 * be changed by calling one of the setter methods.
-	 *
-	 * @param provideDefaults
-	 *            if <code>true</code>, default validators and a default
-	 *            converter will be provided based on the observable value's
-	 *            type.
-	 * @param updatePolicy
-	 *            one of {@link #POLICY_NEVER}, {@link #POLICY_ON_REQUEST},
-	 *            {@link #POLICY_CONVERT}, or {@link #POLICY_UPDATE}
-	 */
-	public UpdateValueStrategy(boolean provideDefaults, int updatePolicy) {
-		this.provideDefaults = provideDefaults;
-		this.updatePolicy = updatePolicy;
-	}
-
-	/**
-	 * Converts the value from the source type to the destination type.
-	 * <p>
-	 * Default implementation will use the
-	 * {@link #setConverter(IConverter) converter} if one exists. If no
-	 * converter exists no conversion occurs.
-	 * </p>
-	 *
-	 * @param value
-	 * @return the converted value
-	 */
-	public Object convert(Object value) {
-		return converter == null ? value : converter.convert(value);
-	}
-
-	/**
-	 * 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.
-	 *
-	 * @param fromType
-	 * @param toType
-	 * @return an IValidator, or <code>null</code> if unsuccessful
-	 */
-	protected IValidator createValidator(Object fromType, Object toType) {
-		if (fromType == null || toType == null) {
-			return new IValidator() {
-
-				public IStatus validate(Object value) {
-					return Status.OK_STATUS;
-				}
-			};
-		}
-
-		return findValidator(fromType, toType);
-	}
-
-	/**
-	 * Fills out default values based upon the provided <code>source</code>
-	 * and <code>destination</code>. If the strategy is to default values it
-	 * will attempt to default a converter. If the converter can be defaulted an
-	 * attempt is made to default the
-	 * {@link #validateAfterGet(Object) after get validator}. If a validator
-	 * cannot be defaulted it will be <code>null</code>.
-	 *
-	 * @param source
-	 * @param destination
-	 */
-	protected void fillDefaults(IObservableValue source,
-			IObservableValue destination) {
-		Object sourceType = source.getValueType();
-		Object destinationType = destination.getValueType();
-		if (provideDefaults && sourceType != null && destinationType != null) {
-			if (converter == null) {
-				IConverter converter = createConverter(sourceType,
-						destinationType);
-				defaultedConverter = (converter != null);
-				setConverter(converter);
-			}
-
-			if (afterGetValidator == null) {
-				afterGetValidator = createValidator(sourceType, destinationType);
-			}
-		}
-		if (converter != null) {
-			if (sourceType != null) {
-				checkAssignable(converter.getFromType(), sourceType,
-						"converter does not convert from type " + sourceType); //$NON-NLS-1$
-			}
-			if (destinationType != null) {
-				checkAssignable(converter.getToType(), destinationType,
-						"converter does not convert to type " + destinationType); //$NON-NLS-1$
-			}
-		}
-	}
-
-	private IValidator findValidator(Object fromType, Object toType) {
-		IValidator result = null;
-
-		// We only default the validator if we defaulted the converter since the
-		// two are tightly coupled.
-		if (defaultedConverter) {
-			if (String.class.equals(fromType)) {
-				result = (IValidator) validatorsByConverter.get(converter);
-
-				if (result == null) {
-					// TODO sring based lookup
-					if (Integer.class.equals(toType)
-							|| Integer.TYPE.equals(toType)) {
-						result = new StringToIntegerValidator(
-								(NumberFormatConverter) converter);
-					} else if (Long.class.equals(toType)
-							|| Long.TYPE.equals(toType)) {
-						result = new StringToLongValidator(
-								(NumberFormatConverter) converter);
-					} else if (Float.class.equals(toType)
-							|| Float.TYPE.equals(toType)) {
-						result = new StringToFloatValidator(
-								(NumberFormatConverter) converter);
-					} else if (Double.class.equals(toType)
-							|| Double.TYPE.equals(toType)) {
-						result = new StringToDoubleValidator(
-								(NumberFormatConverter) converter);
-					} else if (Byte.class.equals(toType)
-							|| Byte.TYPE.equals(toType)) {
-						result = new StringToByteValidator(
-								(NumberFormatConverter) converter);
-					} else if (Short.class.equals(toType)
-							|| Short.TYPE.equals(toType)) {
-						result = new StringToShortValidator(
-								(NumberFormatConverter) converter);
-					} else if (Character.class.equals(toType)
-							|| Character.TYPE.equals(toType)
-							&& converter instanceof StringToCharacterConverter) {
-						result = new StringToCharacterValidator(
-								(StringToCharacterConverter) converter);
-					} else if (Date.class.equals(toType)
-							&& converter instanceof StringToDateConverter) {
-						result = new StringToDateValidator(
-								(StringToDateConverter) converter);
-					}
-
-					if (result != null) {
-						validatorsByConverter.put(converter, result);
-					}
-				}
-			} else if (converter instanceof NumberToNumberConverter) {
-				result = (IValidator) validatorsByConverter.get(converter);
-
-				if (result == null) {
-					if (converter instanceof NumberToByteConverter) {
-						result = new NumberToByteValidator(
-								(NumberToByteConverter) converter);
-					} else if (converter instanceof NumberToShortConverter) {
-						result = new NumberToShortValidator(
-								(NumberToShortConverter) converter);
-					} else if (converter instanceof NumberToIntegerConverter) {
-						result = new NumberToIntegerValidator(
-								(NumberToIntegerConverter) converter);
-					} else if (converter instanceof NumberToLongConverter) {
-						result = new NumberToLongValidator(
-								(NumberToLongConverter) converter);
-					} else if (converter instanceof NumberToFloatConverter) {
-						result = new NumberToFloatValidator(
-								(NumberToFloatConverter) converter);
-					} else if (converter instanceof NumberToDoubleConverter) {
-						result = new NumberToDoubleValidator(
-								(NumberToDoubleConverter) converter);
-					} else if (converter instanceof NumberToBigIntegerConverter
-							|| converter instanceof NumberToBigDecimalConverter) {
-						result = new NumberToUnboundedNumberValidator(
-								(NumberToNumberConverter) converter);
-					}
-				}
-			}
-
-			if (result == null) {
-				// TODO string based lookup
-				result = validatorRegistry.get(fromType, toType);
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * @return the update policy
-	 */
-	public int getUpdatePolicy() {
-		return updatePolicy;
-	}
-
-	/**
-	 * Sets the validator to be invoked after the source value is converted to
-	 * the type of the destination observable.
-	 *
-	 * @param validator
-	 * @return the receiver, to enable method call chaining
-	 */
-	public UpdateValueStrategy setAfterConvertValidator(IValidator validator) {
-		this.afterConvertValidator = validator;
-		return this;
-	}
-
-	/**
-	 * Sets the validator to be invoked after the source value is retrieved at
-	 * the beginning of the synchronization process.
-	 *
-	 * @param validator
-	 * @return the receiver, to enable method call chaining
-	 */
-	public UpdateValueStrategy setAfterGetValidator(IValidator validator) {
-		this.afterGetValidator = validator;
-		return this;
-	}
-
-	/**
-	 * Sets the validator to be invoked before the value is to be set on the
-	 * destination at the end of the synchronization process.
-	 *
-	 * @param validator
-	 * @return the receiver, to enable method call chaining
-	 */
-	public UpdateValueStrategy setBeforeSetValidator(IValidator validator) {
-		this.beforeSetValidator = validator;
-		return this;
-	}
-
-	/**
-	 * Sets the converter to be invoked when converting from the source type to
-	 * the destination type.
-	 *
-	 * @param converter
-	 * @return the receiver, to enable method call chaining
-	 */
-	public UpdateValueStrategy setConverter(IConverter converter) {
-		this.converter = converter;
-		return this;
-	}
-
-	/**
-	 * Validates the value after it is converted.
-	 * <p>
-	 * Default implementation will use the
-	 * {@link #setAfterConvertValidator(IValidator) validator} if one exists. If
-	 * one does not exist no validation will occur.
-	 * </p>
-	 *
-	 * @param value
-	 * @return an ok status
-	 */
-	public IStatus validateAfterConvert(Object value) {
-		return afterConvertValidator == null ? Status.OK_STATUS
-				: afterConvertValidator.validate(value);
-	}
-
-	/**
-	 * Validates the value after it is retrieved from the source.
-	 * <p>
-	 * Default implementation will use the
-	 * {@link #setAfterGetValidator(IValidator) validator} if one exists. If one
-	 * does not exist no validation will occur.
-	 * </p>
-	 *
-	 * @param value
-	 * @return an ok status
-	 */
-	public IStatus validateAfterGet(Object value) {
-		return afterGetValidator == null ? Status.OK_STATUS : afterGetValidator
-				.validate(value);
-	}
-
-	/**
-	 * Validates the value before it is set on the destination.
-	 * <p>
-	 * Default implementation will use the
-	 * {@link #setBeforeSetValidator(IValidator) validator} if one exists. If
-	 * one does not exist no validation will occur.
-	 * </p>
-	 *
-	 * @param value
-	 * @return an ok status
-	 */
-	public IStatus validateBeforeSet(Object value) {
-		return beforeSetValidator == null ? Status.OK_STATUS
-				: beforeSetValidator.validate(value);
-	}
-
-	/**
-	 * Sets the current value of the given observable to the given value.
-	 * Clients may extend but must call the super implementation.
-	 *
-	 * @param observableValue
-	 * @param value
-	 * @return status
-	 */
-	protected IStatus doSet(IObservableValue observableValue, Object value) {
-		try {
-			observableValue.setValue(value);
-		} catch (Exception ex) {
-			return ValidationStatus.error(BindingMessages
-					.getString(BindingMessages.VALUEBINDING_ERROR_WHILE_SETTING_VALUE),
-					ex);
-		}
-		return Status.OK_STATUS;
-	}
-
-	private static class ValidatorRegistry {
-
-		private HashMap validators = new HashMap();
-
-		/**
-		 * 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(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));
-		}
-
-		/**
-		 * 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 IValidator for a specific fromClass and toClass.
-		 *
-		 * @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 IStatus validate(Object value) {
-						return Status.OK_STATUS;
-					}
-				};
-			}
-			return new IValidator() {
-				public IStatus validate(Object value) {
-					return Status.OK_STATUS;
-				}
-			};
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ValidationStatusProvider.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ValidationStatusProvider.java
deleted file mode 100644
index 14ad6c7..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ValidationStatusProvider.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Boris Bokowski - initial API and implementation (bug 218269)
- *     Matthew Hall - bug 218269
- ******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * A validation status provider tracks the state of zero or more target
- * observables and zero or more model observables and produces a validation
- * result.
- * 
- * @since 1.1
- * 
- */
-public abstract class ValidationStatusProvider {
-
-	protected boolean disposed = false;
-
-	/**
-	 * @return an observable value containing the current validation status
-	 */
-	public abstract IObservableValue getValidationStatus();
-
-	/**
-	 * Returns the list of target observables (if any) that are being tracked by
-	 * this validation status provider.
-	 * 
-	 * @return an observable list of target {@link IObservable}s (may be empty)
-	 */
-	public abstract IObservableList getTargets();
-
-	/**
-	 * Returns the model observables (if any) that are being tracked by this
-	 * validation status provider.
-	 * 
-	 * @return an observable list of model {@link IObservable}s (may be empty)
-	 */
-	public abstract IObservableList getModels();
-
-	/**
-	 * Disposes of this ValidationStatusProvider. Subclasses may extend, but
-	 * must call super.dispose().
-	 */
-	public void dispose() {
-		disposed = true;
-	}
-
-	/**
-	 * @return true if the binding has been disposed. false otherwise.
-	 */
-	public boolean isDisposed() {
-		return disposed;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ValueBinding.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ValueBinding.java
deleted file mode 100644
index 8f33b87..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/ValueBinding.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 220700
- *******************************************************************************/
-
-package org.eclipse.core.databinding;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.BindingStatus;
-import org.eclipse.core.internal.databinding.Util;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 1.0
- * 
- */
-class ValueBinding extends Binding {
-	private final UpdateValueStrategy targetToModel;
-	private final UpdateValueStrategy modelToTarget;
-	private WritableValue validationStatusObservable;
-	private IObservableValue target;
-	private IObservableValue model;
-
-	private boolean updatingTarget;
-	private boolean updatingModel;
-	private IValueChangeListener targetChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			if (!updatingTarget && !Util.equals(event.diff.getOldValue(), event.diff.getNewValue())) {
-				doUpdate(target, model, targetToModel, false, false);
-			}
-		}
-	};
-	private IValueChangeListener modelChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			if (!updatingModel && !Util.equals(event.diff.getOldValue(), event.diff.getNewValue())) {
-				doUpdate(model, target, modelToTarget, false, false);
-			}
-		}
-	};
-
-	/**
-	 * @param targetObservableValue
-	 * @param modelObservableValue
-	 * @param targetToModel
-	 * @param modelToTarget
-	 */
-	public ValueBinding(IObservableValue targetObservableValue,
-			IObservableValue modelObservableValue,
-			UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget) {
-		super(targetObservableValue, modelObservableValue);
-		this.target = targetObservableValue;
-		this.model = modelObservableValue;
-		this.targetToModel = targetToModel;
-		this.modelToTarget = modelToTarget;
-		if ((targetToModel.getUpdatePolicy() & (UpdateValueStrategy.POLICY_CONVERT | UpdateValueStrategy.POLICY_UPDATE)) != 0) {
-			target.addValueChangeListener(targetChangeListener);
-		} else {
-			targetChangeListener = null;
-		}
-		if ((modelToTarget.getUpdatePolicy() & (UpdateValueStrategy.POLICY_CONVERT | UpdateValueStrategy.POLICY_UPDATE)) != 0) {
-			model.addValueChangeListener(modelChangeListener);
-		} else {
-			modelChangeListener = null;
-		}
-	}
-
-	protected void preInit() {
-		validationStatusObservable = new WritableValue(context
-				.getValidationRealm(), Status.OK_STATUS, IStatus.class);
-	}
-
-	protected void postInit() {
-		if (modelToTarget.getUpdatePolicy() == UpdateValueStrategy.POLICY_UPDATE) {
-			updateModelToTarget();
-		}
-		if (targetToModel.getUpdatePolicy() != UpdateValueStrategy.POLICY_NEVER) {
-			validateTargetToModel();
-		}
-	}
-
-	public IObservableValue getValidationStatus() {
-		return validationStatusObservable;
-	}
-
-	public void updateTargetToModel() {
-		doUpdate(target, model, targetToModel, true, false);
-	}
-
-	public void updateModelToTarget() {
-		doUpdate(model, target, modelToTarget, true, false);
-	}
-
-	/**
-	 * Incorporates the provided <code>newStats</code> into the
-	 * <code>multieStatus</code>.
-	 * 
-	 * @param multiStatus
-	 * @param newStatus
-	 * @return <code>true</code> if the update should proceed
-	 */
-	/* package */boolean mergeStatus(MultiStatus multiStatus, IStatus newStatus) {
-		if (!newStatus.isOK()) {
-			multiStatus.add(newStatus);
-			return multiStatus.getSeverity() < IStatus.ERROR;
-		}
-		return true;
-	}
-
-	/*
-	 * This method may be moved to UpdateValueStrategy in the future if clients
-	 * need more control over how the source value is copied to the destination
-	 * observable.
-	 */
-	private void doUpdate(final IObservableValue source,
-			final IObservableValue destination,
-			final UpdateValueStrategy updateValueStrategy,
-			final boolean explicit, final boolean validateOnly) {
-
-		final int policy = updateValueStrategy.getUpdatePolicy();
-		if (policy == UpdateValueStrategy.POLICY_NEVER)
-			return;
-		if (policy == UpdateValueStrategy.POLICY_ON_REQUEST && !explicit)
-			return;
-
-		source.getRealm().exec(new Runnable() {
-			public void run() {
-				boolean destinationRealmReached = false;
-				final MultiStatus multiStatus = BindingStatus.ok();
-				try {
-					// Get value
-					Object value = source.getValue();
-
-					// Validate after get
-					IStatus status = updateValueStrategy
-							.validateAfterGet(value);
-					if (!mergeStatus(multiStatus, status))
-						return;
-
-					// Convert value
-					final Object convertedValue = updateValueStrategy
-							.convert(value);
-
-					// Validate after convert
-					status = updateValueStrategy
-							.validateAfterConvert(convertedValue);
-					if (!mergeStatus(multiStatus, status))
-						return;
-					if (policy == UpdateValueStrategy.POLICY_CONVERT
-							&& !explicit)
-						return;
-
-					// Validate before set
-					status = updateValueStrategy
-							.validateBeforeSet(convertedValue);
-					if (!mergeStatus(multiStatus, status))
-						return;
-					if (validateOnly)
-						return;
-
-					// Set value
-					destinationRealmReached = true;
-					destination.getRealm().exec(new Runnable() {
-						public void run() {
-							if (destination == target) {
-								updatingTarget = true;
-							} else {
-								updatingModel = true;
-							}
-							try {
-								IStatus setterStatus = updateValueStrategy
-										.doSet(destination, convertedValue);
-
-								mergeStatus(multiStatus, setterStatus);
-							} finally {
-								if (destination == target) {
-									updatingTarget = false;
-								} else {
-									updatingModel = false;
-								}
-								setValidationStatus(multiStatus);
-							}
-						}
-					});
-				} catch (Exception ex) {
-					// This check is necessary as in 3.2.2 Status
-					// doesn't accept a null message (bug 177264).
-					String message = (ex.getMessage() != null) ? ex
-							.getMessage() : ""; //$NON-NLS-1$
-
-					mergeStatus(multiStatus, new Status(IStatus.ERROR,
-							Policy.JFACE_DATABINDING, IStatus.ERROR, message,
-							ex));
-				} finally {
-					if (!destinationRealmReached) {
-						setValidationStatus(multiStatus);
-					}
-
-				}
-			}
-		});
-	}
-
-	public void validateModelToTarget() {
-		doUpdate(model, target, modelToTarget, true, true);
-	}
-
-	public void validateTargetToModel() {
-		doUpdate(target, model, targetToModel, true, true);
-	}
-
-	private void setValidationStatus(final IStatus status) {
-		validationStatusObservable.getRealm().exec(new Runnable() {
-			public void run() {
-				validationStatusObservable.setValue(status);
-			}
-		});
-	}
-	
-	public void dispose() {
-		if (targetChangeListener != null) {
-			target.removeValueChangeListener(targetChangeListener);
-			targetChangeListener = null;
-		}
-		if (modelChangeListener != null) {
-			model.removeValueChangeListener(modelChangeListener);
-			modelChangeListener = null;
-		}
-		target = null;
-		model = null;
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/Converter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/Converter.java
deleted file mode 100644
index 5a344e4..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/Converter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.conversion;
-
-
-/**
- * Abstract base class for converters.
- * 
- * @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;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/IConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/IConverter.java
deleted file mode 100644
index ebd21ae..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/IConverter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.conversion;
-
-/**
- * A one-way converter.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- *              Clients should subclass {@link Converter}.
- * 
- * @since 1.0
- * 
- */
-public interface IConverter {
-
-	/**
-	 * Returns the type whose instances can be converted by this converter. The
-	 * return type is Object rather than Class to optionally support richer type
-	 * systems than the one provided by Java reflection.
-	 * 
-	 * @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. The return type is
-	 * Object rather than Class to optionally support richer type systems than
-	 * the one provided by Java reflection.
-	 * 
-	 * @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.
-	 * 
-	 * @param fromObject
-	 *            the object to convert, of type {@link #getFromType()}
-	 * @return the converted object, of type {@link #getToType()}
-	 */
-	public Object convert(Object fromObject);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/NumberToStringConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/NumberToStringConverter.java
deleted file mode 100644
index ee9a00b..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/NumberToStringConverter.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.conversion;
-
-import java.math.BigInteger;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts a Number to a String using <code>NumberFormat.format(...)</code>.
- * This class is thread safe.
- * 
- * @since 1.0
- */
-public class NumberToStringConverter extends Converter {
-	private final NumberFormat numberFormat;
-	private final Class fromType;
-	private boolean fromTypeIsLong;
-	private boolean fromTypeIsDecimalType;
-	private boolean fromTypeIsBigInteger;
-
-	/**
-	 * Constructs a new instance.
-	 * <p>
-	 * Private to restrict public instantiation.
-	 * </p>
-	 * 
-	 * @param numberFormat
-	 * @param fromType
-	 */
-	private NumberToStringConverter(NumberFormat numberFormat, Class fromType) {
-		super(fromType, String.class);
-
-		this.numberFormat = numberFormat;
-		this.fromType = fromType;
-
-		if (Integer.class.equals(fromType) || Integer.TYPE.equals(fromType)
-				|| Long.class.equals(fromType) || Long.TYPE.equals(fromType)) {
-			fromTypeIsLong = true;
-		} else if (Float.class.equals(fromType) || Float.TYPE.equals(fromType)
-				|| Double.class.equals(fromType)
-				|| Double.TYPE.equals(fromType)) {
-			fromTypeIsDecimalType = true;
-		} else if (BigInteger.class.equals(fromType)) {
-			fromTypeIsBigInteger = true;
-		}
-	}
-
-	/**
-	 * Converts the provided <code>fromObject</code> to a <code>String</code>.
-	 * If the converter was constructed for an object type, non primitive, a
-	 * <code>fromObject</code> of <code>null</code> will be converted to an
-	 * empty string.
-	 * 
-	 * @param fromObject
-	 *            value to convert. May be <code>null</code> if the converter
-	 *            was constructed for a non primitive type.
-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object fromObject) {
-		// Null is allowed when the type is not primitve.
-		if (fromObject == null && !fromType.isPrimitive()) {
-			return ""; //$NON-NLS-1$
-		}
-
-		Number number = (Number) fromObject;
-		String result = null;
-		if (fromTypeIsLong) {
-			synchronized (numberFormat) {
-				result = numberFormat.format(number.longValue());
-			}
-		} else if (fromTypeIsDecimalType) {
-			synchronized (numberFormat) {
-				result = numberFormat.format(number.doubleValue());
-			}
-		} else if (fromTypeIsBigInteger) {
-			synchronized (numberFormat) {
-				result = numberFormat.format((BigInteger) number);
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the type is a double
-	 * @return Double converter for the default locale
-	 */
-	public static NumberToStringConverter fromDouble(boolean primitive) {
-		return fromDouble(NumberFormat.getNumberInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return Double converter with the provided numberFormat
-	 */
-	public static NumberToStringConverter fromDouble(NumberFormat numberFormat,
-			boolean primitive) {
-		return new NumberToStringConverter(numberFormat,
-				(primitive) ? Double.TYPE : Double.class);
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the type is a long
-	 * @return Long converter for the default locale
-	 */
-	public static NumberToStringConverter fromLong(boolean primitive) {
-		return fromLong(NumberFormat.getIntegerInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return Long convert with the provided numberFormat
-	 */
-	public static NumberToStringConverter fromLong(NumberFormat numberFormat,
-			boolean primitive) {
-		return new NumberToStringConverter(numberFormat,
-				(primitive) ? Long.TYPE : Long.class);
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the type is a float
-	 * @return Float converter for the default locale
-	 */
-	public static NumberToStringConverter fromFloat(boolean primitive) {
-		return fromFloat(NumberFormat.getNumberInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return Float converter with the provided numberFormat
-	 */
-	public static NumberToStringConverter fromFloat(NumberFormat numberFormat,
-			boolean primitive) {
-		return new NumberToStringConverter(numberFormat,
-				(primitive) ? Float.TYPE : Float.class);
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the type is a int
-	 * @return Integer converter for the default locale
-	 */
-	public static NumberToStringConverter fromInteger(boolean primitive) {
-		return fromInteger(NumberFormat.getIntegerInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return Integer converter with the provided numberFormat
-	 */
-	public static NumberToStringConverter fromInteger(
-			NumberFormat numberFormat, boolean primitive) {
-		return new NumberToStringConverter(numberFormat,
-				(primitive) ? Integer.TYPE : Integer.class);
-	}
-
-	/**
-	 * @return BigInteger convert for the default locale
-	 */
-	public static NumberToStringConverter fromBigInteger() {
-		return fromBigInteger(NumberFormat.getIntegerInstance());
-	}
-
-	/**
-	 * @param numberFormat
-	 * @return BigInteger converter with the provided numberFormat
-	 */
-	public static NumberToStringConverter fromBigInteger(
-			NumberFormat numberFormat) {
-		return new NumberToStringConverter(numberFormat, BigInteger.class);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/StringToNumberConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/StringToNumberConverter.java
deleted file mode 100644
index 104ec66..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/StringToNumberConverter.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.conversion;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser.ParseResult;
-import org.eclipse.core.internal.databinding.validation.NumberFormatConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts a String to a Number using <code>NumberFormat.parse(...)</code>.
- * This class is thread safe.
- * 
- * @since 1.0
- */
-public class StringToNumberConverter extends NumberFormatConverter {
-	private Class toType;
-	/**
-	 * NumberFormat instance to use for conversion. Access must be synchronized.
-	 */
-	private NumberFormat numberFormat;
-
-	/**
-	 * Minimum possible value for the type. Can be <code>null</code> as
-	 * BigInteger doesn't have bounds.
-	 */
-	private final Number min;
-	/**
-	 * Maximum possible value for the type. Can be <code>null</code> as
-	 * BigInteger doesn't have bounds.
-	 */
-	private final Number max;
-
-	/**
-	 * The boxed type of the toType;
-	 */
-	private final Class boxedType;
-
-	private static final Integer MIN_INTEGER = new Integer(Integer.MIN_VALUE);
-	private static final Integer MAX_INTEGER = new Integer(Integer.MAX_VALUE);
-
-	private static final Double MIN_DOUBLE = new Double(-Double.MAX_VALUE);
-	private static final Double MAX_DOUBLE = new Double(Double.MAX_VALUE);
-
-	private static final Long MIN_LONG = new Long(Long.MIN_VALUE);
-	private static final Long MAX_LONG = new Long(Long.MIN_VALUE);
-
-	private static final Float MIN_FLOAT = new Float(-Float.MAX_VALUE);
-	private static final Float MAX_FLOAT = new Float(Float.MAX_VALUE);
-
-	/**
-	 * @param numberFormat
-	 * @param toType
-	 * @param min
-	 *            minimum possible value for the type, can be <code>null</code>
-	 *            as BigInteger doesn't have bounds
-	 * @param max
-	 *            maximum possible value for the type, can be <code>null</code>
-	 *            as BigInteger doesn't have bounds
-	 * @param boxedType
-	 *            a convenience that allows for the checking against one type
-	 *            rather than boxed and unboxed types
-	 */
-	private StringToNumberConverter(NumberFormat numberFormat, Class toType,
-			Number min, Number max, Class boxedType) {
-		super(String.class, toType, numberFormat);
-
-		this.toType = toType;
-		this.numberFormat = numberFormat;
-		this.min = min;
-		this.max = max;
-		this.boxedType = boxedType;
-	}
-
-	/**
-	 * Converts the provided <code>fromObject</code> to the requested
-	 * {@link #getToType() to type}.
-	 * 
-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
-	 * @throws IllegalArgumentException
-	 *             if the value isn't in the format required by the NumberFormat
-	 *             or the value is out of range for the
-	 *             {@link #getToType() to type}.
-	 * @throws IllegalArgumentException
-	 *             if conversion was not possible
-	 */
-	public Object convert(Object fromObject) {
-		ParseResult result = StringToNumberParser.parse(fromObject,
-				numberFormat, toType.isPrimitive());
-
-		if (result.getPosition() != null) {
-			// this shouldn't happen in the pipeline as validation should catch
-			// it but anyone can call convert so we should return a properly
-			// formatted message in an exception
-			throw new IllegalArgumentException(StringToNumberParser
-					.createParseErrorMessage((String) fromObject, result
-							.getPosition()));
-		} else if (result.getNumber() == null) {
-			// if an error didn't occur and the number is null then it's a boxed
-			// type and null should be returned
-			return null;
-		}
-
-		/*
-		 * Technically the checks for ranges aren't needed here because the
-		 * validator should have validated this already but we shouldn't assume
-		 * this has occurred.
-		 */
-		if (Integer.class.equals(boxedType)) {
-			if (StringToNumberParser.inIntegerRange(result.getNumber())) {
-				return new Integer(result.getNumber().intValue());
-			}
-		} else if (Double.class.equals(boxedType)) {
-			if (StringToNumberParser.inDoubleRange(result.getNumber())) {
-				return new Double(result.getNumber().doubleValue());
-			}
-		} else if (Long.class.equals(boxedType)) {
-			if (StringToNumberParser.inLongRange(result.getNumber())) {
-				return new Long(result.getNumber().longValue());
-			}
-		} else if (Float.class.equals(boxedType)) {
-			if (StringToNumberParser.inFloatRange(result.getNumber())) {
-				return new Float(result.getNumber().floatValue());
-			}
-		} else if (BigInteger.class.equals(boxedType)) {
-			return new BigDecimal(result.getNumber().doubleValue())
-					.toBigInteger();
-		}
-
-		if (min != null && max != null) {
-			throw new IllegalArgumentException(StringToNumberParser
-					.createOutOfRangeMessage(min, max, numberFormat));
-		}
-
-		/*
-		 * Fail safe. I don't think this could even be thrown but throwing the
-		 * exception is better than returning null and hiding the error.
-		 */
-		throw new IllegalArgumentException(
-				"Could not convert [" + fromObject + "] to type [" + toType + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the convert to type is an int
-	 * @return to Integer converter for the default locale
-	 */
-	public static StringToNumberConverter toInteger(boolean primitive) {
-		return toInteger(NumberFormat.getIntegerInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return to Integer converter with the provided numberFormat
-	 */
-	public static StringToNumberConverter toInteger(NumberFormat numberFormat,
-			boolean primitive) {
-		return new StringToNumberConverter(numberFormat,
-				(primitive) ? Integer.TYPE : Integer.class, MIN_INTEGER,
-				MAX_INTEGER, Integer.class);
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the convert to type is a double
-	 * @return to Double converter for the default locale
-	 */
-	public static StringToNumberConverter toDouble(boolean primitive) {
-		return toDouble(NumberFormat.getNumberInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return to Double converter with the provided numberFormat
-	 */
-	public static StringToNumberConverter toDouble(NumberFormat numberFormat,
-			boolean primitive) {
-		return new StringToNumberConverter(numberFormat,
-				(primitive) ? Double.TYPE : Double.class, MIN_DOUBLE,
-				MAX_DOUBLE, Double.class);
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the convert to type is a long
-	 * @return to Long converter for the default locale
-	 */
-	public static StringToNumberConverter toLong(boolean primitive) {
-		return toLong(NumberFormat.getIntegerInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return to Long converter with the provided numberFormat
-	 */
-	public static StringToNumberConverter toLong(NumberFormat numberFormat,
-			boolean primitive) {
-		return new StringToNumberConverter(numberFormat,
-				(primitive) ? Long.TYPE : Long.class, MIN_LONG, MAX_LONG,
-				Long.class);
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the convert to type is a float
-	 * @return to Float converter for the default locale
-	 */
-	public static StringToNumberConverter toFloat(boolean primitive) {
-		return toFloat(NumberFormat.getNumberInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return to Float converter with the provided numberFormat
-	 */
-	public static StringToNumberConverter toFloat(NumberFormat numberFormat,
-			boolean primitive) {
-		return new StringToNumberConverter(numberFormat,
-				(primitive) ? Float.TYPE : Float.class, MIN_FLOAT, MAX_FLOAT,
-				Float.class);
-	}
-
-	/**
-	 * @return to BigInteger converter for the default locale
-	 */
-	public static StringToNumberConverter toBigInteger() {
-		return toBigInteger(NumberFormat.getIntegerInstance());
-	}
-
-	/**
-	 * @param numberFormat
-	 * @return to BigInteger converter with the provided numberFormat
-	 */
-	public static StringToNumberConverter toBigInteger(NumberFormat numberFormat) {
-		return new StringToNumberConverter(numberFormat, BigInteger.class,
-				null, null, BigInteger.class);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/package.html
deleted file mode 100644
index 06a1b53..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/conversion/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>
-Provides interfaces and classes for data type conversion.
-<h2>
-Package Specification</h2>
-<p>
-This package provides the <tt>IConverter</tt> interface along with classes
-that implement the interface to convert between common data types.
-<p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/AbstractObservable.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/AbstractObservable.java
deleted file mode 100644
index 90e9b58..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/AbstractObservable.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.AssertionFailedException;
-
-/**
- * @since 1.0
- */
-public abstract class AbstractObservable extends ChangeManager implements IObservable {
-	
-	/**
-	 * @param realm
-	 */
-	public AbstractObservable(Realm realm) {
-		super(realm);
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		addListener(ChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeChangeListener(IChangeListener listener) {
-		removeListener(ChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void addStaleListener(IStaleListener listener) {
-		addListener(StaleEvent.TYPE, listener);
-	}
-
-	public synchronized void removeStaleListener(IStaleListener listener) {
-		removeListener(StaleEvent.TYPE, listener);
-	}
-
-	protected void fireChange() {
-		checkRealm();
-		fireEvent(new ChangeEvent(this));
-	}
-
-	protected void fireStale() {
-		checkRealm();
-		fireEvent(new StaleEvent(this));
-	}
-
-	/**
-	 * 
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-	}
-
-	/**
-	 * Asserts that the realm is the current realm.
-	 * 
-	 * @see Realm#isCurrent()
-	 * @throws AssertionFailedException if the realm is not the current realm
-	 */
-	protected void checkRealm() {
-		Assert.isTrue(getRealm().isCurrent(),
-				"This operation must be run within the observable's realm"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeEvent.java
deleted file mode 100644
index 60950cf..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * Generic change event denoting that the state of an {@link IObservable} object
- * has changed. This event does not carry information about the kind of change
- * that occurred.
- * 
- * @since 1.0
- * 
- */
-public class ChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -3241193109844979384L;
-	static final Object TYPE = new Object();
-
-	/**
-	 * Creates a new change event object.
-	 * 
-	 * @param source
-	 *            the observable that changed state
-	 */
-	public ChangeEvent(IObservable source) {
-		super(source);
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IChangeListener) listener).handleChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeManager.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeManager.java
deleted file mode 100644
index bf2be9a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeManager.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-
-/**
- * Listener management implementation. Exposed to subclasses in form of
- * {@link AbstractObservable} and {@link ChangeSupport}.
- * 
- * @since 1.0
- * 
- */
-/* package */ class ChangeManager {
-
-	ListenerList[] listenerLists = null;
-	Object listenerTypes[] = null;
-	private Realm realm;
-
-	/**
-	 * @param realm 
-	 * 
-	 */
-	/* package */ ChangeManager(Realm realm) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		this.realm = realm;
-	}
-
-	/**
-	 * @param listenerType
-	 * @param listener
-	 */
-	protected void addListener(Object listenerType,
-			IObservablesListener listener) {
-		int listenerTypeIndex = findListenerTypeIndex(listenerType);
-		if (listenerTypeIndex == -1) {
-			int length;
-			if (listenerTypes == null) {
-				length = 0;
-				listenerTypes = new Object[1];
-				listenerLists = new ListenerList[1];
-			} else {
-				length = listenerTypes.length;
-				System.arraycopy(listenerTypes, 0,
-						listenerTypes = new Object[length + 1], 0, length);
-				System
-						.arraycopy(listenerLists, 0,
-								listenerLists = new ListenerList[length + 1],
-								0, length);
-			}
-			listenerTypes[length] = listenerType;
-			listenerLists[length] = new ListenerList();
-			boolean hadListeners = hasListeners();
-			listenerLists[length].add(listener);
-			if (!hadListeners) {
-				this.firstListenerAdded();
-			}
-			return;
-		}
-		ListenerList listenerList = listenerLists[listenerTypeIndex];
-		boolean hadListeners = true;
-		if (listenerList.size() == 0) {
-			hadListeners = hasListeners();
-		}
-		listenerList.add(listener);
-		if (!hadListeners) {
-			firstListenerAdded();
-		}
-	}
-
-	/**
-	 * @param listenerType
-	 * @param listener
-	 */
-	protected void removeListener(Object listenerType,
-			IObservablesListener listener) {
-		int listenerTypeIndex = findListenerTypeIndex(listenerType);
-		if (listenerTypeIndex != -1) {
-			listenerLists[listenerTypeIndex].remove(listener);
-			if (listenerLists[listenerTypeIndex].size() == 0) {
-				if (!hasListeners()) {
-					this.lastListenerRemoved();
-				}
-			}
-		}
-	}
-
-	protected boolean hasListeners() {
-		if (listenerTypes == null) {
-			return false;
-		}
-		for (int i = 0; i < listenerTypes.length; i++) {
-			if (listenerLists[i].size() > 0) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private int findListenerTypeIndex(Object listenerType) {
-		if (listenerTypes != null) {
-			for (int i = 0; i < listenerTypes.length; i++) {
-				if (listenerTypes[i] == listenerType) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	protected void fireEvent(ObservableEvent event) {
-		Object listenerType = event.getListenerType();
-		int listenerTypeIndex = findListenerTypeIndex(listenerType);
-		if (listenerTypeIndex != -1) {
-			Object[] listeners = listenerLists[listenerTypeIndex]
-					.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				event.dispatch((IObservablesListener) listeners[i]);
-			}
-		}
-	}
-
-	/**
-	 * 
-	 */
-	protected void firstListenerAdded() {
-	}
-
-	/**
-	 * 
-	 */
-	protected void lastListenerRemoved() {
-	}
-
-	/**
-	 * 
-	 */
-	public void dispose() {
-		listenerLists = null;
-		listenerTypes = null;
-		realm = null;
-	}
-
-	/**
-	 * @return Returns the realm.
-	 */
-	public Realm getRealm() {
-		return realm;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeSupport.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeSupport.java
deleted file mode 100644
index e91daeb..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ChangeSupport.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * @since 1.0
- *
- */
-public abstract class ChangeSupport extends ChangeManager {
-
-	/**
-	 * @param realm 
-	 */
-	public ChangeSupport(Realm realm) {
-		super(realm);
-	}
-	
-	public void addListener(Object listenerType,
-			IObservablesListener listener) {
-		super.addListener(listenerType, listener);
-	}
-	
-	public void removeListener(Object listenerType,
-			IObservablesListener listener) {
-		super.removeListener(listenerType, listener);
-	}
-	
-	public void fireEvent(ObservableEvent event) {
-		super.fireEvent(event);
-	}
-	
-	/**
-	 * 
-	 */
-	protected abstract void firstListenerAdded();
-	
-	/**
-	 * 
-	 */
-	protected abstract void lastListenerRemoved();
-
-	/**
-	 * @param listener
-	 */
-	public void addChangeListener(IChangeListener listener) {
-		addListener(ChangeEvent.TYPE, listener);
-	}
-	
-	/**
-	 * @param listener
-	 */
-	public void removeChangeListener(IChangeListener listener) {
-		removeListener(ChangeEvent.TYPE, listener);
-	}
-
-	/**
-	 * @param listener
-	 */
-	public void addStaleListener(IStaleListener listener) {
-		addListener(StaleEvent.TYPE, listener);
-	}
-	
-	/**
-	 * @param listener
-	 */
-	public void removeStaleListener(IStaleListener listener) {
-		removeListener(StaleEvent.TYPE, listener);
-	}
-	
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Diffs.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Diffs.java
deleted file mode 100644
index 9500537..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Diffs.java
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 226216
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import java.util.ArrayList;
-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.Map.Entry;
-
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * @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();
-		createListDiffs(new ArrayList(oldList), newList, diffEntries);
-		ListDiff listDiff = createListDiff((ListDiffEntry[]) diffEntries
-				.toArray(new ListDiffEntry[diffEntries.size()]));
-		return listDiff;
-	}
-	
-	/**
-	 * adapted from EMF's ListDifferenceAnalyzer
-	 */
-	private static void createListDiffs(List oldList, List newList,
-			List listDiffs) {
-		int index = 0;
-		for (Iterator it = newList.iterator(); it.hasNext();) {
-			Object newValue = it.next();
-			if (oldList.size() <= index) {
-				// append newValue to newList 
-				listDiffs.add(createListDiffEntry(index, true, newValue));
-			} else {
-				boolean done;
-				do {
-					done = true;
-					Object oldValue = oldList.get(index);
-					if (oldValue == null ? newValue != null : !oldValue.equals(newValue)) {
-						int oldIndexOfNewValue = listIndexOf(oldList, newValue, index);
-						if (oldIndexOfNewValue != -1) {
-							int newIndexOfOldValue = listIndexOf(newList, oldValue, index);
-							if (newIndexOfOldValue == -1) {
-								// removing oldValue from list[index]
-								listDiffs.add(createListDiffEntry(index, false, oldValue));
-								oldList.remove(index);
-								done = false;
-							} else if (newIndexOfOldValue > oldIndexOfNewValue) {
-								// moving oldValue from list[index] to [newIndexOfOldValue] 
-								if (oldList.size() <= newIndexOfOldValue) {
-									// The element cannot be moved to the correct index
-									// now, however later iterations will insert elements
-									// in front of it, eventually moving it into the
-									// correct spot.
-									newIndexOfOldValue = oldList.size() - 1;
-								}
-								listDiffs.add(createListDiffEntry(index, false, oldValue));
-								oldList.remove(index);
-								listDiffs.add(createListDiffEntry(newIndexOfOldValue, true, oldValue));
-								oldList.add(newIndexOfOldValue, oldValue);
-								done = false;
-							} else {
-								// move newValue from list[oldIndexOfNewValue] to [index]
-								listDiffs.add(createListDiffEntry(oldIndexOfNewValue, false, newValue));
-								oldList.remove(oldIndexOfNewValue);
-								listDiffs.add(createListDiffEntry(index, true, newValue));
-								oldList.add(index, newValue);
-							}
-						} else {
-							// add newValue at list[index]
-							oldList.add(index, newValue);
-							listDiffs.add(createListDiffEntry(index, true, newValue));
-						}
-					}
-				} while (!done);
-			}
-			++index;
-		}
-		for (int i = oldList.size(); i > index;) {
-			// remove excess trailing elements not present in newList
-			listDiffs.add(createListDiffEntry(--i, false, oldList.get(i)));
-		}
-	}
-
-	/**
-	 * @param list
-	 * @param object
-	 * @param index
-	 * @return the index, or -1 if not found
-	 */
-	private static int listIndexOf(List list, Object object, int index) {
-		int size = list.size();
-		for (int i=index; i<size;i++) {
-			Object candidate = list.get(i);
-			if (candidate==null ? object==null : candidate.equals(object)) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * 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);
-	}
-
-	/**
-	 * Computes the difference between two maps.
-	 * 
-	 * @param oldMap
-	 * @param newMap
-	 * @return a map diff representing the changes needed to turn oldMap into
-	 *         newMap
-	 */
-	public static MapDiff computeMapDiff(Map oldMap, Map newMap) {
-		// starts out with all keys from the new map, we will remove keys from
-		// the old map as we go
-		final Set addedKeys = new HashSet(newMap.keySet());
-		final Set removedKeys = new HashSet();
-		final Set changedKeys = new HashSet();
-		final Map oldValues = new HashMap();
-		final Map newValues = new HashMap();
-		for (Iterator it = oldMap.entrySet().iterator(); it.hasNext();) {
-			Map.Entry oldEntry = (Entry) it.next();
-			Object oldKey = oldEntry.getKey();
-			if (addedKeys.remove(oldKey)) {
-				// potentially changed key since it is in oldMap and newMap
-				Object oldValue = oldEntry.getValue();
-				Object newValue = newMap.get(oldKey);
-				if (!Util.equals(oldValue, newValue)) {
-					changedKeys.add(oldKey);
-					oldValues.put(oldKey, oldValue);
-					newValues.put(oldKey, newValue);
-				}
-			} else {
-				removedKeys.add(oldKey);
-				oldValues.put(oldKey, oldEntry.getValue());
-			}
-		}
-		for (Iterator it = addedKeys.iterator(); it.hasNext();) {
-			Object newKey = it.next();
-			newValues.put(newKey, newMap.get(newKey));
-		}
-		return new MapDiff() {
-			public Set getAddedKeys() {
-				return addedKeys;
-			}
-
-			public Set getChangedKeys() {
-				return changedKeys;
-			}
-
-			public Set getRemovedKeys() {
-				return removedKeys;
-			}
-
-			public Object getNewValue(Object key) {
-				return newValues.get(key);
-			}
-
-			public Object getOldValue(Object key) {
-				return oldValues.get(key);
-			}
-		};
-	}
-	
-	/**
-	 * @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;
-			}
-		};
-	}
-
-	/**
-	 * @param addedKey
-	 * @param newValue
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiffSingleAdd(final Object addedKey,
-			final Object newValue) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.singleton(addedKey);
-			}
-
-			public Set getChangedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Object getNewValue(Object key) {
-				return newValue;
-			}
-
-			public Object getOldValue(Object key) {
-				return null;
-			}
-
-			public Set getRemovedKeys() {
-				return Collections.EMPTY_SET;
-			}
-		};
-	}
-
-	/**
-	 * @param existingKey
-	 * @param oldValue
-	 * @param newValue
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiffSingleChange(final Object existingKey,
-			final Object oldValue, final Object newValue) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Set getChangedKeys() {
-				return Collections.singleton(existingKey);
-			}
-
-			public Object getNewValue(Object key) {
-				return newValue;
-			}
-
-			public Object getOldValue(Object key) {
-				return oldValue;
-			}
-
-			public Set getRemovedKeys() {
-				return Collections.EMPTY_SET;
-			}
-		};
-	}
-
-	/**
-	 * @param removedKey
-	 * @param oldValue
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiffSingleRemove(final Object removedKey,
-			final Object oldValue) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Set getChangedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Object getNewValue(Object key) {
-				return null;
-			}
-
-			public Object getOldValue(Object key) {
-				return oldValue;
-			}
-
-			public Set getRemovedKeys() {
-				return Collections.singleton(removedKey);
-			}
-		};
-	}
-
-	/**
-	 * @param copyOfOldMap
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiffRemoveAll(final Map copyOfOldMap) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Set getChangedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Object getNewValue(Object key) {
-				return null;
-			}
-
-			public Object getOldValue(Object key) {
-				return copyOfOldMap.get(key);
-			}
-
-			public Set getRemovedKeys() {
-				return copyOfOldMap.keySet();
-			}
-		};
-	}
-
-	/**
-	 * @param addedKeys
-	 * @param removedKeys
-	 * @param changedKeys
-	 * @param oldValues
-	 * @param newValues
-	 * @return a map diff
-	 */
-	public static MapDiff createMapDiff(final Set addedKeys,
-			final Set removedKeys, final Set changedKeys, final Map oldValues,
-			final Map newValues) {
-		return new MapDiff() {
-
-			public Set getAddedKeys() {
-				return addedKeys;
-			}
-
-			public Set getChangedKeys() {
-				return changedKeys;
-			}
-
-			public Object getNewValue(Object key) {
-				return newValues.get(key);
-			}
-
-			public Object getOldValue(Object key) {
-				return oldValues.get(key);
-			}
-
-			public Set getRemovedKeys() {
-				return removedKeys;
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IChangeListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IChangeListener.java
deleted file mode 100644
index d0a5cee..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IChangeListener.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-
-/**
- * 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 IMapChangeListener
- * 
- * @since 1.0
- */
-public interface IChangeListener extends IObservablesListener {
-
-	/**
-	 * Handle a generic change to the given observable. The given event object
-	 * must only be used locally in this method because it may be reused for
-	 * other change notifications.
-	 * 
-	 * @param event
-	 */
-	public void handleChange(ChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservable.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservable.java
deleted file mode 100644
index de8e8cd..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservable.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable;
-
-/**
- * An object with state that allows to listen for state changes.
- * 
- * <p>
- * Implementations must not manage listeners themselves, listener management
- * must be delegated to a private instance of type {@link ChangeSupport} if it
- * is not inherited from {@link AbstractObservable}.
- * </p>
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- *              Clients should instead subclass one of the classes in the
- *              framework 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.
- * 
- * @since 1.0
- * 
- */
-public interface IObservable {
-
-	/**
-	 * Returns the realm for this observable. Unless otherwise specified,
-	 * getters and setters must be accessed from within this realm. Listeners
-	 * will be within this realm when they receive events from this observable.
-	 * <p>
-	 * Because observables can only be accessed from within one realm, and they
-	 * always fire events on that realm, their state can be observed in an
-	 * incremental way. It is always safe to call getters of an observable from
-	 * within a change listener attached to that observable.
-	 * </p>
-	 * 
-	 * @return the realm
-	 */
-	public Realm getRealm();
-
-	/**
-	 * Adds the given change listener to the list of change listeners. Change
-	 * listeners are notified about changes of the state of this observable in a
-	 * generic way, without specifying the change that happened. To get the
-	 * changed state, a change listener needs to query for the current state of
-	 * this observable.
-	 * 
-	 * @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. Stale
-	 * listeners are notified when an observable object becomes stale, not when
-	 * is becomes non-stale.
-	 * 
-	 * @param listener
-	 * 
-	 * @see #isStale()
-	 */
-	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 and is expected to
-	 * change soon. A non-stale observable 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, it does <b>not</b>
-	 * notify its stale listeners about becoming non-stale. 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.core.databinding/src/org/eclipse/core/databinding/observable/IObservableCollection.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservableCollection.java
deleted file mode 100644
index 66e669a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservableCollection.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import java.util.Collection;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-
-/**
- * Interface for observable collections. Only general change listeners can be
- * added to an observable collection. Listeners interested in incremental
- * changes have to be added using more concrete subtypes such as
- * {@link IObservableList} or {@link IObservableSet}.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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, Collection {
-
-	/**
-	 * @return the element type of this observable value, or <code>null</code>
-	 *         if this observable collection is untyped.
-	 */
-	Object getElementType();
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservablesListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservablesListener.java
deleted file mode 100644
index bc0687c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObservablesListener.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * Marker interface for all listener types in the observables framework.
- * 
- * @noimplement This interface is not intended to be implemented by clients.
- * 
- * @since 1.0
- */
-public interface IObservablesListener {
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObserving.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObserving.java
deleted file mode 100644
index 1c9fc13..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IObserving.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * 
- * Mixin interface for IObservables that observe other objects.
- * 
- * @since 1.0
- * 
- */
-public interface IObserving {
-
-	/**
-	 * Returns the observed object, or <code>null</code> if this observing
-	 * object does not currently observe an object.
-	 * 
-	 * @return the observed object, or <code>null</code>
-	 */
-	public Object getObserved();
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IStaleListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IStaleListener.java
deleted file mode 100644
index 5729198..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/IStaleListener.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * Listener for staleness events. An observable object is stale if its state
- * will change eventually.
- * 
- * @since 1.0
- */
-public interface IStaleListener extends IObservablesListener {
-
-	/**
-	 * Handle the event that the given observable object is now stale. The given
-	 * event object must only be used locally in this method because it may be
-	 * reused for other change notifications.
-	 * 
-	 * @param staleEvent
-	 */
-	public void handleStale(StaleEvent staleEvent);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableEvent.java
deleted file mode 100644
index 38a865c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableEvent.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import java.util.EventObject;
-
-/**
- * Abstract event object for events fired by {@link IObservable} objects. All
- * events fired by observables must be derived from this class so that the way
- * of dispatching events can be improved in later versions of the framework.
- * 
- * @since 1.0
- * 
- */
-public abstract class ObservableEvent extends EventObject {
-
-	/**
-	 * Creates a new observable event.
-	 * 
-	 * @param source
-	 */
-	public ObservableEvent(IObservable source) {
-		super(source);
-	}
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 7693906965267871813L;
-
-	/**
-	 * Returns the observable that generated this event.
-	 * 
-	 * @return the observable that generated this event
-	 */
-	public IObservable getObservable() {
-		return (IObservable) getSource();
-	}
-
-	/**
-	 * Dispatch this event to the given listener. Subclasses must implement this
-	 * method by calling the appropriate type-safe event handling method on the
-	 * given listener according to the type of this event.
-	 * 
-	 * @param listener
-	 *            the listener that should handle the event
-	 */
-	protected abstract void dispatch(IObservablesListener listener);
-
-	/**
-	 * Returns a unique object used for distinguishing this event type from
-	 * others.
-	 * 
-	 * @return a unique object representing the concrete type of this event.
-	 */
-	protected abstract Object getListenerType();
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableTracker.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableTracker.java
deleted file mode 100644
index 8e3fca9..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/ObservableTracker.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - Fix NPE, more detailed assert messages (bug 210115)
- *******************************************************************************/
-package org.eclipse.core.databinding.observable;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.internal.databinding.IdentityWrapper;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * 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;
-	}
-	
-	/**
-	 * Runs the given runnable without tracking dependencies.
-	 * @param runnable
-	 * 
-	 * @since 1.1
-	 */
-	public static void runAndIgnore(Runnable runnable) {
-		// Remember the previous value in the listener stack
-		Set lastObservableSet = (Set) currentObservableSet.get();
-		IChangeListener lastChangeListener = (IChangeListener) currentChangeListener
-				.get();
-		IStaleListener lastStaleListener = (IStaleListener) currentStaleListener
-				.get();
-		currentObservableSet.set(null);
-		currentChangeListener.set(null);
-		currentStaleListener.set(null);
-		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);
-		}
-	}
-
-	/*
-	 * Returns the same string as the default Object.toString() implementation.
-	 * getterCalled() uses this method IObservable.toString() to avoid infinite
-	 * recursion and stack overflow.
-	 */
-	private static String toString(IObservable observable) {
-		return observable.getClass().getName() + "@" //$NON-NLS-1$
-				+ Integer.toHexString(System.identityHashCode(observable));
-	}
-
-	/**
-	 * 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) {
-		Realm realm = observable.getRealm();
-		if (realm == null) // observable.isDisposed() would be more appropriate if it existed
-			Assert.isTrue(false, "Getter called on disposed observable " //$NON-NLS-1$
-					+ toString(observable));
-		if (!realm.isCurrent())
-			Assert.isTrue(false, "Getter called outside realm of observable " //$NON-NLS-1$
-					+ toString(observable));
-
-		Set lastObservableSet = (Set) currentObservableSet.get();
-		if (lastObservableSet == null) {
-			return;
-		}
-		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.core.databinding/src/org/eclipse/core/databinding/observable/Observables.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Observables.java
deleted file mode 100644
index f272080..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Observables.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 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
- *     Matt Carter - bug 212518 (constantObservableValue)
- *     Matthew Hall - bugs 208332, 212518, 219909, 184830
- *     Marko Topolnik - bug 184830
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.observable.ConstantObservableValue;
-import org.eclipse.core.internal.databinding.observable.EmptyObservableList;
-import org.eclipse.core.internal.databinding.observable.EmptyObservableSet;
-import org.eclipse.core.internal.databinding.observable.MapEntryObservableValue;
-import org.eclipse.core.internal.databinding.observable.ProxyObservableList;
-import org.eclipse.core.internal.databinding.observable.ProxyObservableSet;
-import org.eclipse.core.internal.databinding.observable.StalenessObservableValue;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableList;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableSet;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableValue;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Contains static methods to operate on or return
- * {@link IObservable Observables}.
- * 
- * @since 1.0
- */
-public class Observables {
-	/**
-	 * Returns an unmodifiable observable value backed by the given observable
-	 * value.
-	 * 
-	 * @param value
-	 *            the value to wrap in an unmodifiable value
-	 * @return an unmodifiable observable value backed by the given observable
-	 *         value
-	 * @since 1.1
-	 */
-	public static IObservableValue unmodifiableObservableValue(
-			IObservableValue value) {
-		Assert.isNotNull(value, "Argument 'value' cannot be null"); //$NON-NLS-1$
-		return new UnmodifiableObservableValue(value);
-	}
-
-	/**
-	 * Returns an observable value with the given constant value.
-	 * 
-	 * @param realm
-	 *            the observable's realm
-	 * @param value
-	 *            the observable's constant value
-	 * @param valueType
-	 *            the observable's value type
-	 * @return an immutable observable value with the given constant value
-	 * @since 1.1
-	 */
-	public static IObservableValue constantObservableValue(Realm realm,
-			Object value, Object valueType) {
-		return new ConstantObservableValue(realm, value, valueType);
-	}
-
-	/**
-	 * Returns an observable value with the given constant value.
-	 * 
-	 * @param realm
-	 *            the observable's realm
-	 * @param value
-	 *            the observable's constant value
-	 * @return an immutable observable value with the given constant value
-	 * @since 1.1
-	 */
-	public static IObservableValue constantObservableValue(Realm realm,
-			Object value) {
-		return constantObservableValue(realm, value, null);
-	}
-
-	/**
-	 * Returns an observable value with the given constant value.
-	 * 
-	 * @param value
-	 *            the observable's constant value
-	 * @param valueType
-	 *            the observable's value type
-	 * @return an immutable observable value with the given constant value
-	 * @since 1.1
-	 */
-	public static IObservableValue constantObservableValue(Object value,
-			Object valueType) {
-		return constantObservableValue(Realm.getDefault(), value, valueType);
-	}
-
-	/**
-	 * Returns an observable value with the given constant value.
-	 * 
-	 * @param value
-	 *            the observable's constant value
-	 * @return an immutable observable value with the given constant value
-	 * @since 1.1
-	 */
-	public static IObservableValue constantObservableValue(Object value) {
-		return constantObservableValue(Realm.getDefault(), value, null);
-	}
-
-	/**
-	 * Returns an unmodifiable observable list backed by the given observable
-	 * list.
-	 * 
-	 * @param list
-	 *            the list to wrap in an unmodifiable list
-	 * @return an unmodifiable observable list backed by the given observable
-	 *         list
-	 */
-	public static IObservableList unmodifiableObservableList(
-			IObservableList list) {
-		if (list == null) {
-			throw new IllegalArgumentException("List parameter cannot be null."); //$NON-NLS-1$
-		}
-
-		return new UnmodifiableObservableList(list);
-	}
-
-	/**
-	 * Returns an unmodifiable observable set backed by the given observable
-	 * set.
-	 * 
-	 * @param set
-	 *            the set to wrap in an unmodifiable set
-	 * @return an unmodifiable observable set backed by the given observable set
-	 * @since 1.1
-	 */
-	public static IObservableSet unmodifiableObservableSet(IObservableSet set) {
-		if (set == null) {
-			throw new IllegalArgumentException("Set parameter cannot be null"); //$NON-NLS-1$
-		}
-
-		return new UnmodifiableObservableSet(set);
-	}
-
-	/**
-	 * Returns an empty observable list. The returned list continues to work
-	 * after it has been disposed of and can be disposed of multiple times.
-	 * 
-	 * @return an empty observable list.
-	 */
-	public static IObservableList emptyObservableList() {
-		return emptyObservableList(Realm.getDefault(), null);
-	}
-
-	/**
-	 * Returns an empty observable list of the given element type. The returned
-	 * list continues to work after it has been disposed of and can be disposed
-	 * of multiple times.
-	 * 
-	 * @param elementType
-	 *            the element type of the returned list
-	 * @return an empty observable list
-	 * @since 1.1
-	 */
-	public static IObservableList emptyObservableList(Object elementType) {
-		return emptyObservableList(Realm.getDefault(), elementType);
-	}
-
-	/**
-	 * Returns an empty observable list belonging to the given realm. The
-	 * returned list continues to work after it has been disposed of and can be
-	 * disposed of multiple times.
-	 * 
-	 * @param realm
-	 *            the realm of the returned list
-	 * @return an empty observable list.
-	 */
-	public static IObservableList emptyObservableList(Realm realm) {
-		return emptyObservableList(realm, null);
-	}
-
-	/**
-	 * Returns an empty observable list of the given element type and belonging
-	 * to the given realm. The returned list continues to work after it has been
-	 * disposed of and can be disposed of multiple times.
-	 * 
-	 * @param realm
-	 *            the realm of the returned list
-	 * @param elementType
-	 *            the element type of the returned list
-	 * @return an empty observable list
-	 * @since 1.1
-	 */
-	public static IObservableList emptyObservableList(Realm realm,
-			Object elementType) {
-		return new EmptyObservableList(realm, elementType);
-	}
-
-	/**
-	 * Returns an empty observable set. The returned set continues to work after
-	 * it has been disposed of and can be disposed of multiple times.
-	 * 
-	 * @return an empty observable set.
-	 */
-	public static IObservableSet emptyObservableSet() {
-		return emptyObservableSet(Realm.getDefault(), null);
-	}
-
-	/**
-	 * Returns an empty observable set of the given element type. The returned
-	 * set continues to work after it has been disposed of and can be disposed
-	 * of multiple times.
-	 * 
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @return an empty observable set
-	 * @since 1.1
-	 */
-	public static IObservableSet emptyObservableSet(Object elementType) {
-		return emptyObservableSet(Realm.getDefault(), elementType);
-	}
-
-	/**
-	 * Returns an empty observable set belonging to the given realm. The
-	 * returned set continues to work after it has been disposed of and can be
-	 * disposed of multiple times.
-	 * 
-	 * @param realm
-	 *            the realm of the returned set
-	 * @return an empty observable set.
-	 */
-	public static IObservableSet emptyObservableSet(Realm realm) {
-		return emptyObservableSet(realm, null);
-	}
-
-	/**
-	 * Returns an empty observable set of the given element type and belonging
-	 * to the given realm. The returned set continues to work after it has been
-	 * disposed of and can be disposed of multiple times.
-	 * 
-	 * @param realm
-	 *            the realm of the returned set
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @return an empty observable set
-	 * @since 1.1
-	 */
-	public static IObservableSet emptyObservableSet(Realm realm,
-			Object elementType) {
-		return new EmptyObservableSet(realm, elementType);
-	}
-
-	/**
-	 * Returns an observable set backed by the given set.
-	 * 
-	 * @param set
-	 *            the set to wrap in an IObservableSet
-	 * @return an observable set backed by the given set
-	 */
-	public static IObservableSet staticObservableSet(Set set) {
-		return staticObservableSet(Realm.getDefault(), set, Object.class);
-	}
-
-	/**
-	 * Returns an observable set of the given element type, backed by the given
-	 * set.
-	 * 
-	 * @param set
-	 *            the set to wrap in an IObservableSet
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @return Returns an observable set backed by the given unchanging set
-	 * @since 1.1
-	 */
-	public static IObservableSet staticObservableSet(Set set, Object elementType) {
-		return staticObservableSet(Realm.getDefault(), set, elementType);
-	}
-
-	/**
-	 * Returns an observable set belonging to the given realm, backed by the
-	 * given set.
-	 * 
-	 * @param realm
-	 *            the realm of the returned set
-	 * @param set
-	 *            the set to wrap in an IObservableSet
-	 * @return an observable set backed by the given unchanging set
-	 */
-	public static IObservableSet staticObservableSet(Realm realm, Set set) {
-		return staticObservableSet(realm, set, Object.class);
-	}
-
-	/**
-	 * Returns an observable set of the given element type and belonging to the
-	 * given realm, backed by the given set.
-	 * 
-	 * @param realm
-	 *            the realm of the returned set
-	 * @param set
-	 *            the set to wrap in an IObservableSet
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @return an observable set backed by the given set
-	 * @since 1.1
-	 */
-	public static IObservableSet staticObservableSet(Realm realm, Set set,
-			Object elementType) {
-		return new ObservableSet(realm, set, elementType) {
-			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 disposable proxy for the given observable set
-	 */
-	public static IObservableSet proxyObservableSet(IObservableSet target) {
-		return new ProxyObservableSet(target);
-	}
-
-	/**
-	 * Returns an observable list that contains the same elements as the given
-	 * list, and fires the same events as the given list, but can be disposed of
-	 * without disposing of the wrapped list.
-	 * 
-	 * @param target
-	 *            the list to wrap
-	 * @return a disposable proxy for the given observable list
-	 * @since 1.1
-	 */
-	public static IObservableList proxyObservableList(IObservableList target) {
-		return new ProxyObservableList(target);
-	}
-
-	/**
-	 * Returns an observable list backed by the given list.
-	 * 
-	 * @param list
-	 *            the list to wrap in an IObservableList
-	 * @return an observable list backed by the given unchanging list
-	 */
-	public static IObservableList staticObservableList(List list) {
-		return staticObservableList(Realm.getDefault(), list, Object.class);
-	}
-
-	/**
-	 * Returns an observable list of the given element type, backed by the given
-	 * list.
-	 * 
-	 * @param list
-	 *            the list to wrap in an IObservableList
-	 * @param elementType
-	 *            the element type of the returned list
-	 * @return an observable list backed by the given unchanging list
-	 * @since 1.1
-	 */
-	public static IObservableList staticObservableList(List list,
-			Object elementType) {
-		return staticObservableList(Realm.getDefault(), list, elementType);
-	}
-
-	/**
-	 * Returns an observable list belonging to the given realm, backed by the
-	 * given list.
-	 * 
-	 * @param realm
-	 *            the realm of the returned list
-	 * @param list
-	 *            the list to wrap in an IObservableList
-	 * @return an observable list backed by the given unchanging list
-	 */
-	public static IObservableList staticObservableList(Realm realm, List list) {
-		return staticObservableList(realm, list, Object.class);
-	}
-
-	/**
-	 * Returns an observable list of the given element type and belonging to the
-	 * given realm, backed by the given list.
-	 * 
-	 * @param realm
-	 *            the realm of the returned list
-	 * @param list
-	 *            the list to wrap in an IObservableList
-	 * @param elementType
-	 *            the element type of the returned list
-	 * @return an observable list backed by the given unchanging list
-	 * @since 1.1
-	 */
-	public static IObservableList staticObservableList(Realm realm, List list,
-			Object elementType) {
-		return new ObservableList(realm, list, elementType) {
-			public void addChangeListener(IChangeListener listener) {
-			}
-
-			public void addStaleListener(IStaleListener listener) {
-			}
-
-			public void addListChangeListener(IListChangeListener listener) {
-			}
-		};
-	}
-
-	/**
-	 * Returns an observable value of type <code>Boolean.TYPE</code> which
-	 * tracks whether the given observable is stale.
-	 * 
-	 * @param observable
-	 *            the observable to track
-	 * @return an observable value which tracks whether the given observable is
-	 *         stale
-	 * 
-	 * @since 1.1
-	 */
-	public static IObservableValue observeStale(IObservable observable) {
-		return new StalenessObservableValue(observable);
-	}
-
-	/**
-	 * Returns an observable value that tracks changes to the value of an
-	 * observable map's entry specified by its key.
-	 * <p>
-	 * The state where the key does not exist in the map is equivalent to the
-	 * state where the key exists and its value is <code>null</code>. The
-	 * transition between these two states is not considered a value change and
-	 * no event is fired.
-	 * 
-	 * @param map
-	 *            the observable map whose entry will be tracked.
-	 * @param key
-	 *            the key identifying the map entry to track.
-	 * @param valueType
-	 *            the type of the value. May be <code>null</code>, meaning
-	 *            the value is untyped.
-	 * @return an observable value that tracks the value associated with the
-	 *         specified key in the given map
-	 * @since 1.1
-	 */
-	public static IObservableValue observeMapEntry(IObservableMap map,
-			Object key, Object valueType) {
-		return new MapEntryObservableValue(map, key, valueType);
-	}
-
-	/**
-	 * Returns a factory for creating obervable values tracking the value of the
-	 * {@link IObservableMap observable map} entry identified by a particular
-	 * key.
-	 * 
-	 * @param map
-	 *            the observable map whose entry will be tracked.
-	 * @param valueType
-	 *            the type of the value. May be <code>null</code>, meaning
-	 *            the value is untyped.
-	 * @return a factory for creating observable values tracking the value of
-	 *         the observable map entry identified by a particular key object.
-	 * @since 1.1
-	 */
-	public static IObservableFactory mapEntryValueFactory(
-			final IObservableMap map, final Object valueType) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object key) {
-				return observeMapEntry(map, key, valueType);
-			}
-		};
-	}
-
-	/**
-	 * Helper method for <code>MasterDetailObservables.detailValue(master,
-	 * mapEntryValueFactory(map, valueType), valueType)</code>.
-	 * 
-	 * @param map
-	 *            the observable map whose entry will be tracked.
-	 * @param master
-	 *            the observable value that identifies which map entry to track.
-	 * @param valueType
-	 *            the type of the value. May be <code>null</code>, meaning
-	 *            the value is untyped.
-	 * @return an observable value tracking the current value of the specified
-	 *         key in the given map an observable value that tracks the current
-	 *         value of the named property for the current value of the master
-	 *         observable value
-	 * @since 1.1
-	 */
-	public static IObservableValue observeDetailMapEntry(IObservableMap map,
-			IObservableValue master, Object valueType) {
-		return MasterDetailObservables.detailValue(master,
-				mapEntryValueFactory(map, valueType), valueType);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Realm.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Realm.java
deleted file mode 100644
index 27d08ff..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/Realm.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 168153
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.Queue;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-
-/**
- * A realm defines a context from which objects implementing {@link IObservable}
- * must be accessed, and on which these objects will notify their listeners. To
- * bridge between observables from different realms, subclasses of
- * {@link Binding} can be used.
- * <p>
- * A block of code is said to be executing within a realm if calling
- * {@link #isCurrent()} from that block returns true. Code reached by calling
- * methods from that block will execute within the same realm, with the
- * exception of methods on this class that can be used to execute code within a
- * specific realm. Clients can use {@link #syncExec(Runnable)},
- * {@link #asyncExec(Runnable)}, or {@link #exec(Runnable)} to execute a
- * runnable within this realm. Note that using {@link #syncExec(Runnable)} can
- * lead to deadlocks and should be avoided if the current thread holds any
- * locks.
- * </p>
- * <p>
- * It is instructive to think about possible implementations of Realm: It can be
- * based on executing on a designated thread such as a UI thread, or based on
- * holding a lock. In the former case, calling syncExec on a realm that is not
- * the current realm will execute the given runnable on a different thread (the
- * designated thread). In the latter case, calling syncExec may execute the
- * given runnable on the calling thread, but calling
- * {@link #asyncExec(Runnable)} will execute the given runnable on a different
- * thread. Therefore, no assumptions can be made about the thread that will
- * execute arguments to {@link #asyncExec(Runnable)},
- * {@link #syncExec(Runnable)}, or {@link #exec(Runnable)}.
- * </p>
- * <p>
- * It is possible that a block of code is executing within more than one realm.
- * This can happen for implementations of Realm that are based on holding a lock
- * but don't use a separate thread to run runnables given to
- * {@link #syncExec(Runnable)}. Realm implementations of this kind should be
- * appropriately documented because it increases the opportunity for deadlock.
- * </p>
- * <p>
- * Some implementations of {@link IObservable} provide constructors which do not
- * take a Realm argument and are specified to create the observable instance
- * with the current default realm. The default realm can be set for the
- * currently executing thread by using {@link #runWithDefault(Realm, Runnable)}.
- * Note that the default realm does not have to be the current realm.
- * </p>
- * <p>
- * Subclasses must override at least one of asyncExec()/syncExec(). For realms
- * based on a designated thread, it may be easier to implement asyncExec and
- * keep the default implementation of syncExec. For realms based on holding a
- * lock, it may be easier to implement syncExec and keep the default
- * implementation of asyncExec.
- * </p>
- * 
- * @since 1.0
- * 
- * @see IObservable
- */
-public abstract class Realm {
-
-	private static ThreadLocal defaultRealm = new ThreadLocal();
-
-	/**
-	 * Returns the default realm for the calling thread, or <code>null</code>
-	 * if no default realm has been set.
-	 * 
-	 * @return the default realm, or <code>null</code>
-	 */
-	public static Realm getDefault() {
-		return (Realm) defaultRealm.get();
-	}
-	
-	/**
-	 * Sets the default realm for the calling thread, returning the current
-	 * default thread. This method is inherently unsafe, it is recommended to
-	 * use {@link #runWithDefault(Realm, Runnable)} instead. This method is
-	 * exposed to subclasses to facilitate testing.
-	 * 
-	 * @param realm
-	 *            the new default realm, or <code>null</code>
-	 * @return the previous default realm, or <code>null</code>
-	 */
-	protected static Realm setDefault(Realm realm) {
-		Realm oldValue = getDefault();
-		defaultRealm.set(realm);
-		return oldValue;
-	}
-
-	/**
-	 * @return true if the caller is executing in this realm. This method must
-	 *         not have side-effects (such as, for example, implicitly placing
-	 *         the caller in this realm).
-	 */
-	abstract public boolean isCurrent();
-
-	private Thread workerThread;
-
-	Queue workQueue = new Queue();
-	
-	/**
-	 * Runs the given runnable. If an exception occurs within the runnable, it
-	 * is logged and not re-thrown. If the runnable implements
-	 * {@link ISafeRunnable}, the exception is passed to its
-	 * <code>handleException<code> method.
-	 * 
-	 * @param runnable
-	 */
-	protected static void safeRun(final Runnable runnable) {
-		ISafeRunnable safeRunnable;
-		if (runnable instanceof ISafeRunnable) {
-			safeRunnable = (ISafeRunnable) runnable;
-		} else {
-			safeRunnable = new ISafeRunnable() {
-				public void handleException(Throwable exception) {
-					Policy
-							.getLog()
-							.log(
-									new Status(
-											IStatus.ERROR,
-											Policy.JFACE_DATABINDING,
-											IStatus.OK,
-											"Unhandled exception: " + exception.getMessage(), exception)); //$NON-NLS-1$
-				}
-				public void run() throws Exception {
-					runnable.run();
-				}
-			};
-		}
-		SafeRunner.run(safeRunnable);
-	}
-
-	/**
-	 * Causes the <code>run()</code> method of the runnable to be invoked from
-	 * within this realm. If the caller is executing in this realm, the
-	 * runnable's run method is invoked directly, otherwise it is run at the
-	 * next reasonable opportunity using asyncExec.
-	 * <p>
-	 * If the given runnable is an instance of {@link ISafeRunnable}, its
-	 * exception handler method will be called if any exceptions occur while
-	 * running it. Otherwise, the exception will be logged.
-	 * </p>
-	 * 
-	 * @param runnable
-	 */
-	public void exec(Runnable runnable) {
-		if (isCurrent()) {
-			safeRun(runnable);
-		} else {
-			asyncExec(runnable);
-		}
-	}
-
-	/**
-	 * Causes the <code>run()</code> method of the runnable to be invoked from
-	 * within this realm at the next reasonable opportunity. The caller of this
-	 * method continues to run in parallel, and is not notified when the
-	 * runnable has completed.
-	 * <p>
-	 * If the given runnable is an instance of {@link ISafeRunnable}, its
-	 * exception handler method will be called if any exceptions occur while
-	 * running it. Otherwise, the exception will be logged.
-	 * </p>
-	 * <p>
-	 * Subclasses should use {@link #safeRun(Runnable)} to run the runnable.
-	 * </p>
-	 * 
-	 * @param runnable
-	 */
-	public void asyncExec(Runnable runnable) {
-		synchronized (workQueue) {
-			ensureWorkerThreadIsRunning();
-			workQueue.enqueue(runnable);
-			workQueue.notifyAll();
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void ensureWorkerThreadIsRunning() {
-		if (workerThread == null) {
-			workerThread = new Thread() {
-				public void run() {
-					try {
-						while (true) {
-							Runnable work = null;
-							synchronized (workQueue) {
-								while (workQueue.isEmpty()) {
-									workQueue.wait();
-								}
-								work = (Runnable) workQueue.dequeue();
-							}
-							syncExec(work);
-						}
-					} catch (InterruptedException e) {
-						// exit
-					}
-				}
-			};
-			workerThread.start();
-		}
-	}
-
-	/**
-	 * Causes the <code>run()</code> method of the runnable to be invoked from
-	 * within this realm at the next reasonable opportunity. This method is
-	 * blocking the caller until the runnable completes.
-	 * <p>
-	 * If the given runnable is an instance of {@link ISafeRunnable}, its
-	 * exception handler method will be called if any exceptions occur while
-	 * running it. Otherwise, the exception will be logged.
-	 * </p>
-	 * <p>
-	 * Subclasses should use {@link #safeRun(Runnable)} to run the runnable.
-	 * </p>
-	 * <p>
-	 * Note: This class is not meant to be called by clients and therefore has
-	 * only protected access.
-	 * </p>
-	 * 
-	 * @param runnable
-	 */
-	protected void syncExec(Runnable runnable) {
-		SyncRunnable syncRunnable = new SyncRunnable(runnable);
-		asyncExec(syncRunnable);
-		synchronized (syncRunnable) {
-			while (!syncRunnable.hasRun) {
-				try {
-					syncRunnable.wait();
-				} catch (InterruptedException e) {
-					Thread.currentThread().interrupt();
-				}
-			}
-		}
-	}
-
-	static class SyncRunnable implements Runnable {
-		boolean hasRun = false;
-
-		private Runnable runnable;
-
-		SyncRunnable(Runnable runnable) {
-			this.runnable = runnable;
-		}
-
-		public void run() {
-			try {
-				safeRun(runnable);
-			} finally {
-				synchronized (this) {
-					hasRun = true;
-					this.notifyAll();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Sets the provided <code>realm</code> as the default for the duration of
-	 * {@link Runnable#run()} and resets the previous realm after completion.
-	 * Note that this will not set the given realm as the current realm.
-	 * 
-	 * @param realm
-	 * @param runnable
-	 */
-	public static void runWithDefault(Realm realm, Runnable runnable) {
-		Realm oldRealm = Realm.getDefault();
-		try {
-			defaultRealm.set(realm);
-			runnable.run();
-		} finally {
-			defaultRealm.set(oldRealm);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/StaleEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/StaleEvent.java
deleted file mode 100644
index 14e8c76..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/StaleEvent.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable;
-
-/**
- * Generic event denoting that the state of an {@link IObservable} object is
- * about to change. Note that this event is only fired when an observable
- * becomes stale, not when it becomes unstale; an observable that becomes
- * unstale should always fire a change event. Staleness can be used (for
- * example) to notify listeners when an observable has started a background
- * thread for updating its state. Clients can safely ignore staleness.
- * 
- * @see IObservable#isStale()
- * 
- * @since 1.0
- * 
- */
-public class StaleEvent extends ObservableEvent {
-
-	/**
-	 * Creates a new stale event.
-	 * 
-	 * @param source
-	 *            the source observable
-	 */
-	public StaleEvent(IObservable source) {
-		super(source);
-	}
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 3491012225431471077L;
-
-	static final Object TYPE = new Object();
-
-	protected void dispatch(IObservablesListener listener) {
-		((IStaleListener) listener).handleStale(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/AbstractObservableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/AbstractObservableList.java
deleted file mode 100644
index 658ff7f..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/AbstractObservableList.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 167204
- *     Matthew Hall - bug 118516
- *     Matthew Hall - bug 208858
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.AbstractList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.ChangeSupport;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.AssertionFailedException;
-
-/**
- * Subclasses should override at least get(int index) and size().
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public abstract class AbstractObservableList extends AbstractList implements
-		IObservableList {
-
-	private ChangeSupport changeSupport;
-
-	/**
-	 * @param realm 
-	 * 
-	 */
-	public AbstractObservableList(Realm realm) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		changeSupport = new ChangeSupport(realm){
-			protected void firstListenerAdded() {
-				AbstractObservableList.this.firstListenerAdded();
-			}
-			protected void lastListenerRemoved() {
-				AbstractObservableList.this.lastListenerRemoved();
-			}
-		};
-	}
-
-	/**
-	 * 
-	 */
-	public AbstractObservableList() {
-		this(Realm.getDefault());
-	}
-	
-	public boolean isStale() {
-		getterCalled();
-		return false;
-	}
-
-	public synchronized void addListChangeListener(IListChangeListener listener) {
-		changeSupport.addListener(ListChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeListChangeListener(IListChangeListener listener) {
-		changeSupport.removeListener(ListChangeEvent.TYPE, listener);
-	}
-
-	protected void fireListChange(ListDiff diff) {
-		// fire general change event first
-		fireChange();
-		changeSupport.fireEvent(new ListChangeEvent(this, diff));
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		changeSupport.addChangeListener(listener);
-	}
-
-	public synchronized void removeChangeListener(IChangeListener listener) {
-		changeSupport.removeChangeListener(listener);
-	}
-
-	public synchronized void addStaleListener(IStaleListener listener) {
-		changeSupport.addStaleListener(listener);
-	}
-
-	public synchronized void removeStaleListener(IStaleListener listener) {
-		changeSupport.removeStaleListener(listener);
-	}
-
-	/**
-	 * Fires change event. Must be invoked from the current realm.
-	 */
-	protected void fireChange() {
-		checkRealm();
-		changeSupport.fireEvent(new ChangeEvent(this));
-	}
-
-	/**
-	 * Fires stale event. Must be invoked from the current realm.
-	 */
-	protected void fireStale() {
-		checkRealm();
-		changeSupport.fireEvent(new StaleEvent(this));
-	}
-
-	/**
-	 * 
-	 */
-	protected void firstListenerAdded() {
-	}
-
-	/**
-	 * 
-	 */
-	protected void lastListenerRemoved() {
-	}
-
-	/**
-	 * 
-	 */
-	public synchronized void dispose() {
-		changeSupport = 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() {
-		getterCalled();
-		final Iterator wrappedIterator = super.iterator();
-		return new Iterator() {
-			public void remove() {
-				wrappedIterator.remove();
-			}
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				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);
-	}
-
-	/**
-	 * Moves the element located at <code>oldIndex</code> to
-	 * <code>newIndex</code>. This method is equivalent to calling
-	 * <code>add(newIndex, remove(oldIndex))</code>.
-	 * <p>
-	 * Subclasses should override this method to deliver list change
-	 * notification for the remove and add operations in the same
-	 * ListChangeEvent, as this allows {@link ListDiff#accept(ListDiffVisitor)}
-	 * to recognize the operation as a move.
-	 * 
-	 * @param oldIndex
-	 *            the element's position before the move. Must be within the
-	 *            range <code>0 &lt;= oldIndex &lt; size()</code>.
-	 * @param newIndex
-	 *            the element's position after the move. Must be within the
-	 *            range <code>0 &lt;= newIndex &lt; size()</code>.
-	 * @return the element that was moved.
-	 * @throws IndexOutOfBoundsException
-	 *             if either argument is out of range (<code>0 &lt;= index &lt; size()</code>).
-	 * @see ListDiffVisitor#handleMove(int, int, Object)
-	 * @see ListDiff#accept(ListDiffVisitor)
-	 * @since 1.1
-	 */
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		int size = doGetSize();
-		if (oldIndex < 0 || oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex < 0 || newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		Object element = remove(oldIndex);
-		add(newIndex, element);
-		return element;
-	}
-
-	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);
-	}
-
-	public Realm getRealm() {
-		return changeSupport.getRealm();
-	}
-	
-	/**
-	 * Asserts that the realm is the current realm.
-	 * 
-	 * @see Realm#isCurrent()
-	 * @throws AssertionFailedException
-	 *             if the realm is not the current realm
-	 */
-	protected void checkRealm() {
-		Assert.isTrue(getRealm().isCurrent(),
-				"This operation must be run within the observable's realm"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ComputedList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ComputedList.java
deleted file mode 100644
index e7f6b2b..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ComputedList.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/************************************************************************************************************
- * Copyright (c) 2007 Matthew Hall and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * 		Matthew Hall - initial API and implementation
- * 		IBM Corporation - initial API and implementation
- * 		Brad Reynolds - initial API and implementation (through bug 116920 and bug 147515)
- * 		Matthew Hall - bug 211786
- ***********************************************************************************************************/
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-
-/**
- * A Lazily calculated list that automatically computes and registers listeners
- * on its dependencies as long as all of its dependencies are IObservable
- * objects
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.1
- */
-public abstract class ComputedList extends AbstractObservableList {
-	private List cachedList = new ArrayList();
-
-	private boolean dirty = true;
-	private boolean stale = false;
-
-	private IObservable[] dependencies = new IObservable[0];
-
-	/**
-	 * Creates a computed list in the default realm and with an unknown (null)
-	 * element type.
-	 */
-	public ComputedList() {
-		this(Realm.getDefault(), null);
-	}
-
-	/**
-	 * Creates a computed list in the default realm and with the given element
-	 * type.
-	 * 
-	 * @param elementType
-	 *            the element type, may be <code>null</code> to indicate
-	 *            unknown element type
-	 */
-	public ComputedList(Object elementType) {
-		this(Realm.getDefault(), elementType);
-	}
-
-	/**
-	 * Creates a computed list in given realm and with an unknown (null) element
-	 * type.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * 
-	 */
-	public ComputedList(Realm realm) {
-		this(realm, null);
-	}
-
-	/**
-	 * Creates a computed list in the given realm and with the given element
-	 * type.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param elementType
-	 *            the element type, may be <code>null</code> to indicate
-	 *            unknown element type
-	 */
-	public ComputedList(Realm realm, Object elementType) {
-		super(realm);
-		this.elementType = elementType;
-	}
-
-	/**
-	 * 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 calculate and stores the result in cachedList.
-	 * </p>
-	 * 
-	 * <p>
-	 * The IChangeListener stores each observable in the dependencies list. This
-	 * is registered as the listener when calling ObservableTracker, to detect
-	 * every observable 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() {
-			cachedList = calculate();
-			if (cachedList == null)
-				cachedList = Collections.EMPTY_LIST;
-		}
-
-		public void handleStale(StaleEvent event) {
-			if (!dirty)
-				makeStale();
-		}
-
-		public void handleChange(ChangeEvent event) {
-			makeDirty();
-		}
-	}
-
-	private PrivateInterface privateInterface = new PrivateInterface();
-
-	private Object elementType;
-
-	protected int doGetSize() {
-		return doGetList().size();
-	}
-
-	public Object get(int index) {
-		getterCalled();
-		return doGetList().get(index);
-	}
-
-	private final List getList() {
-		getterCalled();
-		return doGetList();
-	}
-
-	final List doGetList() {
-		if (dirty) {
-			// This line will do the following:
-			// - Run the calculate method
-			// - While doing so, add any observable that is touched to the
-			// dependencies list
-			IObservable[] newDependencies = ObservableTracker.runAndMonitor(
-					privateInterface, privateInterface, null);
-
-			// If any dependencies are stale, a stale event will be fired here
-			// even if we were already stale before recomputing. This is in case
-			// clients assume that a list change is indicative of non-staleness.
-			stale = false;
-			for (int i = 0; i < newDependencies.length; i++) {
-				if (newDependencies[i].isStale()) {
-					makeStale();
-					break;
-				}
-			}
-
-			if (!stale) {
-				for (int i = 0; i < newDependencies.length; i++) {
-					newDependencies[i].addStaleListener(privateInterface);
-				}
-			}
-
-			dependencies = newDependencies;
-
-			dirty = false;
-		}
-
-		return cachedList;
-	}
-
-	private void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	/**
-	 * Subclasses must override this method to calculate the list contents.
-	 * 
-	 * @return the object's list.
-	 */
-	protected abstract List calculate();
-
-	private void makeDirty() {
-		if (!dirty) {
-			dirty = true;
-
-			makeStale();
-
-			stopListening();
-
-			// copy the old list
-			final List oldList = new ArrayList(cachedList);
-			// Fire the "dirty" event. This implementation recomputes the new
-			// list lazily.
-			fireListChange(new ListDiff() {
-				ListDiffEntry[] differences;
-
-				public ListDiffEntry[] getDifferences() {
-					if (differences == null)
-						differences = Diffs.computeListDiff(oldList, getList())
-								.getDifferences();
-					return differences;
-				}
-			});
-		}
-	}
-
-	private void stopListening() {
-		if (dependencies != null) {
-			for (int i = 0; i < dependencies.length; i++) {
-				IObservable observable = dependencies[i];
-
-				observable.removeChangeListener(privateInterface);
-				observable.removeStaleListener(privateInterface);
-			}
-			dependencies = null;
-		}
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	public boolean isStale() {
-		// recalculate list if dirty, to ensure staleness is correct.
-		getList();
-		return stale;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		super.addChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		computeListForListeners();
-	}
-
-	public synchronized void addListChangeListener(IListChangeListener listener) {
-		super.addListChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		computeListForListeners();
-	}
-
-	private void computeListForListeners() {
-		// Some clients just add a listener and expect to get notified even if
-		// they never called getValue(), so we have to call getValue() ourselves
-		// here to be sure. Need to be careful about realms though, this method
-		// can be called outside of our realm.
-		// See also bug 198211. If a client calls this outside of our realm,
-		// they may receive change notifications before the runnable below has
-		// been executed. It is their job to figure out what to do with those
-		// notifications.
-		getRealm().exec(new Runnable() {
-			public void run() {
-				if (dependencies == null) {
-					// We are not currently listening.
-					// But someone is listening for changes. Call getValue()
-					// to make sure we start listening to the observables we
-					// depend on.
-					getList();
-				}
-			}
-		});
-	}
-
-	public synchronized void dispose() {
-		stopListening();
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/IListChangeListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/IListChangeListener.java
deleted file mode 100644
index 8372729..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/IListChangeListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for changes to observable lists.
- * 
- * @since 1.0
- */
-public interface IListChangeListener extends IObservablesListener {
-
-	/**
-	 * Handle a change to an observable list. The change is described by the
-	 * diff object. The given event object must only be used locally in this
-	 * method because it may be reused for other change notifications. The diff
-	 * object referenced by the event is immutable and may be used non-locally.
-	 * 
-	 * @param event
-	 */
-	void handleListChange(ListChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/IObservableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/IObservableList.java
deleted file mode 100644
index 097d367..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/IObservableList.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 167204
- *     Matthew Hall - bug 208858
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-
-/**
- * A list whose changes can be tracked by list change listeners.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- *              Clients should instead subclass one of the framework 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.
- * 
- * @see AbstractObservableList
- * @see ObservableList
- * 
- * @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[]);
-
-	/**
-	 * 
-	 */
-    public boolean add(Object o);
-
-	/**
-	 * 
-	 */
-    public boolean remove(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean containsAll(Collection c);
-
-	/**
-	 * 
-	 */
-    public boolean addAll(Collection c);
-
-	/**
-	 * 
-	 */
-    public boolean addAll(int index, Collection c);
-
-	/**
-	 * 
-	 */
-    public boolean removeAll(Collection c);
-
-	/**
-	 *
-	 */
-    public boolean retainAll(Collection c);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public boolean equals(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-    public int hashCode();
-
-	/**
-	 * @TrackedGetter
-	 */
-    public Object get(int index);
-
-	/**
-	 * 
-	 */
-    public Object set(int index, Object element);
-
-	/**
-	 * Moves the element located at <code>oldIndex</code> to
-	 * <code>newIndex</code>. This method is equivalent to calling
-	 * <code>add(newIndex, remove(oldIndex))</code>.
-	 * <p>
-	 * Implementors should deliver list change notification for the remove and
-	 * add operations in the same ListChangeEvent, as this allows
-	 * {@link ListDiff#accept(ListDiffVisitor)} to recognize the operation as a
-	 * move.
-	 * 
-	 * @param oldIndex
-	 *            the element's position before the move. Must be within the
-	 *            range <code>0 &lt;= oldIndex &lt; size()</code>.
-	 * @param newIndex
-	 *            the element's position after the move. Must be within the
-	 *            range <code>0 &lt;= newIndex &lt; size()</code>.
-	 * @return the element that was moved.
-	 * @throws IndexOutOfBoundsException
-	 *             if either argument is out of range (<code>0 &lt;= index &lt; size()</code>).
-	 * @see ListDiffVisitor#handleMove(int, int, Object)
-	 * @see ListDiff#accept(ListDiffVisitor)
-	 * @since 1.1
-	 */
-	public Object move(int oldIndex, int newIndex);
-
-	/**
-	 * 
-	 */
-    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 or <code>null</code> if untyped
-	 */
-	Object getElementType();
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
deleted file mode 100644
index 1b2ce4d..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * List change event describing an incremental change of an
- * {@link IObservableList} object.
- * 
- * @since 1.0
- */
-public class ListChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -9154315534258776672L;
-
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable list. Listeners must
-	 * not change this field.
-	 */
-	public ListDiff diff;
-
-	/**
-	 * Creates a new list change event.
-	 * 
-	 * @param source
-	 *            the source observable list
-	 * @param diff
-	 *            the list change
-	 */
-	public ListChangeEvent(IObservableList source, ListDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * Returns the observable list from which this event originated.
-	 * 
-	 * @return the observable list from which this event originated
-	 */
-	public IObservableList getObservableList() {
-		return (IObservableList) getSource();
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IListChangeListener) listener).handleListChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiff.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiff.java
deleted file mode 100644
index df98632..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiff.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208858
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * Object describing a diff between two lists.
- * 
- * @since 1.0
- */
-public abstract class ListDiff {
-
-	/**
-	 * Returns a ListDiffEntry array representing the differences in the list,
-	 * in the order they are to be processed.
-	 * 
-	 * @return a ListDiffEntry array representing the differences in the list,
-	 *         in the order they are to be processed.
-	 */
-	public abstract ListDiffEntry[] getDifferences();
-
-	/**
-	 * Traverses the {@link #getDifferences()} array, calling the appropriate
-	 * method in <code>visitor</code> for each difference.
-	 * <ol>
-	 * <li>{@link ListDiffVisitor#handleReplace(int, Object, Object)} is called
-	 * whenever a remove entry is immediately followed by an add entry which
-	 * shares the same list index.
-	 * <li>{@link ListDiffVisitor#handleMove(int, int, Object)} is called
-	 * whenever a remove entry is immediately followed by an add entry with an
-	 * equivalent element.
-	 * <li>{@link ListDiffVisitor#handleRemove(int, Object)} is called whenever
-	 * a remove entry does not match conditions 1 or 2.
-	 * <li>{@link ListDiffVisitor#handleAdd(int, Object)} is called whenever an
-	 * add entry does not match conditions in 1 or 2.
-	 * </ol>
-	 * 
-	 * @param visitor
-	 *            the visitor to receive callbacks.
-	 * @see ListDiffVisitor
-	 * @since 1.1
-	 */
-	public void accept(ListDiffVisitor visitor) {
-		ListDiffEntry[] differences = getDifferences();
-		for (int i = 0; i < differences.length; i++) {
-			ListDiffEntry entry = differences[i];
-			int position = entry.getPosition();
-			Object element = entry.getElement();
-			boolean addition = entry.isAddition();
-
-			if (!addition && i + 1 < differences.length) {
-				ListDiffEntry entry2 = differences[i + 1];
-				if (entry2.isAddition()) {
-					int position2 = entry2.getPosition();
-					Object element2 = entry2.getElement();
-					if (position == position2) {
-						visitor.handleReplace(position, element, element2);
-						i++;
-						continue;
-					}
-					if (Util.equals(element, element2)) {
-						visitor.handleMove(position, position2, element);
-						i++;
-						continue;
-					}
-				}
-			}
-			if (addition)
-				visitor.handleAdd(position, element);
-			else
-				visitor.handleRemove(position, element);
-		}
-	}
-
-	/**
-	 * @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.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiffEntry.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiffEntry.java
deleted file mode 100644
index da2e79f..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/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.core.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.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiffVisitor.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiffVisitor.java
deleted file mode 100644
index e2d1389..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ListDiffVisitor.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208858)
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.List;
-
-/**
- * A visitor for processing differences in a ListDiff.
- * 
- * @see ListDiff#accept(ListDiffVisitor)
- * @since 1.1
- */
-public abstract class ListDiffVisitor {
-	/**
-	 * Notifies the visitor that <code>element</code> was added to the list at
-	 * position <code>index</code>.
-	 * 
-	 * @param index
-	 *            the index where the element was added
-	 * @param element
-	 *            the element that was added
-	 */
-	public abstract void handleAdd(int index, Object element);
-
-	/**
-	 * Notifies the visitor that <code>element</code> was removed from the
-	 * list at position <code>index</code>.
-	 * 
-	 * @param index
-	 *            the index where the element was removed
-	 * @param element
-	 *            the element that was removed
-	 */
-	public abstract void handleRemove(int index, Object element);
-
-	/**
-	 * Notifies the visitor that <code>element</code> was moved in the list
-	 * from position <code>oldIndex</code> to position <code>newIndex</code>.
-	 * <p>
-	 * The default implementation of this method calls
-	 * {@link #handleRemove(int, Object)} with the old position, then
-	 * {@link #handleAdd(int, Object)} with the new position. Clients which are
-	 * interested in recognizing "moves" in a list (i.e. calls to
-	 * {@link IObservableList#move(int, int)}) should override this method.
-	 * 
-	 * @param oldIndex
-	 *            the index that the element was moved from.
-	 * @param newIndex
-	 *            the index that the element was moved to.
-	 * @param element
-	 *            the element that was moved
-	 * @see IObservableList#move(int, int)
-	 */
-	public void handleMove(int oldIndex, int newIndex, Object element) {
-		handleRemove(oldIndex, element);
-		handleAdd(newIndex, element);
-	}
-
-	/**
-	 * Notifies the visitor that <code>oldElement</code>, located at position
-	 * <code>index</code> in the list, was replaced by <code>newElement</code>.
-	 * <p>
-	 * The default implementation of this method calls
-	 * {@link #handleRemove(int, Object)} with the old element, then
-	 * {@link #handleAdd(int, Object)} with the new element. Clients which are
-	 * interested in recognizing "replaces" in a list (i.e. calls to
-	 * {@link List#set(int, Object)}) should override this method.
-	 * 
-	 * @param index
-	 *            the index where the element was replaced.
-	 * @param oldElement
-	 *            the element being replaced.
-	 * @param newElement
-	 *            the element that replaced oldElement.
-	 * @see List#set(int, Object)
-	 */
-	public void handleReplace(int index, Object oldElement, Object newElement) {
-		handleRemove(index, oldElement);
-		handleAdd(index, newElement);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ObservableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ObservableList.java
deleted file mode 100644
index 0a6123b..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ObservableList.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 167204
- *     Matthew Hall - bug 208858
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * Abstract implementation of {@link IObservableList}, based on an underlying regular list. 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- * 
- */
-public abstract class ObservableList extends AbstractObservable implements
-		IObservableList {
-
-	protected List wrappedList;
-
-	/**
-	 * Stale state of the list.  Access must occur in the current realm.
-	 */
-	private boolean stale = false;
-
-	private Object elementType;
-
-	protected ObservableList(List wrappedList, Object elementType) {
-		this(Realm.getDefault(), wrappedList, elementType);
-	}
-
-	protected ObservableList(Realm realm, List wrappedList, Object elementType) {
-		super(realm);
-		this.wrappedList = wrappedList;
-		this.elementType = elementType;
-	}
-
-	public synchronized void addListChangeListener(IListChangeListener listener) {
-		addListener(ListChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeListChangeListener(IListChangeListener listener) {
-		removeListener(ListChangeEvent.TYPE, listener);
-	}
-
-	protected void fireListChange(ListDiff diff) {
-		// fire general change event first
-		super.fireChange();
-		fireEvent(new ListChangeEvent(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() {
-		getterCalled();
-		final Iterator wrappedIterator = wrappedList.iterator();
-		return new Iterator() {
-
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				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) {
-    	getterCalled();
-		final ListIterator wrappedIterator = wrappedList.listIterator(index);
-		return new ListIterator() {
-
-			public int nextIndex() {
-				return wrappedIterator.nextIndex();
-			}
-
-			public int previousIndex() {
-				return wrappedIterator.previousIndex();
-			}
-
-			public void remove() {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public boolean hasPrevious() {
-				return wrappedIterator.hasPrevious();
-			}
-
-			public Object next() {
-				return wrappedIterator.next();
-			}
-
-			public Object previous() {
-				return wrappedIterator.previous();
-			}
-
-			public void add(Object o) {
-				throw new UnsupportedOperationException();
-			}
-
-			public void set(Object o) {
-				throw new UnsupportedOperationException();
-			}
-		};
-    }
-
-
-    public List subList(final int fromIndex, final int toIndex) {
-    	getterCalled();
-    	if (fromIndex < 0 || fromIndex > toIndex || toIndex > size()) {
-			throw new IndexOutOfBoundsException();
-		}
-    	return new AbstractObservableList(getRealm()) {
-		
-			public Object getElementType() {
-				return ObservableList.this.getElementType();
-			}
-		
-			public Object get(int location) {
-				return ObservableList.this.get(fromIndex + location);
-			}
-		
-			protected int doGetSize() {
-				return toIndex - fromIndex;
-			}
-		};
-    }
-
-	protected void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-    public Object set(int index, Object element) {
-    	throw new UnsupportedOperationException();
-    }
-
-	/**
-	 * Moves the element located at <code>oldIndex</code> to
-	 * <code>newIndex</code>. This method is equivalent to calling
-	 * <code>add(newIndex, remove(oldIndex))</code>.
-	 * <p>
-	 * Subclasses should override this method to deliver list change
-	 * notification for the remove and add operations in the same
-	 * ListChangeEvent, as this allows {@link ListDiff#accept(ListDiffVisitor)}
-	 * to recognize the operation as a move.
-	 * 
-	 * @param oldIndex
-	 *            the element's position before the move. Must be within the
-	 *            range <code>0 &lt;= oldIndex &lt; size()</code>.
-	 * @param newIndex
-	 *            the element's position after the move. Must be within the
-	 *            range <code>0 &lt;= newIndex &lt; size()</code>.
-	 * @return the element that was moved.
-	 * @throws IndexOutOfBoundsException
-	 *             if either argument is out of range (<code>0 &lt;= index &lt; size()</code>).
-	 * @see ListDiffVisitor#handleMove(int, int, Object)
-	 * @see ListDiff#accept(ListDiffVisitor)
-	 * @since 1.1
-	 */
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		int size = wrappedList.size();
-		if (oldIndex < 0 || oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex < 0 || newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		Object element = remove(oldIndex);
-		add(newIndex, element);
-		return element;
-	}
-
-    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();
-	}
-
-	/**
-	 * Returns the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @return stale state
-	 */
-	public boolean isStale() {
-		getterCalled();
-		return stale;
-	}
-
-	/**
-	 * Sets the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @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) {
-		checkRealm();
-
-		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 synchronized void dispose() {
-		super.dispose();
-	}
-	
-	public Object getElementType() {
-		return elementType;
-	}
-
-	protected void updateWrappedList(List newList) {
-		List oldList = wrappedList;
-		ListDiff listDiff = Diffs.computeListDiff(oldList, newList);
-		wrappedList = newList;
-		fireListChange(listDiff);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/WritableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/WritableList.java
deleted file mode 100644
index ca0c750..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/WritableList.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 167204
- *     Gautam Saggar - bug 169529
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 208858, 213145
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Mutable observable list backed by an ArrayList.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- */
-public class WritableList extends ObservableList {
-
-	/**
-	 * Creates an empty writable list in the default realm with a
-	 * <code>null</code> element type.
-	 * 
-	 */
-	public WritableList() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * Creates an empty writable list with a <code>null</code> element type.
-	 * 
-	 * @param realm
-	 */
-	public WritableList(Realm realm) {
-		this(realm, new ArrayList(), null);
-	}
-
-	/**
-	 * Constructs a new instance with the default realm.
-	 * 
-	 * @param toWrap
-	 * @param elementType
-	 *            can be <code>null</code>
-	 */
-	public WritableList(List toWrap, Object elementType) {
-		this(Realm.getDefault(), toWrap, elementType);
-	}
-
-	/**
-	 * Creates a writable list containing elements of the given type, wrapping
-	 * an existing client-supplied list.
-	 * 
-	 * @param realm
-	 * @param toWrap
-	 *            The java.utilList to wrap
-	 * @param elementType
-	 *            can be <code>null</code>
-	 */
-	public WritableList(Realm realm, List toWrap, Object elementType) {
-		super(realm, toWrap, elementType);
-	}
-
-	public Object set(int index, Object element) {
-		checkRealm();
-		Object oldElement = wrappedList.set(index, element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement), Diffs.createListDiffEntry(index, true,
-				element)));
-		return oldElement;
-	}
-
-	/**
-	 * @since 1.1
-	 */
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		int size = wrappedList.size();
-		if (oldIndex < 0 || oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex < 0 || newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (oldIndex == newIndex)
-			return wrappedList.get(oldIndex);
-		Object element = wrappedList.remove(oldIndex);
-		wrappedList.add(newIndex, element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(oldIndex,
-				false, element), Diffs.createListDiffEntry(newIndex, true,
-				element)));
-		return element;
-	}
-
-	public Object remove(int index) {
-		checkRealm();
-		Object oldElement = wrappedList.remove(index);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement)));
-		return oldElement;
-	}
-
-	public boolean add(Object element) {
-		checkRealm();
-		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) {
-		checkRealm();
-		wrappedList.add(index, element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				true, element)));
-	}
-
-	public boolean addAll(Collection c) {
-		checkRealm();
-		ListDiffEntry[] entries = new ListDiffEntry[c.size()];
-		int i = 0;
-		int addIndex = wrappedList.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) {
-		checkRealm();
-		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) {
-		checkRealm();
-		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) {
-		checkRealm();
-		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, false,
-						element));
-			}
-		}
-		if (entries.size() > 0)
-			fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-					.toArray(new ListDiffEntry[entries.size()])));
-		return entries.size() > 0;
-	}
-
-	public boolean retainAll(Collection c) {
-		checkRealm();
-		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++;
-			}
-		}
-		if (entries.size() > 0)
-			fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-					.toArray(new ListDiffEntry[entries.size()])));
-		return entries.size() > 0;
-	}
-
-	public void clear() {
-		checkRealm();
-		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));
-			it.remove();
-		}
-		fireListChange(Diffs.createListDiff((ListDiffEntry[]) entries
-				.toArray(new ListDiffEntry[entries.size()])));
-	}
-
-	/**
-	 * @param elementType
-	 *            can be <code>null</code>
-	 * @return new list with the default realm.
-	 */
-	public static WritableList withElementType(Object elementType) {
-		return new WritableList(Realm.getDefault(), new ArrayList(),
-				elementType);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/package.html
deleted file mode 100644
index 2c2f1db..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes for observing changes in lists.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes for observing changes in lists.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/AbstractObservableMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/AbstractObservableMap.java
deleted file mode 100644
index b82d105..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/AbstractObservableMap.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.AbstractMap;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.ChangeSupport;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.AssertionFailedException;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- */
-public abstract class AbstractObservableMap extends AbstractMap implements
-		IObservableMap {
-
-	private ChangeSupport changeSupport;
-
-	private boolean stale;
-
-	/**
-	 */
-	public AbstractObservableMap() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * 
-	 */
-	protected void lastListenerRemoved() {
-	}
-
-	/**
-	 * 
-	 */
-	protected void firstListenerAdded() {
-	}
-
-	/**
-	 * @param realm
-	 */
-	public AbstractObservableMap(Realm realm) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		changeSupport = new ChangeSupport(realm){
-			protected void firstListenerAdded() {
-				AbstractObservableMap.this.firstListenerAdded();
-			}
-			protected void lastListenerRemoved() {
-				AbstractObservableMap.this.lastListenerRemoved();
-			}
-		};
-	}
-
-	public synchronized void addMapChangeListener(IMapChangeListener listener) {
-		changeSupport.addListener(MapChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeMapChangeListener(IMapChangeListener listener) {
-		changeSupport.removeListener(MapChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		changeSupport.addChangeListener(listener);
-	}
-
-	public synchronized void addStaleListener(IStaleListener listener) {
-		changeSupport.addStaleListener(listener);
-	}
-
-	public synchronized void dispose() {
-		changeSupport.dispose();
-		changeSupport = null;
-	}
-
-	public Realm getRealm() {
-		return changeSupport.getRealm();
-	}
-
-	public boolean isStale() {
-		checkRealm();
-		return stale;
-	}
-
-	public synchronized void removeChangeListener(IChangeListener listener) {
-		changeSupport.removeChangeListener(listener);
-	}
-
-	public synchronized void removeStaleListener(IStaleListener listener) {
-		changeSupport.removeStaleListener(listener);
-	}
-
-	/**
-	 * Sets the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @param stale
-	 */
-	public void setStale(boolean stale) {
-		checkRealm();
-		this.stale = stale;
-		if (stale) {
-			fireStale();
-		}
-	}
-
-	/**
-	 * Fires stale events.  Must be invoked from current realm.
-	 */
-	protected void fireStale() {
-		checkRealm();
-		changeSupport.fireEvent(new StaleEvent(this));
-	}
-
-	/**
-	 * Fires change events.  Must be invoked from current realm.
-	 */
-	protected void fireChange() {
-		checkRealm();
-		changeSupport.fireEvent(new ChangeEvent(this));
-	}
-
-	/**
-	 * Fires map change events.  Must be invoked from current realm.
-	 * 
-	 * @param diff
-	 */
-	protected void fireMapChange(MapDiff diff) {
-		checkRealm();
-		changeSupport.fireEvent(new MapChangeEvent(this, diff));
-	}
-
-	/**
-	 * Asserts that the realm is the current realm.
-	 * 
-	 * @see Realm#isCurrent()
-	 * @throws AssertionFailedException
-	 *             if the realm is not the current realm
-	 */
-	protected void checkRealm() {
-		Assert.isTrue(getRealm().isCurrent(),
-				"This operation must be run within the observable's realm"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/BidirectionalMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/BidirectionalMap.java
deleted file mode 100644
index c83f6ee..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/BidirectionalMap.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.map;
-
-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.core.databinding.observable.Realm;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- * 
- */
-public class BidirectionalMap extends ObservableMap {
-
-	private Map valueToElements = new HashMap();
-
-	private IMapChangeListener mapListener = new IMapChangeListener() {
-
-		public void handleMapChange(MapChangeEvent event) {
-			MapDiff diff = event.diff;
-			for (Iterator it = diff.getAddedKeys().iterator(); it.hasNext();) {
-				Object addedKey = it.next();
-				addMapping(addedKey, diff.getNewValue(addedKey));
-			}
-			for (Iterator it = diff.getChangedKeys().iterator(); it.hasNext();) {
-				Object changedKey = it.next();
-				removeMapping(changedKey, diff.getOldValue(changedKey));
-				addMapping(changedKey, diff.getNewValue(changedKey));
-			}
-			for (Iterator it = diff.getRemovedKeys().iterator(); it.hasNext();) {
-				Object removedKey = it.next();
-				removeMapping(removedKey, diff.getOldValue(removedKey));
-			}
-			fireMapChange(diff);
-		}
-	};
-
-	/**
-	 * @param wrappedMap
-	 */
-	public BidirectionalMap(IObservableMap wrappedMap) {
-		super(wrappedMap.getRealm(), wrappedMap);
-		wrappedMap.addMapChangeListener(mapListener);
-		for (Iterator it = wrappedMap.entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Entry) it.next();
-			addMapping(entry.getKey(), entry.getValue());
-		}
-	}
-
-	/**
-	 * @param key
-	 * @param value
-	 */
-	private void addMapping(Object key, Object value) {
-		Object elementOrSet = valueToElements.get(value);
-		if (elementOrSet == null) {
-			valueToElements.put(value, key);
-			return;
-		}
-		if (!(elementOrSet instanceof Set)) {
-			elementOrSet = new HashSet(Collections.singleton(elementOrSet));
-			valueToElements.put(value, elementOrSet);
-		}
-		Set set = (Set) elementOrSet;
-		set.add(key);
-	}
-
-	/**
-	 * @param functionValue
-	 * @param element
-	 */
-	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);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/CompositeMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/CompositeMap.java
deleted file mode 100644
index 8f3bbb6..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/CompositeMap.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.map;
-
-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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A read-only observable map formed by the composition of two observable maps.
- * If map1 maps keys a:A to values b1:B, and map2 maps keys b2:B to values c:C,
- * the composite map maps keys a:A to values c:C. For example, map1 could map
- * Order objects to their corresponding Customer objects, and map2 could map
- * Customer objects to their "last name" property of type String. The composite
- * map of map1 and map2 would then map Order objects to their customers' last
- * names.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.1
- * 
- */
-public class CompositeMap extends ObservableMap {
-
-	private Map valueToElements = new HashMap();
-
-	// adds that need to go through the second map and thus will be picked up by
-	// secondMapListener.
-	private Set pendingAdds = new HashSet();
-
-	// Removes that need to go through the second map and thus will be picked up
-	// by
-	// secondMapListener. Maps from value being removed to key being removed.
-	private Map pendingRemoves = new HashMap();
-
-	// Changes that need to go through the second map and thus will be picked up
-	// by
-	// secondMapListener. Maps from old value to new value and new value to old
-	// value.
-	private Map pendingChanges = new HashMap();
-
-	private IMapChangeListener firstMapListener = new IMapChangeListener() {
-
-		public void handleMapChange(MapChangeEvent event) {
-			MapDiff diff = event.diff;
-			Set rangeSetAdditions = new HashSet();
-			Set rangeSetRemovals = new HashSet();
-			final Set adds = new HashSet();
-			final Set changes = new HashSet();
-			final Set removes = new HashSet();
-			final Map oldValues = new HashMap();
-
-			for (Iterator it = diff.getAddedKeys().iterator(); it.hasNext();) {
-				Object addedKey = it.next();
-				Object newValue = diff.getNewValue(addedKey);
-				addMapping(addedKey, newValue);
-				if (!rangeSet.contains(newValue)) {
-					pendingAdds.add(newValue);
-					rangeSetAdditions.add(newValue);
-				} else {
-					adds.add(addedKey);
-					wrappedMap.put(addedKey, secondMap.get(newValue));
-				}
-			}
-			for (Iterator it = diff.getChangedKeys().iterator(); it.hasNext();) {
-				Object changedKey = it.next();
-				Object oldValue = diff.getOldValue(changedKey);
-				Object newValue = diff.getNewValue(changedKey);
-				boolean removed = removeMapping(changedKey, oldValue);
-				addMapping(changedKey, newValue);
-				boolean added = !rangeSet.contains(newValue);
-				if (removed) {
-					pendingRemoves.put(oldValue, changedKey);
-					rangeSetRemovals.add(oldValue);
-				}
-				if (added) {
-					pendingAdds.add(newValue);
-					rangeSetAdditions.add(newValue);
-				}
-				if (added || removed) {
-					pendingChanges.put(oldValue, newValue);
-					pendingChanges.put(newValue, oldValue);
-				} else {
-					changes.add(changedKey);
-					oldValues.put(changedKey, oldValue);
-					wrappedMap.put(changedKey, secondMap.get(newValue));
-				}
-			}
-			for (Iterator it = diff.getRemovedKeys().iterator(); it.hasNext();) {
-				Object removedKey = it.next();
-				Object oldValue = diff.getOldValue(removedKey);
-				if (removeMapping(removedKey, oldValue)) {
-					pendingRemoves.put(oldValue, removedKey);
-					rangeSetRemovals.add(oldValue);
-				} else {
-					removes.add(removedKey);
-					oldValues.put(removedKey, secondMap.get(oldValue));
-					wrappedMap.remove(removedKey);
-				}
-			}
-
-			if (adds.size() > 0 || removes.size() > 0 || changes.size() > 0) {
-				fireMapChange(new MapDiff() {
-
-					public Set getAddedKeys() {
-						return adds;
-					}
-
-					public Set getChangedKeys() {
-						return changes;
-					}
-
-					public Object getNewValue(Object key) {
-						return wrappedMap.get(key);
-					}
-
-					public Object getOldValue(Object key) {
-						return oldValues.get(key);
-					}
-
-					public Set getRemovedKeys() {
-						return removes;
-					}
-				});
-			}
-
-			if (rangeSetAdditions.size() > 0 || rangeSetRemovals.size() > 0) {
-				rangeSet.addAndRemove(rangeSetAdditions, rangeSetRemovals);
-			}
-		}
-	};
-
-	private IMapChangeListener secondMapListener = new IMapChangeListener() {
-
-		public void handleMapChange(MapChangeEvent event) {
-			MapDiff diff = event.diff;
-			final Set adds = new HashSet();
-			final Set changes = new HashSet();
-			final Set removes = new HashSet();
-			final Map oldValues = new HashMap();
-			final Map newValues = new HashMap();
-			Set addedKeys = new HashSet(diff.getAddedKeys());
-			Set removedKeys = new HashSet(diff.getRemovedKeys());
-
-			for (Iterator it = addedKeys.iterator(); it.hasNext();) {
-				Object addedKey = it.next();
-				Set elements = getElementsForValue(addedKey);
-				Object newValue = diff.getNewValue(addedKey);
-				if (pendingChanges.containsKey(addedKey)) {
-					Object oldKey = pendingChanges.remove(addedKey);
-					Object oldValue;
-					if (removedKeys.remove(oldKey)) {
-						oldValue = diff.getOldValue(oldKey);
-					} else {
-						oldValue = secondMap.get(oldKey);
-					}
-					pendingChanges.remove(oldKey);
-					pendingAdds.remove(addedKey);
-					pendingRemoves.remove(oldKey);
-					for (Iterator it2 = elements.iterator(); it2.hasNext();) {
-						Object element = it2.next();
-						changes.add(element);
-						oldValues.put(element, oldValue);
-						newValues.put(element, newValue);
-						wrappedMap.put(element, newValue);
-					}
-				} else if (pendingAdds.remove(addedKey)) {
-					for (Iterator it2 = elements.iterator(); it2.hasNext();) {
-						Object element = it2.next();
-						adds.add(element);
-						newValues.put(element, newValue);
-						wrappedMap.put(element, newValue);
-					}
-				} else {
-					Assert.isTrue(false, "unexpected case"); //$NON-NLS-1$
-				}
-			}
-			for (Iterator it = diff.getChangedKeys().iterator(); it.hasNext();) {
-				Object changedKey = it.next();
-				Set elements = getElementsForValue(changedKey);
-				for (Iterator it2 = elements.iterator(); it2.hasNext();) {
-					Object element = it2.next();
-					changes.add(element);
-					oldValues.put(element, diff.getOldValue(changedKey));
-					Object newValue = diff.getNewValue(changedKey);
-					newValues.put(element, newValue);
-					wrappedMap.put(element, newValue);
-				}
-			}
-			for (Iterator it = removedKeys.iterator(); it.hasNext();) {
-				Object removedKey = it.next();
-				Object element = pendingRemoves.remove(removedKey);
-				if (element != null) {
-					if (pendingChanges.containsKey(removedKey)) {
-						Object newKey = pendingChanges.remove(removedKey);
-						pendingChanges.remove(newKey);
-						pendingAdds.remove(newKey);
-						pendingRemoves.remove(removedKey);
-						changes.add(element);
-						oldValues.put(element, diff.getOldValue(removedKey));
-						Object newValue = secondMap.get(newKey);
-						newValues.put(element, newValue);
-						wrappedMap.put(element, newValue);
-					} else {
-						removes.add(element);
-						Object oldValue = diff.getOldValue(removedKey);
-						oldValues.put(element, oldValue);
-						wrappedMap.remove(element);
-					}
-				} else {
-					Assert.isTrue(false, "unexpected case"); //$NON-NLS-1$
-				}
-			}
-
-			if (adds.size() > 0 || removes.size() > 0 || changes.size() > 0) {
-				fireMapChange(new MapDiff() {
-
-					public Set getAddedKeys() {
-						return adds;
-					}
-
-					public Set getChangedKeys() {
-						return changes;
-					}
-
-					public Object getNewValue(Object key) {
-						return newValues.get(key);
-					}
-
-					public Object getOldValue(Object key) {
-						return oldValues.get(key);
-					}
-
-					public Set getRemovedKeys() {
-						return removes;
-					}
-				});
-			}
-		}
-	};
-
-	private IObservableMap firstMap;
-	private IObservableMap secondMap;
-
-	private static class WritableSetPlus extends WritableSet {
-		void addAndRemove(Set additions, Set removals) {
-			wrappedSet.removeAll(removals);
-			wrappedSet.addAll(additions);
-			fireSetChange(Diffs.createSetDiff(additions, removals));
-		}
-	}
-
-	private WritableSetPlus rangeSet = new WritableSetPlus();
-
-	/**
-	 * Creates a new composite map. Because the key set of the second map is
-	 * determined by the value set of the given observable map
-	 * <code>firstMap</code>, it cannot be passed in as an argument. Instead,
-	 * the second map will be created by calling
-	 * <code>secondMapFactory.createObservable(valueSet())</code>.
-	 * 
-	 * @param firstMap
-	 *            the first map
-	 * @param secondMapFactory
-	 *            a factory that creates the second map when given an observable
-	 *            set representing the value set of <code>firstMap</code>.
-	 */
-	public CompositeMap(IObservableMap firstMap,
-			IObservableFactory secondMapFactory) {
-		super(firstMap.getRealm(), new HashMap());
-		this.firstMap = firstMap;
-		firstMap.addMapChangeListener(firstMapListener);
-		for (Iterator it = firstMap.entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Entry) it.next();
-			addMapping(entry.getKey(), entry.getValue());
-			rangeSet.add(entry.getValue());
-		}
-		this.secondMap = (IObservableMap) secondMapFactory
-				.createObservable(rangeSet);
-		secondMap.addMapChangeListener(secondMapListener);
-		for (Iterator it = firstMap.entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Entry) it.next();
-			wrappedMap.put(entry.getKey(), secondMap.get(entry.getValue()));
-		}
-	}
-
-	/**
-	 * @param key
-	 * @param value
-	 */
-	private void addMapping(Object key, Object value) {
-		Object elementOrSet = valueToElements.get(value);
-		if (elementOrSet == null) {
-			valueToElements.put(value, key);
-			return;
-		}
-		if (!(elementOrSet instanceof Set)) {
-			elementOrSet = new HashSet(Collections.singleton(elementOrSet));
-			valueToElements.put(value, elementOrSet);
-		}
-		Set set = (Set) elementOrSet;
-		set.add(key);
-	}
-
-	/**
-	 * @param key
-	 * @param value
-	 */
-	private boolean removeMapping(Object key, Object value) {
-		Object elementOrSet = valueToElements.get(value);
-		if (elementOrSet instanceof Set) {
-			Set set = (Set) elementOrSet;
-			set.remove(key);
-			if (set.size() == 0) {
-				valueToElements.remove(value);
-				return true;
-			}
-			return false;
-		}
-		valueToElements.remove(value);
-		return true;
-	}
-
-	private Set getElementsForValue(Object value) {
-		Object elementOrSet = valueToElements.get(value);
-		if (elementOrSet instanceof Set) {
-			return (Set) elementOrSet;
-		}
-		return elementOrSet == null ? Collections.EMPTY_SET : Collections
-				.singleton(elementOrSet);
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-		firstMap.removeMapChangeListener(firstMapListener);
-		firstMap = null;
-		secondMap = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/ComputedObservableMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/ComputedObservableMap.java
deleted file mode 100644
index f743892..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/ComputedObservableMap.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.AbstractSet;
-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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-
-/**
- * Maps objects to one of their attributes. Tracks changes to the underlying
- * observable set of objects (keys), as well as changes to attribute values.
- */
-public abstract class ComputedObservableMap extends AbstractObservableMap {
-
-	private final IObservableSet keySet;
-
-	private ISetChangeListener setChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			Set addedKeys = new HashSet(event.diff.getAdditions());
-			Set removedKeys = new HashSet(event.diff.getRemovals());
-			Map oldValues = new HashMap();
-			Map newValues = new HashMap();
-			for (Iterator it = removedKeys.iterator(); it.hasNext();) {
-				Object removedKey = it.next();
-				Object oldValue = doGet(removedKey);
-				unhookListener(removedKey);
-				if (oldValue != null) {
-					oldValues.put(removedKey, oldValue);
-				}
-			}
-			for (Iterator it = addedKeys.iterator(); it.hasNext();) {
-				Object addedKey = it.next();
-				hookListener(addedKey);
-				Object newValue = doGet(addedKey);
-				newValues.put(addedKey, newValue);
-			}
-			fireMapChange(Diffs.createMapDiff(addedKeys, removedKeys,
-					Collections.EMPTY_SET, oldValues, newValues));
-		}
-	};
-
-	private Set entrySet = new EntrySet();
-
-	private class EntrySet extends AbstractSet {
-
-		public Iterator iterator() {
-			final Iterator keyIterator = keySet.iterator();
-			return new Iterator() {
-
-				public boolean hasNext() {
-					return keyIterator.hasNext();
-				}
-
-				public Object next() {
-					final Object key = keyIterator.next();
-					return new Map.Entry() {
-
-						public Object getKey() {
-							return key;
-						}
-
-						public Object getValue() {
-							return get(getKey());
-						}
-
-						public Object setValue(Object value) {
-							return put(getKey(), value);
-						}
-					};
-				}
-
-				public void remove() {
-					keyIterator.remove();
-				}
-			};
-		}
-
-		public int size() {
-			return keySet.size();
-		}
-
-	}
-
-	/**
-	 * @param keySet
-	 */
-	public ComputedObservableMap(IObservableSet keySet) {
-		super(keySet.getRealm());
-		this.keySet = keySet;
-		this.keySet.addSetChangeListener(setChangeListener);
-	}
-
-	protected void init() {
-		for (Iterator it = this.keySet.iterator(); it.hasNext();) {
-			Object key = it.next();
-			hookListener(key);
-		}
-	}
-
-	protected final void fireSingleChange(Object key, Object oldValue,
-			Object newValue) {
-		fireMapChange(Diffs.createMapDiffSingleChange(key, oldValue, newValue));
-	}
-
-	public Set entrySet() {
-		return entrySet;
-	}
-	
-	public Set keySet() {
-		return keySet;
-	}
-
-	final public Object get(Object key) {
-		return doGet(key);
-	}
-
-	final public Object put(Object key, Object value) {
-		return doPut(key, value);
-	}
-
-	/**
-	 * @param removedKey
-	 */
-	protected abstract void unhookListener(Object removedKey);
-
-	/**
-	 * @param addedKey
-	 */
-	protected abstract void hookListener(Object addedKey);
-
-	/**
-	 * @param key
-	 * @return the value for the given key
-	 */
-	protected abstract Object doGet(Object key);
-
-	/**
-	 * @param key
-	 * @param value
-	 * @return the old value for the given key
-	 */
-	protected abstract Object doPut(Object key, Object value);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/IMapChangeListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/IMapChangeListener.java
deleted file mode 100644
index 3bc829e..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/IMapChangeListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for changes to observable maps.
- * 
- * @since 1.0
- * 
- */
-public interface IMapChangeListener extends IObservablesListener {
-
-	/**
-	 * Handle a change an observable map. The given event object must only be
-	 * used locally in this method because it may be reused for other change
-	 * notifications. The diff object referenced by the event is immutable and
-	 * may be used non-locally.
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	void handleMapChange(MapChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/IObservableMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/IObservableMap.java
deleted file mode 100644
index 78a0db0..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/IObservableMap.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Observable Map.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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.
- *              
- * @see AbstractObservableMap
- * @see ObservableMap
- * 
- * @since 1.1
- */
-public interface IObservableMap extends Map, IObservable {
-	
-	/**
-	 * @param listener
-	 */
-	public void addMapChangeListener(IMapChangeListener listener);
-
-	/**
-	 * @param listener
-	 */
-	public void removeMapChangeListener(IMapChangeListener listener);
-	
-	/**
-	 * @TrackedGetter
-	 */
-	public int size();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public boolean isEmpty();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public boolean containsKey(Object key);
-
-	/**
-	 * @TrackedGetter
-	 */
-	public boolean containsValue(Object value);
-
-	/**
-	 * @TrackedGetter
-	 */
-	public Object get(Object key);
-
-	/**
-	 * 
-	 */
-	public Object put(Object key, Object value);
-
-	/**
-	 * 
-	 */
-	public Object remove(Object key);
-
-	/**
-	 * @TrackedGetter
-	 */
-	public Set keySet();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public Collection values();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public Set entrySet();
-
-	/**
-	 * @TrackedGetter
-	 */
-	public boolean equals(Object o);
-
-	/**
-	 * @TrackedGetter
-	 */
-	public int hashCode();
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
deleted file mode 100644
index 90bfef9..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * Map change event describing an incremental change of an
- * {@link IObservableMap} object.
- * 
- * @since 1.0
- * 
- */
-public class MapChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -8092347212410548463L;
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable map. Listeners must
-	 * not change this field.
-	 */
-	public MapDiff diff;
-
-	/**
-	 * Creates a new map change event
-	 * 
-	 * @param source
-	 *            the source observable map
-	 * @param diff
-	 *            the map change
-	 */
-	public MapChangeEvent(IObservableMap source, MapDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * Returns the observable map from which this event originated.
-	 * 
-	 * @return the observable map from which this event originated
-	 */
-	public IObservableMap getObservableMap() {
-		return (IObservableMap) getSource();
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IMapChangeListener) listener).handleMapChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapDiff.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapDiff.java
deleted file mode 100644
index f54c37c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/MapDiff.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.Set;
-
-/**
- * @since 1.1
- * 
- */
-public abstract class MapDiff {
-
-	/**
-	 * @return the set of keys which were added
-	 */
-	public abstract Set getAddedKeys();
-
-	/**
-	 * @return the set of keys which were removed
-	 */
-	public abstract Set getRemovedKeys();
-
-	/**
-	 * @return the set of keys for which the value has changed
-	 */
-	public abstract Set getChangedKeys();
-
-	/**
-	 * Returns the old value for the given key, which must be an element of
-	 * {@link #getRemovedKeys()} or {@link #getChangedKeys()}.
-	 * 
-	 * @param key
-	 * @return the old value for the given key.
-	 */
-	public abstract Object getOldValue(Object key);
-
-	/**
-	 * Returns the new value for the given key, which must be an element of
-	 * {@link #getChangedKeys()} or {@link #getAddedKeys()}.
-	 * 
-	 * @param key
-	 * @return the new value for the given key.
-	 */
-	public abstract Object getNewValue(Object key);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/ObservableMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/ObservableMap.java
deleted file mode 100644
index 59883b1..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/ObservableMap.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- */
-public class ObservableMap extends AbstractObservable implements IObservableMap {
-
-	protected Map wrappedMap;
-
-	private boolean stale = false;
-	
-	/**
-	 * @param wrappedMap
-	 */
-	public ObservableMap(Map wrappedMap) {
-		this(Realm.getDefault(), wrappedMap);
-	}
-
-	/**
-	 * @param realm 
-	 * @param wrappedMap
-	 */
-	public ObservableMap(Realm realm, Map wrappedMap) {
-		super(realm);
-		this.wrappedMap = wrappedMap;
-	}
-	
-	public synchronized void addMapChangeListener(IMapChangeListener listener) {
-		addListener(MapChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeMapChangeListener(IMapChangeListener listener) {
-		removeListener(MapChangeEvent.TYPE, listener);
-	}
-
-	protected void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	protected void fireMapChange(MapDiff diff) {
-		checkRealm();
-		
-		// fire general change event first
-		super.fireChange();
-
-		fireEvent(new MapChangeEvent(this, diff));
-	}
-
-	public boolean containsKey(Object key) {
-		getterCalled();
-		return wrappedMap.containsKey(key);
-	}
-
-	public boolean containsValue(Object value) {
-		getterCalled();
-		return wrappedMap.containsValue(value);
-	}
-
-	public Set entrySet() {
-		getterCalled();
-		return wrappedMap.entrySet();
-	}
-
-	public Object get(Object key) {
-		getterCalled();
-		return wrappedMap.get(key);
-	}
-
-	public boolean isEmpty() {
-		getterCalled();
-		return wrappedMap.isEmpty();
-	}
-
-	public Set keySet() {
-		getterCalled();
-		return wrappedMap.keySet();
-	}
-
-	public int size() {
-		getterCalled();
-		return wrappedMap.size();
-	}
-
-	public Collection values() {
-		getterCalled();
-		return wrappedMap.values();
-	}
-
-	/**
-	 * Returns the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @return stale state
-	 */
-	public boolean isStale() {
-		checkRealm();
-		return stale;
-	}
-
-	/**
-	 * Sets the stale state.  Must be invoked from the current realm.
-	 * 
-	 * @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) {
-		checkRealm();
-		boolean wasStale = this.stale;
-		this.stale = stale;
-		if (!wasStale && stale) {
-			fireStale();
-		}
-	}
-
-	public Object put(Object key, Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Object remove(Object key) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void putAll(Map arg0) {
-		throw new UnsupportedOperationException();
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/WritableMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/WritableMap.java
deleted file mode 100644
index 4e53422..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/WritableMap.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 184830
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.map;
-
-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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- */
-public class WritableMap extends ObservableMap {
-
-	/**
-	 * Constructs a new WritableMap on the default realm.
-	 */
-	public WritableMap() {
-		this(Realm.getDefault());
-	}
-	
-	/**
-	 * Constructs a new WritableMap on the given realm.
-	 * 
-	 * @param realm
-	 *            the realm
-	 */
-	public WritableMap(Realm realm) {
-		super(realm, new HashMap());
-	}
-
-	/**
-	 * Associates the provided <code>value</code> with the <code>key</code>.  Must be invoked from the current realm.
-	 */
-	public Object put(Object key, Object value) {
-		checkRealm();
-		Object result = wrappedMap.put(key, value);
-		if (!Util.equals(result, value)) {
-			if (result==null) {
-				fireMapChange(Diffs.createMapDiffSingleAdd(key, value));
-			} else {
-				fireMapChange(Diffs.createMapDiffSingleChange(key, result,
-						value));
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Removes the value with the provide <code>key</code>.  Must be invoked from the current realm.
-	 */
-	public Object remove(Object key) {
-		checkRealm();
-		Object result = wrappedMap.remove(key);
-		if (result!=null) {
-			fireMapChange(Diffs.createMapDiffSingleRemove(key, result));
-		}
-		return result;
-	}
-
-	/**
-	 * Clears the map.  Must be invoked from the current realm.
-	 */
-	public void clear() {
-		checkRealm();
-		if (!isEmpty()) {
-			Map copy = new HashMap(wrappedMap);
-			wrappedMap.clear();
-			fireMapChange(Diffs.createMapDiffRemoveAll(copy));
-		}
-	}
-
-	/**
-	 * Adds the provided <code>map</code>'s contents to this map.  Must be invoked from the current realm.
-	 */
-	public void putAll(Map map) {
-		checkRealm();
-		Set addedKeys = new HashSet(map.size());
-		Map changes = new HashMap(map.size());
-		for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
-			Map.Entry entry = (Entry) it.next();
-			Object previousValue = wrappedMap.put(entry.getKey(), entry.getValue());
-			if (previousValue==null) {
-				addedKeys.add(entry.getKey());
-			} else {
-				changes.put(entry.getKey(), previousValue);
-			}
-		}
-		if (!addedKeys.isEmpty() || !changes.isEmpty()) {
-			fireMapChange(Diffs.createMapDiff(addedKeys, Collections.EMPTY_SET, changes.keySet(), changes, wrappedMap));
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/package.html
deleted file mode 100644
index 22107ea..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that can be used to observe changes in maps.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe changes in maps.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/IObservableFactory.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/IObservableFactory.java
deleted file mode 100644
index e113f14..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/IObservableFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.masterdetail;
-
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Generates an {@link IObservable} when passed a target instance.
- * 
- * @since 1.0
- */
-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.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/MasterDetailObservables.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/MasterDetailObservables.java
deleted file mode 100644
index 77832e3..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/MasterDetailObservables.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 221704
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.masterdetail;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableList;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableMap;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableValue;
-
-/**
- * Allows for the observation of an attribute, the detail, of an observable
- * representing selection or another transient instance, the master.
- * 
- * @since 1.0
- */
-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 and can be <code>null</code>
-	 * @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 detailValue(IObservableValue master,
-			IObservableFactory detailFactory, Object detailType) {
-		return new DetailObservableValue(master, detailFactory, 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 and can be <code>null</code>
-	 * @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 detailList(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 and can be <code>null</code>
-	 * @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 detailSet(IObservableValue master,
-			IObservableFactory detailFactory, Object detailElementType) {
-		return new DetailObservableSet(detailFactory, master, detailElementType);
-	}
-
-	/**
-	 * Creates a detail observable map from a master observable value and a
-	 * factory. This can be used to create observable maps that represent a map
-	 * property of a selected object in a table.
-	 * 
-	 * @param master
-	 *            the observable value to track
-	 * @param detailFactory
-	 *            a factory for createing {@link IObservableMap} instances given
-	 *            a current value of the master
-	 * @return an observable map that, for any current value of the given master
-	 *         value, behaves like the observable map created by the factory for
-	 *         that current value.
-	 * @since 1.1
-	 */
-	public static IObservableMap detailMap(IObservableValue master,
-			IObservableFactory detailFactory) {
-		return new DetailObservableMap(detailFactory, master);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/package.html
deleted file mode 100644
index 07b72e5..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/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 classes that can be used to observe a detail of a master object.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe a detail of a master object.  
-A common use case for master detail is observing the detail (e.g. name) of a master (e.g. selected Person) of a list of elements.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/package.html
deleted file mode 100644
index 0739c1c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the core APIs for observing changes in objects.
-<h2>
-Package Specification</h2>
-<p>
-This package provides the core APIs for observing changes in objects.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/AbstractObservableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/AbstractObservableSet.java
deleted file mode 100644
index 5c9d0b7..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/AbstractObservableSet.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.ChangeSupport;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * Abstract implementation of {@link IObservableSet}.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- */
-public abstract class AbstractObservableSet extends AbstractObservable implements
-		IObservableSet {
-
-	private ChangeSupport changeSupport;
-
-	private boolean stale = false;
-
-	protected AbstractObservableSet() {
-		this(Realm.getDefault());
-	}
-	
-	protected void firstListenerAdded() {
-		super.firstListenerAdded();
-	}
-
-	protected void lastListenerRemoved() {
-		super.lastListenerRemoved();
-	}
-	
-	protected AbstractObservableSet(Realm realm) {
-		super(realm);
-		changeSupport = new ChangeSupport(realm){
-			protected void firstListenerAdded() {
-				AbstractObservableSet.this.firstListenerAdded();
-			}
-			protected void lastListenerRemoved() {
-				AbstractObservableSet.this.lastListenerRemoved();
-			}
-		};
-	}
-	
-	public synchronized void addSetChangeListener(ISetChangeListener listener) {
-		changeSupport.addListener(SetChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeSetChangeListener(ISetChangeListener listener) {
-		changeSupport.removeListener(SetChangeEvent.TYPE, listener);
-	}
-
-	protected abstract Set getWrappedSet();
-	
-	protected void fireSetChange(SetDiff diff) {
-		// fire general change event first
-		super.fireChange();
-
-		changeSupport.fireEvent(new SetChangeEvent(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() {
-		getterCalled();
-		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() {
-		getterCalled();
-		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) {
-		checkRealm();
-		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 synchronized void dispose() {
-		super.dispose();
-		
-		if (changeSupport != null) {
-			changeSupport.dispose();
-			changeSupport = null;
-		}
-	}
-	
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/IObservableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/IObservableSet.java
deleted file mode 100644
index 0efecf6..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/IObservableSet.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-
-/**
- * A set whose changes can be tracked by set change listeners.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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.
- * 
- * @see AbstractObservableSet
- * @see ObservableSet
- * 
- * @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 or <code>null</code> if untyped
-	 */
-	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.core.databinding/src/org/eclipse/core/databinding/observable/set/ISetChangeListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ISetChangeListener.java
deleted file mode 100644
index 51c429a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ISetChangeListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for changes to observable sets.
- * 
- * @since 1.0
- * 
- */
-public interface ISetChangeListener extends IObservablesListener {
-
-	/**
-	 * Handle a change to an observable set. The given event object must only be
-	 * used locally in this method because it may be reused for other change
-	 * notifications. The diff object referenced by the event is immutable and
-	 * may be used non-locally.
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	void handleSetChange(SetChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ListToSetAdapter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ListToSetAdapter.java
deleted file mode 100644
index e145fb3..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ListToSetAdapter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-
-/**
- * Observable set backed by an observable list. The wrapped list must not
- * contain duplicate elements.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public class ListToSetAdapter extends ObservableSet {
-
-	private final IObservableList list;
-
-	private IListChangeListener listener = new IListChangeListener() {
-
-		public void handleListChange(ListChangeEvent event) {
-			Set added = new HashSet();
-			Set removed = new HashSet();
-			ListDiffEntry[] differences = event.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(list.getRealm(), new HashSet(), list.getElementType());
-		this.list = list;
-		wrappedSet.addAll(list);
-		this.list.addListChangeListener(listener);
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-		if (list != null && listener != null) {
-			list.removeListChangeListener(listener);
-			listener = null;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/MappedSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/MappedSet.java
deleted file mode 100644
index c51c0c5..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/MappedSet.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public class MappedSet extends ObservableSet {
-
-	private final IObservableMap wrappedMap;
-
-	/*
-	 * Map from values (range elements) to Integer ref counts
-	 */
-	private Map valueCounts = new HashMap();
-
-	private ISetChangeListener domainListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			Set additions = new HashSet();
-			for (Iterator it = event.diff.getAdditions().iterator(); it.hasNext();) {
-				Object added = it.next();
-				Object mapValue = wrappedMap.get(added);
-				if (handleAddition(mapValue)) {
-					additions.add(mapValue);
-				}
-			}
-			Set removals = new HashSet();
-			for (Iterator it = event.diff.getRemovals().iterator(); it.hasNext();) {
-				Object removed = it.next();
-				Object mapValue = wrappedMap.get(removed);
-				if (handleRemoval(mapValue)) {
-					removals.add(mapValue);
-				}
-			}
-			fireSetChange(Diffs.createSetDiff(additions, removals));
-		}
-	};
-
-	private IMapChangeListener mapChangeListener = new IMapChangeListener() {
-		public void handleMapChange(MapChangeEvent event) {
-			MapDiff diff = event.diff;
-			Set additions = new HashSet();
-			Set removals = new HashSet();
-			for (Iterator it = diff.getRemovedKeys().iterator(); it.hasNext();) {
-				Object key = it.next();
-				Object oldValue = diff.getOldValue(key);
-				if (handleRemoval(oldValue)) {
-					removals.add(oldValue);
-				}
-			}
-			for (Iterator it = diff.getChangedKeys().iterator(); it.hasNext();) {
-				Object key = it.next();
-				Object oldValue = diff.getOldValue(key);
-				Object newValue = diff.getNewValue(key);
-				if (handleRemoval(oldValue)) {
-					removals.add(oldValue);
-				}
-				if (handleAddition(newValue)) {
-					additions.add(newValue);
-				}
-			}
-			for (Iterator it = diff.getAddedKeys().iterator(); it.hasNext();) {
-				Object key = it.next();
-				Object newValue = diff.getNewValue(key);
-				if (handleAddition(newValue)) {
-					additions.add(newValue);
-				}
-			}
-			fireSetChange(Diffs.createSetDiff(additions, removals));
-		}
-	};
-
-	private IObservableSet input;
-
-	/**
-	 * @param input
-	 * @param map
-	 */
-	public MappedSet(IObservableSet input, IObservableMap map) {
-		super(input.getRealm(), Collections.EMPTY_SET, Object.class);
-		setWrappedSet(valueCounts.keySet());
-		this.wrappedMap = map;
-		this.input = input;
-		for (Iterator it = input.iterator(); it.hasNext();) {
-			Object element = it.next();
-			Object functionValue = wrappedMap.get(element);
-			handleAddition(functionValue);
-		}
-		input.addSetChangeListener(domainListener);
-		map.addMapChangeListener(mapChangeListener);
-	}
-
-	/**
-	 * @param mapValue
-	 * @return true if the given mapValue was an addition
-	 */
-	protected boolean handleAddition(Object mapValue) {
-		Integer count = (Integer) valueCounts.get(mapValue);
-		if (count == null) {
-			valueCounts.put(mapValue, new Integer(1));
-			return true;
-		}
-		valueCounts.put(mapValue, new Integer(count.intValue() + 1));
-		return false;
-	}
-
-	/**
-	 * @param mapValue
-	 * @return true if the given mapValue has been removed
-	 */
-	protected boolean handleRemoval(Object mapValue) {
-		Integer count = (Integer) valueCounts.get(mapValue);
-		if (count.intValue() <= 1) {
-			valueCounts.remove(mapValue);
-			return true;
-		}
-		valueCounts.put(mapValue, new Integer(count.intValue() - 1));
-		return false;
-	}
-
-	public synchronized void dispose() {
-		wrappedMap.removeMapChangeListener(mapChangeListener);
-		input.removeSetChangeListener(domainListener);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ObservableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ObservableSet.java
deleted file mode 100644
index 721df8c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/ObservableSet.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * Abstract implementation of {@link IObservableSet}. 
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- * 
- */
-public abstract class ObservableSet extends AbstractObservable implements
-		IObservableSet {
-
-	protected Set wrappedSet;
-
-	private boolean stale = false;
-
-	protected Object elementType;
-
-	protected ObservableSet(Set wrappedSet, Object elementType) {
-		this(Realm.getDefault(), wrappedSet, elementType);
-	}
-
-	protected ObservableSet(Realm realm, Set wrappedSet, Object elementType) {
-		super(realm);
-		this.wrappedSet = wrappedSet;
-		this.elementType = elementType;
-	}
-	
-	public synchronized void addSetChangeListener(ISetChangeListener listener) {
-		addListener(SetChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeSetChangeListener(ISetChangeListener listener) {
-		removeListener(SetChangeEvent.TYPE, listener);
-	}
-
-	protected void fireSetChange(SetDiff diff) {
-		// fire general change event first
-		super.fireChange();
-
-		fireEvent(new SetChangeEvent(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() {
-		getterCalled();
-		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() {
-		getterCalled();
-		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) {
-		checkRealm();
-		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 synchronized void dispose() {
-		super.dispose();
-	}
-	
-	public Object getElementType() {
-		return elementType;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
deleted file mode 100644
index 4873885..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * List change event describing an incremental change of an
- * {@link IObservableSet} object.
- * 
- * @since 1.0
- * 
- */
-public class SetChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 7436547103857482256L;
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable set. Listeners must
-	 * not change this field.
-	 */
-	public SetDiff diff;
-
-	/**
-	 * Creates a new set change event.
-	 * 
-	 * @param source
-	 *            the source observable set
-	 * @param diff
-	 *            the set change
-	 */
-	public SetChangeEvent(IObservableSet source, SetDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * Returns the observable set from which this event originated.
-	 * 
-	 * @return the observable set from which this event originated
-	 */
-	public IObservableSet getObservableSet() {
-		return (IObservableSet) getSource();
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((ISetChangeListener) listener).handleSetChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetDiff.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetDiff.java
deleted file mode 100644
index d1a2f13..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/SetDiff.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.set;
-
-import java.util.Set;
-
-/**
- * @since 1.0
- *
- */
-public abstract class SetDiff {
-	
-	/**
-	 * @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.core.databinding/src/org/eclipse/core/databinding/observable/set/UnionSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/UnionSet.java
deleted file mode 100644
index 768c62d..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/UnionSet.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.internal.databinding.observable.IStalenessConsumer;
-import org.eclipse.core.internal.databinding.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.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @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(childSets[0].getRealm(), null, childSets[0].getElementType());
-		System.arraycopy(childSets, 0, this.childSets = new IObservableSet[childSets.length], 0, childSets.length);
-		this.stalenessTracker = new StalenessTracker(childSets,
-				stalenessConsumer);
-	}
-
-	private ISetChangeListener childSetChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			processAddsAndRemoves(event.diff.getAdditions(), event.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() {
-		getterCalled();
-		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.core.databinding/src/org/eclipse/core/databinding/observable/set/WritableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/WritableSet.java
deleted file mode 100644
index 52ded9d..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/WritableSet.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 221351
- *******************************************************************************/
-
-package org.eclipse.core.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.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Mutable (writable) implementation of {@link IObservableSet}.
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- */
-public class WritableSet extends ObservableSet {
-
-	/**
-	 * Constructs a new empty instance in the default realm with a
-	 * <code>null</code> element type.
-	 * 
-	 */
-	public WritableSet() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * Constructs a new instance in the default realm containing the
-	 * elements of the given collection. Changes to the given collection after
-	 * calling this method do not affect the contents of the created WritableSet.
-	 * 
-	 * @param c
-	 * @param elementType
-	 *            can be <code>null</code>
-	 */
-	public WritableSet(Collection c, Object elementType) {
-		this(Realm.getDefault(), new HashSet(c), elementType);
-	}
-
-	/**
-	 * Constructs a new empty instance in the given realm and a
-	 * <code>null</code> element type.
-	 * 
-	 * @param realm
-	 */
-	public WritableSet(Realm realm) {
-		this(realm, new HashSet(), null);
-	}
-
-	/**
-	 * Constructs a new instance in the default realm with the given element
-	 * type, containing the elements of the given collection. Changes to the
-	 * given collection after calling this method do not affect the contents of
-	 * the created WritableSet.
-	 * 
-	 * @param realm
-	 * @param c
-	 * @param elementType
-	 *            can be <code>null</code>
-	 */
-	public WritableSet(Realm realm, Collection c, Object elementType) {
-		super(realm, new HashSet(c), elementType);
-		this.elementType = elementType;
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		boolean added = wrappedSet.add(o);
-		if (added) {
-			fireSetChange(Diffs.createSetDiff(Collections.singleton(o), Collections.EMPTY_SET));
-		}
-		return added;
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		Set additions = new HashSet();
-		Iterator it = c.iterator();
-		while (it.hasNext()) {
-			Object element = it.next();
-			if (wrappedSet.add(element)) {
-				additions.add(element);
-			}
-		}
-		if (additions.size() > 0) {
-			fireSetChange(Diffs.createSetDiff(additions, Collections.EMPTY_SET));
-			return true;
-		}
-		return false;
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		boolean removed = wrappedSet.remove(o);
-		if (removed) {
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, Collections
-					.singleton(o)));
-		}
-		return removed;
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		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) {
-		getterCalled();
-		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() {
-		getterCalled();
-		Set removes = new HashSet(wrappedSet);
-		wrappedSet.clear();
-		fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removes));
-	}
-
-	/**
-	 * @param elementType can be <code>null</code>
-	 * @return new instance with the default realm
-	 */
-	public static WritableSet withElementType(Object elementType) {
-		return new WritableSet(Realm.getDefault(), new HashSet(), elementType);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/package.html
deleted file mode 100644
index 5a57448..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/set/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that can be used to observe changes in sets.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe changes in sets.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
deleted file mode 100644
index 1c61589..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- * 
- */
-abstract public class AbstractObservableValue extends AbstractObservable implements IObservableValue {
-	/**
-	 * Constructs a new instance with the default realm.
-	 */
-	public AbstractObservableValue() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * @param realm
-	 */
-	public AbstractObservableValue(Realm realm) {
-		super(realm);
-	}
-
-	public synchronized void addValueChangeListener(IValueChangeListener listener) {
-		addListener(ValueChangeEvent.TYPE, listener);
-	}
-
-	public synchronized void removeValueChangeListener(IValueChangeListener listener) {
-		removeListener(ValueChangeEvent.TYPE, listener);
-	}
-
-	final public void setValue(Object value) {
-		checkRealm();
-		doSetValue(value);
-	}
-
-	/**
-	 * Template method for setting the value of the observable. By default the
-	 * method throws an {@link UnsupportedOperationException}.
-	 * 
-	 * @param value
-	 */
-	protected void doSetValue(Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	protected void fireValueChange(ValueDiff diff) {
-		// fire general change event first
-		super.fireChange();
-		fireEvent(new ValueChangeEvent(this, diff));
-	}
-
-	public final Object getValue() {
-		getterCalled();
-		return doGetValue();
-	}
-
-	abstract protected Object doGetValue();
-
-	public boolean isStale() {
-		getterCalled();
-		return false;
-	}
-
-	private void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	protected void fireChange() {
-		throw new RuntimeException(
-				"fireChange should not be called, use fireValueChange() instead"); //$NON-NLS-1$
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractVetoableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractVetoableValue.java
deleted file mode 100644
index d3cff74..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractVetoableValue.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.internal.databinding.Util;
-
-/**
- * 
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- * 
- */
-public abstract class AbstractVetoableValue extends AbstractObservableValue
-		implements IVetoableValue {
-
-	/**
-	 * Creates a new vetoable value.
-	 */
-	public AbstractVetoableValue() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * @param realm
-	 */
-	public AbstractVetoableValue(Realm realm) {
-		super(realm);
-	}
-
-	final protected void doSetValue(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$
-		}
-		doSetApprovedValue(value);
-		
-		if (!Util.equals(diff.getOldValue(), diff.getNewValue())) {
-			fireValueChange(diff);
-		}
-	}
-
-	/**
-	 * Sets the value. Invoked after performing veto checks.  Should not fire change events.
-	 * 
-	 * @param value
-	 */
-	protected abstract void doSetApprovedValue(Object value);
-
-	public synchronized void addValueChangingListener(
-			IValueChangingListener listener) {
-		addListener(ValueChangingEvent.TYPE, listener);
-	}
-
-	public synchronized void removeValueChangingListener(
-			IValueChangingListener listener) {
-		removeListener(ValueChangingEvent.TYPE, listener);
-	}
-
-	/**
-	 * 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) {
-		checkRealm();
-
-		ValueChangingEvent event = new ValueChangingEvent(this, diff);
-		fireEvent(event);
-		return !event.veto;
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ChangeVetoException.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ChangeVetoException.java
deleted file mode 100644
index 3c9261f..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/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.core.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.core.databinding/src/org/eclipse/core/databinding/observable/value/ComputedValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ComputedValue.java
deleted file mode 100644
index 755063a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ComputedValue.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 147515
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-
-/**
- * A Lazily calculated value that automatically computes and registers listeners
- * on its dependencies as long as all of its dependencies are IObservable
- * objects
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * 
- * @since 1.0
- */
-public abstract class ComputedValue extends AbstractObservableValue {
-
-	private boolean dirty = true;
-
-	private boolean stale = false;
-
-	private Object cachedValue = null;
-
-	/**
-	 * Array of observables this computed value depends on. This field has a
-	 * value of <code>null</code> if we are not currently listening.
-	 */
-	private IObservable[] dependencies = null;
-
-	/**
-	 * 
-	 */
-	public ComputedValue() {
-		this(Realm.getDefault(), null);
-	}
-
-	/**
-	 * @param valueType
-	 *            can be <code>null</code>
-	 */
-	public ComputedValue(Object valueType) {
-		this(Realm.getDefault(), valueType);
-	}
-
-	/**
-	 * @param realm
-	 * 
-	 */
-	public ComputedValue(Realm realm) {
-		this(realm, null);
-	}
-
-	/**
-	 * @param realm
-	 * @param valueType
-	 */
-	public ComputedValue(Realm realm, Object valueType) {
-		super(realm);
-		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 IChangeListener stores each observable in the dependencies list. This
-	 * is registered as the listener when calling ObservableTracker, to detect
-	 * every observable 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(StaleEvent event) {
-			if (!dirty && !stale) {
-				stale = true;
-				fireStale();
-			}
-		}
-
-		public void handleChange(ChangeEvent event) {
-			makeDirty();
-		}
-	}
-
-	private PrivateInterface privateInterface = new PrivateInterface();
-
-	private Object valueType;
-
-	protected final Object doGetValue() {
-		if (dirty) {
-			// This line will do the following:
-			// - Run the calculate method
-			// - While doing so, add any observable 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;
-
-			stopListening();
-
-			// 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();
-				}
-			});
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void stopListening() {
-		// Stop listening for dependency changes.
-		if (dependencies != null) {
-			for (int i = 0; i < dependencies.length; i++) {
-				IObservable observable = dependencies[i];
-
-				observable.removeChangeListener(privateInterface);
-				observable.removeStaleListener(privateInterface);
-			}
-			dependencies = null;
-		}
-	}
-
-	public boolean isStale() {
-		// we need to recompute, otherwise staleness wouldn't mean anything
-		getValue();
-		return stale;
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-
-	// this method exists here so that we can call it from the runnable below.
-	/**
-	 * @since 1.1
-	 */
-	protected boolean hasListeners() {
-		return super.hasListeners();
-	}
-
-	public synchronized void addChangeListener(IChangeListener listener) {
-		super.addChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		computeValueForListeners();
-	}
-
-	/**
-	 * Some clients just add a listener and expect to get notified even if they
-	 * never called getValue(), so we have to call getValue() ourselves here to
-	 * be sure. Need to be careful about realms though, this method can be
-	 * called outside of our realm. See also bug 198211. If a client calls this
-	 * outside of our realm, they may receive change notifications before the
-	 * runnable below has been executed. It is their job to figure out what to
-	 * do with those notifications.
-	 */
-	private void computeValueForListeners() {
-		getRealm().exec(new Runnable() {
-			public void run() {
-				if (dependencies == null) {
-					// We are not currently listening.
-					if (hasListeners()) {
-						// But someone is listening for changes. Call getValue()
-						// to make sure we start listening to the observables we
-						// depend on.
-						getValue();
-					}
-				}
-			}
-		});
-	}
-
-	public synchronized void addValueChangeListener(
-			IValueChangeListener listener) {
-		super.addValueChangeListener(listener);
-		// If somebody is listening, we need to make sure we attach our own
-		// listeners
-		computeValueForListeners();
-	}
-
-	public synchronized void dispose() {
-		super.dispose();
-		stopListening();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IObservableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IObservableValue.java
deleted file mode 100644
index 630b1c4..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IObservableValue.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * A value whose changes can be tracked by value change listeners.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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.
- * 
- * @see AbstractObservableValue
- * 
- * @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();
-
-	/**
-	 * Returns the value.  Must be invoked in the {@link Realm} of the observable.
-	 * 
-	 * @return the current value
-	 * @TrackedGetter
-	 */
-	public Object getValue();
-
-	/**
-	 * Sets the value.  Must be invoked in the {@link Realm} of the observable.
-	 * 
-	 * @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.core.databinding/src/org/eclipse/core/databinding/observable/value/IValueChangeListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IValueChangeListener.java
deleted file mode 100644
index 7af5382..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IValueChangeListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for changes to observable values.
- * 
- * @since 1.0
- * 
- */
-public interface IValueChangeListener extends IObservablesListener {
-
-	/**
-	 * Handles a change to an observable value. The given event object must only
-	 * be used locally in this method because it may be reused for other change
-	 * notifications. The diff object referenced by the event is immutable and
-	 * may be used non-locally.
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	void handleValueChange(ValueChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IValueChangingListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IValueChangingListener.java
deleted file mode 100644
index ceb07b7..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IValueChangingListener.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-
-/**
- * Listener for pre-change events for observable values.
- * 
- * @since 1.0
- * 
- */
-public interface IValueChangingListener extends IObservablesListener {
-
-	/**
-	 * This method is called when the value is about to change and provides an
-	 * opportunity to veto the change. The given event object must only be used
-	 * locally in this method because it may be reused for other change
-	 * notifications. The diff object referenced by the event is immutable and
-	 * may be used non-locally.
-	 * 
-	 * @param event
-	 */
-	public void handleValueChanging(ValueChangingEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IVetoableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IVetoableValue.java
deleted file mode 100644
index 1b795ed..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/IVetoableValue.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.observable.value;
-
-/**
- * An observable value whose changes can be vetoed by listeners.
- * 
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement 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.
- * 
- * @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.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
deleted file mode 100644
index 3d4fba9..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * Value change event describing a change of an {@link IObservableValue}
- * object's current value.
- * 
- * @since 1.0
- * 
- */
-public class ValueChangeEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 2305345286999701156L;
-
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable value. Listeners must
-	 * not change this field.
-	 */
-	public ValueDiff diff;
-
-	/**
-	 * Creates a new value change event.
-	 * 
-	 * @param source
-	 *            the source observable value
-	 * @param diff
-	 *            the value change
-	 */
-	public ValueChangeEvent(IObservableValue source, ValueDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * Returns the observable value from which this event originated.
-	 * 
-	 * @return returns the observable value from which this event originated
-	 */
-	public IObservableValue getObservableValue() {
-		return (IObservableValue) source;
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IValueChangeListener) listener).handleValueChange(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
deleted file mode 100644
index f92cde7..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.ObservableEvent;
-
-/**
- * Value changing event describing a pending change of an
- * {@link IObservableValue} object's current value. Listeners can veto the
- * pending change by setting {@link #veto} to <code>true</code>.
- * 
- * @since 1.0
- * 
- */
-public class ValueChangingEvent extends ObservableEvent {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 2305345286999701156L;
-
-	static final Object TYPE = new Object();
-
-	/**
-	 * Description of the change to the source observable value. Listeners must
-	 * not change this field.
-	 */
-	public ValueDiff diff;
-
-	/**
-	 * Flag for vetoing this change. Default value is <code>false</code>, can
-	 * be set to <code>true</code> by listeners to veto this change.
-	 */
-	public boolean veto = false;
-
-	/**
-	 * Creates a new value changing event.
-	 * 
-	 * @param source
-	 *            the source observable value
-	 * @param diff
-	 *            the value change
-	 */
-	public ValueChangingEvent(IObservableValue source, ValueDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * @return the observable value from which this event originated
-	 */
-	public IObservableValue getObservableValue() {
-		return (IObservableValue) source;
-	}
-
-	protected void dispatch(IObservablesListener listener) {
-		((IValueChangingListener) listener).handleValueChanging(this);
-	}
-
-	protected Object getListenerType() {
-		return TYPE;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueDiff.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueDiff.java
deleted file mode 100644
index 62a2f86..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/ValueDiff.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.Diffs;
-
-/**
- * @since 1.0
- * 
- */
-public abstract class ValueDiff {
-	/**
-	 * 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.core.databinding/src/org/eclipse/core/databinding/observable/value/WritableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/WritableValue.java
deleted file mode 100644
index 5d794f1..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/WritableValue.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 158687
- *     Brad Reynolds - bug 164653, 147515
- *******************************************************************************/
-
-package org.eclipse.core.databinding.observable.value;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Mutable (writable) implementation of {@link IObservableValue} that will maintain a value and fire
- * change events when the value changes.
- * <p>
- * This class is thread safe. All state accessing methods must be invoked from
- * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
- * listeners may be invoked from any thread.
- * </p>
- * @since 1.0
- */
-public class WritableValue extends AbstractObservableValue {
-
-	private final Object valueType;
-
-	/**
-	 * Constructs a new instance with the default realm, a <code>null</code>
-	 * value type, and a <code>null</code> value.
-	 */
-	public WritableValue() {
-		this(null, null);
-	}
-
-	/**
-	 * Constructs a new instance with the default realm.
-	 * 
-	 * @param initialValue
-	 *            can be <code>null</code>
-	 * @param valueType
-	 *            can be <code>null</code>
-	 */
-	public WritableValue(Object initialValue, Object valueType) {
-		this(Realm.getDefault(), initialValue, valueType);
-	}
-
-	/**
-	 * Constructs a new instance with the provided <code>realm</code>, a
-	 * <code>null</code> value type, and a <code>null</code> initial value.
-	 * 
-	 * @param realm
-	 */
-	public WritableValue(Realm realm) {
-		this(realm, null, null);
-	}
-
-	/**
-	 * Constructs a new instance.
-	 * 
-	 * @param realm
-	 * @param initialValue
-	 *            can be <code>null</code>
-	 * @param valueType
-	 *            can be <code>null</code>
-	 */
-	public WritableValue(Realm realm, Object initialValue, Object valueType) {
-		super(realm);
-		this.valueType = valueType;
-		this.value = initialValue;
-	}
-
-	private Object value = null;
-
-	public Object doGetValue() {
-		return value;
-	}
-
-	/**
-	 * @param value
-	 *            The value to set.
-	 */
-	public void doSetValue(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;
-	}
-
-	/**
-	 * @param elementType can be <code>null</code>
-	 * @return new instance with the default realm and a value of <code>null</code>
-	 */
-	public static WritableValue withValueType(Object elementType) {
-		return new WritableValue(Realm.getDefault(), null, elementType);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/package.html
deleted file mode 100644
index 4ce13df..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that can be used to observe changes in discrete values.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe changes in discrete values.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/package.html
deleted file mode 100644
index 9087bbf..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/package.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes for binding observable objects, for example UI widgets and model objects.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to synchronize state between pairs of
-observable objects with optional data type conversion and validation.
-<p>
-A <tt>DataBindingContext</tt> is used to manage a list of <tt>Bindings</tt>
-with their validation results.
-</p>
-<p>
-Concrete subclasses of <tt>Binding</tt> synchronize state between two observables,
-called the target observable and the model observable.  Usually, the binding will
-first copy the current state of the model observable to the target observable and
-from then on track changes on both sides, reacting to changes on one side by
-performing the corresponding change on the other side.
-</p>
-<p>
-For each binding, two <tt>UpdateValueStrategy</tt> or <tt>UpdateListStrategy</tt> objects (one
-for each direction) is used to control how the binding should synchronize, and can be used to
-specify data type converters and validators.  
-</p>
-<p>
-<tt>AggregateValidationStatus</tt> allows clients to aggregate the current validation
-statuses of a list of bindings, typically obtained from a data binding context.  
-</p>
-<p>
-For advanced validation, conversion, or similar requirements that affect the way
-state is copied from one side to the other, subclasses of <tt>UpdateValueStrategy</tt>
-or <tt>UpdateListStrategy</tt> can be created.  
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/ILogger.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/ILogger.java
deleted file mode 100644
index 652d719..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/ILogger.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     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.core.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 Policy#getLog()
- * @see 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.core.databinding/src/org/eclipse/core/databinding/util/Policy.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/Policy.java
deleted file mode 100644
index 45467ba..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/Policy.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chris Gross (schtoo@schtoo.com) - support for ILogger added
- *       (bug 49497 [RCP] JFace dependency on org.eclipse.core.runtime enlarges standalone JFace applications)
- *     Brad Reynolds - bug 164653
- *     Tom Schindl <tom.schindl@bestsolution.at> - bug 194587
- *******************************************************************************/
-package org.eclipse.core.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.core.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.getPlugin() + " - " + status.getCode() + " - " + status.getMessage());  //$NON-NLS-1$//$NON-NLS-2$
-				if( status.getException() != null ) {
-					status.getException().printStackTrace(System.err);
-				}
-			}
-		};
-	}
-
-	/**
-	 * 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 synchronized 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 synchronized ILogger getLog() {
-		if (log == null) {
-			log = getDummyLog();
-		}
-		return log;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/package.html
deleted file mode 100644
index 0b186a7..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/util/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides general utilities for data binding.
-<h2>
-Package Specification</h2>
-<p>
-This package provides general utilities for data binding.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/IValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/IValidator.java
deleted file mode 100644
index a9c4b8b..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/IValidator.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.databinding.validation;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A validator. This validator is responsible for determining if a given value
- * is valid. Validators can be used on target or model values. For example, a
- * String2IntValidator would only accept source Strings that can successfully be
- * converted to an integer value, and a PositiveIntegerValidator would only
- * accept positive integers.
- * 
- * @since 1.0
- * 
- */
-public interface IValidator {
-
-	/**
-	 * Determines if the given value is valid.
-	 * 
-	 * @param value
-	 *            the value to validate
-	 * @return a status object indicating whether the validation succeeded
-	 *         {@link IStatus#isOK()} or not. Never null.
-	 */
-	public IStatus validate(Object value);
-	
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/MultiValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/MultiValidator.java
deleted file mode 100644
index 91e24b5..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/MultiValidator.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- *     Boris Bokowski - bug 218269
- *     Matthew Hall - bug 237884
- ******************************************************************************/
-
-package org.eclipse.core.databinding.validation;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.databinding.ValidationStatusProvider;
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffVisitor;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.observable.ValidatedObservableList;
-import org.eclipse.core.internal.databinding.observable.ValidatedObservableMap;
-import org.eclipse.core.internal.databinding.observable.ValidatedObservableSet;
-import org.eclipse.core.internal.databinding.observable.ValidatedObservableValue;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A validator for cross-constraints between observables.
- * 
- * <p>
- * Some practical examples of cross-constraints:
- * <ul>
- * <li>A start date cannot be later than an end date
- * <li>A list of percentages should add up to 100%
- * </ul>
- * <p>
- * Example: require two integer fields to contain either both even or both odd
- * numbers.
- * 
- * <pre>
- * DataBindingContext dbc = new DataBindingContext();
- * 
- * IObservableValue target0 = SWTObservables.observeText(text0, SWT.Modify);
- * IObservableValue target1 = SWTObservables.observeText(text1, SWT.Modify);
- * 
- * // Binding in two stages (from target to middle, then from middle to model)
- * // simplifies the validation logic.  Using the middle observables saves
- * // the trouble of converting the target values (Strings) to the model type
- * // (integers) manually during validation.
- * final IObservableValue middle0 = new WritableValue(null, Integer.TYPE);
- * final IObservableValue middle1 = new WritableValue(null, Integer.TYPE);
- * dbc.bind(target0, middle0, null, null);
- * dbc.bind(target1, middle1, null, null);
- * 
- * // Create the multi-validator
- * MultiValidator validator = new MultiValidator() {
- * 	protected IStatus validate() {
- * 		// Calculate the validation status
- * 		Integer value0 = (Integer) middle0.getValue();
- * 		Integer value1 = (Integer) middle1.getValue();
- * 		if (Math.abs(value0.intValue()) % 2 != Math.abs(value1.intValue()) % 2)
- * 			return ValidationStatus
- * 					.error(&quot;Values must be both even or both odd&quot;);
- * 		return ValidationStatus.ok();
- * 	}
- * };
- * dbc.addValidationStatusProvider(validator);
- * 
- * // Bind the middle observables to the model observables. 
- * IObservableValue model0 = new WritableValue(new Integer(2), Integer.TYPE);
- * IObservableValue model1 = new WritableValue(new Integer(4), Integer.TYPE);
- * dbc.bind(middle0, model0, null, null);
- * dbc.bind(middle1, model1, null, null);
- * </pre>
- * 
- * <p>
- * MultiValidator can also prevent invalid data from being copied to model. This
- * is done by wrapping each target observable in a validated observable, and
- * then binding the validated observable to the model.
- * 
- * <pre>
- * 
- * ...
- * 
- * // Validated observables do not change value until the validator passes. 
- * IObservableValue validated0 = validator.observeValidatedValue(middle0);
- * IObservableValue validated1 = validator.observeValidatedValue(middle1);
- * IObservableValue model0 = new WritableValue(new Integer(2), Integer.TYPE);
- * IObservableValue model1 = new WritableValue(new Integer(4), Integer.TYPE);
- * // Bind to the validated value, not the middle/target
- * dbc.bind(validated0, model0, null, null);
- * dbc.bind(validated1, model1, null, null);
- * </pre>
- * 
- * Note: No guarantee is made as to the order of updates when multiple validated
- * observables change value at once (i.e. multiple updates pending when the
- * status becomes valid). Therefore the model may be in an invalid state after
- * the first but before the last pending update.
- * 
- * @since 1.1
- */
-public abstract class MultiValidator extends ValidationStatusProvider {
-	private Realm realm;
-	private IObservableValue validationStatus;
-	private IObservableValue unmodifiableValidationStatus;
-	private WritableList targets;
-	private IObservableList unmodifiableTargets;
-	private IObservableList models;
-
-	IListChangeListener targetsListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			event.diff.accept(new ListDiffVisitor() {
-				public void handleAdd(int index, Object element) {
-					((IObservable) element)
-							.addChangeListener(dependencyListener);
-				}
-
-				public void handleRemove(int index, Object element) {
-					((IObservable) element)
-							.removeChangeListener(dependencyListener);
-				}
-			});
-		}
-	};
-
-	private IChangeListener dependencyListener = new IChangeListener() {
-		public void handleChange(ChangeEvent event) {
-			revalidate();
-		}
-	};
-
-	/**
-	 * Constructs a MultiValidator on the default realm.
-	 */
-	public MultiValidator() {
-		this(Realm.getDefault());
-	}
-
-	/**
-	 * Constructs a MultiValidator on the given realm.
-	 * 
-	 * @param realm
-	 *            the realm on which validation takes place.
-	 */
-	public MultiValidator(Realm realm) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		this.realm = realm;
-
-		validationStatus = new WritableValue(realm, ValidationStatus.ok(),
-				IStatus.class);
-
-		targets = new WritableList(realm, new ArrayList(), IObservable.class);
-		targets.addListChangeListener(targetsListener);
-		unmodifiableTargets = Observables.unmodifiableObservableList(targets);
-
-		models = Observables.emptyObservableList(realm);
-	}
-
-	private void checkObservable(IObservable target) {
-		Assert.isNotNull(target, "Target observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(realm.equals(target.getRealm()),
-						"Target observable must be in the same realm as MultiValidator"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns an {@link IObservableValue} whose value is always the current
-	 * validation status of this MultiValidator. The returned observable is in
-	 * the same realm as this MultiValidator.
-	 * 
-	 * @return an {@link IObservableValue} whose value is always the current
-	 *         validation status of this MultiValidator.
-	 */
-	public IObservableValue getValidationStatus() {
-		if (unmodifiableValidationStatus == null) {
-			revalidate();
-			unmodifiableValidationStatus = Observables
-					.unmodifiableObservableValue(validationStatus);
-		}
-		return unmodifiableValidationStatus;
-	}
-
-	private void revalidate() {
-		final IObservable[] dependencies = ObservableTracker.runAndMonitor(
-				new Runnable() {
-					public void run() {
-						try {
-							IStatus status = validate();
-							if (status == null)
-								status = ValidationStatus.ok();
-							validationStatus.setValue(status);
-						} catch (RuntimeException e) {
-							// Usually an NPE as dependencies are
-							// init'ed
-							validationStatus.setValue(ValidationStatus.error(e
-									.getMessage(), e));
-						}
-					}
-				}, null, null);
-		ObservableTracker.runAndIgnore(new Runnable() {
-			public void run() {
-				List newTargets = new ArrayList(Arrays.asList(dependencies));
-				targets.retainAll(newTargets);
-				newTargets.removeAll(targets);
-
-				// Prevent dependency loop
-				newTargets.remove(validationStatus);
-				newTargets.remove(unmodifiableValidationStatus);
-				newTargets.remove(targets);
-				newTargets.remove(unmodifiableTargets);
-				newTargets.remove(models);
-
-				targets.addAll(newTargets);
-			}
-		});
-	}
-
-	/**
-	 * Return the current validation status.
-	 * <p>
-	 * Note: To ensure that the validation status is kept current, all
-	 * dependencies used to calculate status should be accessed through
-	 * {@link IObservable} instances. Each dependency observable must be in the
-	 * same realm as the MultiValidator.
-	 * 
-	 * @return the current validation status.
-	 */
-	protected abstract IStatus validate();
-
-	/**
-	 * Returns a wrapper {@link IObservableValue} which stays in sync with the
-	 * given target observable only when the validation status is valid.
-	 * Statuses of {@link IStatus#OK OK}, {@link IStatus#INFO INFO} or
-	 * {@link IStatus#WARNING WARNING} severity are considered valid.
-	 * <p>
-	 * The wrapper behaves as follows with respect to the validation status:
-	 * <ul>
-	 * <li>While valid, the wrapper stays in sync with its target observable.
-	 * <li>While invalid, the wrapper's value is the target observable's last
-	 * valid value. If the target changes value, a stale event is fired
-	 * signaling that a change is pending.
-	 * <li>When status changes from invalid to valid, the wrapper takes the
-	 * value of the target observable, and synchronization resumes.
-	 * </ul>
-	 * 
-	 * @param target
-	 *            the target observable being wrapped. Must be in the same realm
-	 *            as the MultiValidator.
-	 * @return an IObservableValue which stays in sync with the given target
-	 *         observable only with the validation status is valid.
-	 */
-	public IObservableValue observeValidatedValue(IObservableValue target) {
-		checkObservable(target);
-		return new ValidatedObservableValue(target, getValidationStatus());
-	}
-
-	/**
-	 * Returns a wrapper {@link IObservableList} which stays in sync with the
-	 * given target observable only when the validation status is valid.
-	 * Statuses of {@link IStatus#OK OK}, {@link IStatus#INFO INFO} or
-	 * {@link IStatus#WARNING WARNING} severity are considered valid.
-	 * <p>
-	 * The wrapper behaves as follows with respect to the validation status:
-	 * <ul>
-	 * <li>While valid, the wrapper stays in sync with its target observable.
-	 * <li>While invalid, the wrapper's elements are the target observable's
-	 * last valid elements. If the target changes elements, a stale event is
-	 * fired signaling that a change is pending.
-	 * <li>When status changes from invalid to valid, the wrapper takes the
-	 * elements of the target observable, and synchronization resumes.
-	 * </ul>
-	 * 
-	 * @param target
-	 *            the target observable being wrapped. Must be in the same realm
-	 *            as the MultiValidator.
-	 * @return an IObservableValue which stays in sync with the given target
-	 *         observable only with the validation status is valid.
-	 */
-	public IObservableList observeValidatedList(IObservableList target) {
-		checkObservable(target);
-		return new ValidatedObservableList(target, getValidationStatus());
-	}
-
-	/**
-	 * Returns a wrapper {@link IObservableSet} which stays in sync with the
-	 * given target observable only when the validation status is valid.
-	 * Statuses of {@link IStatus#OK OK}, {@link IStatus#INFO INFO} or
-	 * {@link IStatus#WARNING WARNING} severity are considered valid.
-	 * <p>
-	 * The wrapper behaves as follows with respect to the validation status:
-	 * <ul>
-	 * <li>While valid, the wrapper stays in sync with its target observable.
-	 * <li>While invalid, the wrapper's elements are the target observable's
-	 * last valid elements. If the target changes elements, a stale event is
-	 * fired signaling that a change is pending.
-	 * <li>When status changes from invalid to valid, the wrapper takes the
-	 * elements of the target observable, and synchronization resumes.
-	 * </ul>
-	 * 
-	 * @param target
-	 *            the target observable being wrapped. Must be in the same realm
-	 *            as the MultiValidator.
-	 * @return an IObservableValue which stays in sync with the given target
-	 *         observable only with the validation status is valid.
-	 */
-	public IObservableSet observeValidatedSet(IObservableSet target) {
-		checkObservable(target);
-		return new ValidatedObservableSet(target, getValidationStatus());
-	}
-
-	/**
-	 * Returns a wrapper {@link IObservableMap} which stays in sync with the
-	 * given target observable only when the validation status is valid.
-	 * Statuses of {@link IStatus#OK OK}, {@link IStatus#INFO INFO} or
-	 * {@link IStatus#WARNING WARNING} severity are considered valid.
-	 * <p>
-	 * The wrapper behaves as follows with respect to the validation status:
-	 * <ul>
-	 * <li>While valid, the wrapper stays in sync with its target observable.
-	 * <li>While invalid, the wrapper's entries are the target observable's
-	 * last valid entries. If the target changes entries, a stale event is fired
-	 * signaling that a change is pending.
-	 * <li>When status changes from invalid to valid, the wrapper takes the
-	 * entries of the target observable, and synchronization resumes.
-	 * </ul>
-	 * 
-	 * @param target
-	 *            the target observable being wrapped. Must be in the same realm
-	 *            as the MultiValidator.
-	 * @return an IObservableValue which stays in sync with the given target
-	 *         observable only with the validation status is valid.
-	 */
-	public IObservableMap observeValidatedMap(IObservableMap target) {
-		checkObservable(target);
-		return new ValidatedObservableMap(target, getValidationStatus());
-	}
-
-	public IObservableList getTargets() {
-		return unmodifiableTargets;
-	}
-
-	public IObservableList getModels() {
-		return models;
-	}
-
-	public void dispose() {
-		if (targets != null) {
-			targets.clear(); // Remove listeners from dependencies
-		}
-
-		if (unmodifiableValidationStatus != null) {
-			unmodifiableValidationStatus.dispose();
-			unmodifiableValidationStatus = null;
-		}
-
-		if (validationStatus != null) {
-			validationStatus.dispose();
-			validationStatus = null;
-		}
-
-		if (unmodifiableTargets != null) {
-			unmodifiableTargets.dispose();
-			unmodifiableTargets = null;
-		}
-
-		if (targets != null) {
-			targets.dispose();
-			targets = null;
-		}
-
-		if (models != null) {
-			models.dispose();
-			models = null;
-		}
-
-		realm = null;
-
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/ValidationStatus.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/ValidationStatus.java
deleted file mode 100644
index d61cb19..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/ValidationStatus.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164134
- *******************************************************************************/
-package org.eclipse.core.databinding.validation;
-
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Convenience class for creating status objects.
- * 
- * @since 3.3
- * 
- */
-public class ValidationStatus extends Status {
-
-	/**
-	 * Creates a new validation status with the given severity, message, and
-	 * exception.
-	 * 
-	 * @param severity
-	 * @param message
-	 * @param exception
-	 */
-	private ValidationStatus(int severity, String message, Throwable exception) {
-		super(severity, Policy.JFACE_DATABINDING, IStatus.OK, message, exception);
-	}
-
-	/**
-	 * Creates a new validation status with the given severity and message.
-	 * 
-	 * @param severity
-	 * @param message
-	 */
-	private ValidationStatus(int severity, String message) {
-		super(severity, Policy.JFACE_DATABINDING,IStatus.OK, message, null);
-	}
-
-	/**
-	 * Creates a new validation error status with the given message.
-	 * 
-	 * @param message
-	 * @return a new error status with the given message
-	 */
-	public static IStatus error(String message) {
-		return new ValidationStatus(IStatus.ERROR, message);
-	}
-
-	/**
-	 * Creates a new validation cancel status with the given message.
-	 * 
-	 * @param message
-	 * @return a new cancel status with the given message
-	 */
-	public static IStatus cancel(String message) {
-		return new ValidationStatus(IStatus.CANCEL, message);
-	}
-	
-	/**
-	 * Creates a new validation error status with the given message and
-	 * exception.
-	 * 
-	 * @param message
-	 * @param exception
-	 * @return a new error status with the given message and exception
-	 */
-	public static IStatus error(String message, Throwable exception) {
-		return new ValidationStatus(IStatus.ERROR, message, exception);
-	}
-
-	/**
-	 * Creates a new validation warning status with the given message.
-	 * 
-	 * @param message
-	 * @return a new warning status with the given message
-	 */
-	public static IStatus warning(String message) {
-		return new ValidationStatus(IStatus.WARNING, message);
-	}
-	
-	/**
-	 * Creates a new validation info status with the given message.
-	 * 
-	 * @param message
-	 * @return a new info status with the given message
-	 */
-	public static IStatus info(String message) {
-		return new ValidationStatus(IStatus.INFO, message);
-	}
-	
-	/**
-	 * Returns an OK status.
-	 * 
-	 * @return an ok status
-	 */
-	public static IStatus ok() {
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-
-		String message = getMessage();
-		int severity = getSeverity();
-		Throwable throwable = getException();
-
-		result = prime * result + ((message == null) ? 0 : message.hashCode());
-		result = prime * result + severity;
-		result = prime * result
-				+ ((throwable == null) ? 0 : throwable.hashCode());
-		return result;
-	}
-
-	/**
-	 * Equality is based upon instance equality rather than identity.
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final ValidationStatus other = (ValidationStatus) obj;
-
-		if (getSeverity() != other.getSeverity())
-			return false;
-		if (getMessage() == null) {
-			if (other.getMessage() != null)
-				return false;
-		} else if (!getMessage().equals(other.getMessage()))
-			return false;
-		if (getException() == null) {
-			if (other.getException() != null)
-				return false;
-		} else if (!getException().equals(other.getException()))
-			return false;
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/package.html
deleted file mode 100644
index 3d98b2e..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/validation/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the core APIs for validation.
-<h2>
-Package Specification</h2>
-<p>
-This package provides the core APIs for validation.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Activator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Activator.java
deleted file mode 100644
index 29db910..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Activator.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.databinding.util.ILogger;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.framework.log.FrameworkLog;
-import org.eclipse.osgi.framework.log.FrameworkLogEntry;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * @since 3.3
- * 
- */
-public class Activator implements BundleActivator {
-	/**
-	 * The plug-in ID
-	 */
-	public static final String PLUGIN_ID = "org.eclipse.core.databinding"; //$NON-NLS-1$
-
-	private volatile static ServiceTracker _frameworkLogTracker;
-
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	public void start(BundleContext context) throws Exception {
-		_frameworkLogTracker = new ServiceTracker(context, FrameworkLog.class.getName(), null);
-		_frameworkLogTracker.open();
-
-		Policy.setLog(new ILogger() {
-
-			public void log(IStatus status) {
-				ServiceTracker frameworkLogTracker = _frameworkLogTracker;
-				FrameworkLog log = frameworkLogTracker == null ? null : (FrameworkLog) frameworkLogTracker.getService();
-				if (log != null) {
-					log.log(createLogEntry(status));
-				} else {
-					// fall back to System.err
-					System.err.println(status.getPlugin() + " - " + status.getCode() + " - " + status.getMessage());  //$NON-NLS-1$//$NON-NLS-2$
-					if( status.getException() != null ) {
-						status.getException().printStackTrace(System.err);
-					}
-				}
-			}
-
-		});
-	}
-	
-	// Code copied from PlatformLogWriter.getLog(). Why is logging an IStatus so
-	// hard?
-	FrameworkLogEntry createLogEntry(IStatus status) {
-		Throwable t = status.getException();
-		ArrayList childlist = new ArrayList();
-
-		int stackCode = t instanceof CoreException ? 1 : 0;
-		// ensure a substatus inside a CoreException is properly logged 
-		if (stackCode == 1) {
-			IStatus coreStatus = ((CoreException) t).getStatus();
-			if (coreStatus != null) {
-				childlist.add(createLogEntry(coreStatus));
-			}
-		}
-
-		if (status.isMultiStatus()) {
-			IStatus[] children = status.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				childlist.add(createLogEntry(children[i]));
-			}
-		}
-
-		FrameworkLogEntry[] children = (FrameworkLogEntry[]) (childlist.size() == 0 ? null : childlist.toArray(new FrameworkLogEntry[childlist.size()]));
-
-		return new FrameworkLogEntry(status.getPlugin(), status.getSeverity(), status.getCode(), status.getMessage(), stackCode, t, children);
-	}
-
-	
-	public void stop(BundleContext context) throws Exception {
-		if (_frameworkLogTracker != null) {
-			_frameworkLogTracker.close();
-			_frameworkLogTracker = null;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/BindingMessages.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/BindingMessages.java
deleted file mode 100644
index 3e93df2..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/BindingMessages.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- *******************************************************************************/
-package org.eclipse.core.internal.databinding;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import com.ibm.icu.text.MessageFormat;
-
-/**
- * @since 1.0
- *
- */
-public class BindingMessages {
-
-	/**
-	 * The Binding resource bundle; eagerly initialized.
-	 */
-	private static final ResourceBundle bundle = ResourceBundle
-			.getBundle("org.eclipse.core.internal.databinding.messages"); //$NON-NLS-1$
-
-	/**
-	 * Key to be used for an index out of range message.
-	 */
-	public static final String INDEX_OUT_OF_RANGE = "IndexOutOfRange"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Multiple Problems." message.
-	 */
-	public static final String MULTIPLE_PROBLEMS = "MultipleProblems"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "ValueBinding_ErrorWhileSettingValue" message
-	 */
-	public static final String VALUEBINDING_ERROR_WHILE_SETTING_VALUE = "ValueBinding_ErrorWhileSettingValue"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "DateFormat_DateTime" message
-	 */
-	public static final String DATE_FORMAT_DATE_TIME = "DateFormat_DateTime"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "DateFormat_Time" message
-	 */
-	public static final String DATEFORMAT_TIME = "DateFormat_Time"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "ValueDelimiter" message
-	 */
-	public static final String VALUE_DELIMITER = "ValueDelimiter"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "TrueStringValues" message
-	 */
-	public static final String TRUE_STRING_VALUES = "TrueStringValues"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "FalseStringValues" message
-	 */
-	public static final String FALSE_STRING_VALUES = "FalseStringValues"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Validate_NumberOutOfRangeError" message
-	 */
-	public static final String VALIDATE_NUMBER_OUT_OF_RANGE_ERROR = "Validate_NumberOutOfRangeError"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Validate_NumberParseError" message
-	 */
-	public static final String VALIDATE_NUMBER_PARSE_ERROR = "Validate_NumberParseError"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Validate_ConversionToPrimitive" message
-	 */
-	public static final String VALIDATE_CONVERSION_TO_PRIMITIVE = "Validate_ConversionToPrimitive"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Validate_ConversionFromClassToPrimitive" message
-	 */
-	public static final String VALIDATE_CONVERSION_FROM_CLASS_TO_PRIMITIVE = "Validate_ConversionFromClassToPrimitive"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Validate_NoChangeAllowedHelp" message
-	 */
-	public static final String VALIDATE_NO_CHANGE_ALLOWED_HELP = "Validate_NoChangeAllowedHelp"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Validate_CharacterHelp" message
-	 */
-	public static final String VALIDATE_CHARACTER_HELP = "Validate_CharacterHelp"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Examples" message
-	 */
-	public static final String EXAMPLES = "Examples"; //$NON-NLS-1$
-
-	/**
-	 * Key to be used for a "Validate_NumberParseErrorNoCharacter" message
-	 */
-	public static final String VALIDATE_NUMBER_PARSE_ERROR_NO_CHARACTER = "Validate_NumberParseErrorNoCharacter"; //$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;
-		}
-	}
-
-	/**
-	 * Returns a formatted string with the given key in the resource bundle for
-	 * JFace Data Binding.
-	 *
-	 * @param key
-	 * @param arguments
-	 * @return formatted string, the key if the key is invalid
-	 */
-	public static String formatString(String key, Object[] arguments) {
-		try {
-			return MessageFormat.format(bundle.getString(key), arguments);
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/BindingStatus.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/BindingStatus.java
deleted file mode 100644
index 025b82c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/BindingStatus.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding;
-
-import java.util.Arrays;
-
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-
-/**
- * A <code>MultiStatus</code> implementation that copies that state of the
- * added status to this instance if it is >= the current severity.
- * 
- * @since 1.0
- */
-public class BindingStatus extends MultiStatus {
-	/**
-	 * Constructs a new instance.
-	 * 
-	 * @param pluginId
-	 * @param code
-	 * @param message
-	 * @param exception
-	 */
-	public BindingStatus(String pluginId, int code, String message,
-			Throwable exception) {
-		super(pluginId, code, message, exception);
-	}
-
-	/**
-	 * Adds the status to the multi status. The details of the status will be
-	 * copied to the multi status if the severity is >= the current severity.
-	 * 
-	 * @see org.eclipse.core.runtime.MultiStatus#add(org.eclipse.core.runtime.IStatus)
-	 */
-	public void add(IStatus status) {
-		if (status.getSeverity() >= getSeverity()) {
-			setMessage((status.getMessage() != null) ? status.getMessage() : ""); //$NON-NLS-1$
-			setException(status.getException());
-			setPlugin(status.getPlugin());
-			setCode(status.getCode());
-		}
-
-		super.add(status);
-	}
-
-	/**
-	 * Instance initialized with the following values:
-	 * <ul>
-	 * <li>plugin = Policy.JFACE_DATABINDING</li>
-	 * <li>severity = 0</li>
-	 * <li>code = 0</li>
-	 * <li>message = ""</li>
-	 * <li>exception = null</li>
-	 * </ul>
-	 * 
-	 * @return status
-	 */
-	public static BindingStatus ok() {
-		return new BindingStatus(Policy.JFACE_DATABINDING, 0, "", null); //$NON-NLS-1$
-	}
-	
-	private static int hashCode(Object[] array) {
-		final int prime = 31;
-		if (array == null)
-			return 0;
-		int result = 1;
-		for (int index = 0; index < array.length; index++) {
-			result = prime * result
-					+ (array[index] == null ? 0 : array[index].hashCode());
-		}
-		return result;
-	}
-	
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + BindingStatus.hashCode(getChildren());
-		return result;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final BindingStatus other = (BindingStatus) obj;
-		if (!Arrays.equals(getChildren(), other.getChildren()))
-			return false;
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/ClassLookupSupport.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/ClassLookupSupport.java
deleted file mode 100644
index 7b3e04a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/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.core.internal.databinding;
-
-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 an array containing the given type and all its direct and indirect supertypes
-	 */
-	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.isInterface() ? Object.class : 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.core.databinding/src/org/eclipse/core/internal/databinding/IdentityWrapper.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/IdentityWrapper.java
deleted file mode 100644
index 978c996..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/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.core.internal.databinding;
-
-/**
- * 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.core.databinding/src/org/eclipse/core/internal/databinding/Pair.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Pair.java
deleted file mode 100644
index aebed88..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Pair.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding;
-
-/**
- * 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;
-	}
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((a == null) ? 0 : a.hashCode());
-		result = prime * result + ((b == null) ? 0 : b.hashCode());
-		return result;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		Pair other = (Pair) obj;
-		if (a == null) {
-			if (other.a != null)
-				return false;
-		} else if (!a.equals(other.a))
-			return false;
-		if (b == null) {
-			if (other.b != null)
-				return false;
-		} else if (!b.equals(other.b))
-			return false;
-		return true;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Queue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Queue.java
deleted file mode 100644
index cb4a507..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Queue.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding;
-
-/**
- * Created to avoid a dependency on java.util.LinkedList, see bug 205224.
- * 
- * @since 1.1
- * 
- */
-public class Queue {
-
-	static class Entry {
-		Object object;
-
-		Entry(Object o) {
-			this.object = o;
-		}
-
-		Entry next;
-	}
-
-	Entry first;
-	Entry last;
-
-	/**
-	 * Adds the given object to the end of the queue.
-	 * 
-	 * @param o
-	 */
-	public void enqueue(Object o) {
-		Entry oldLast = last;
-		last = new Entry(o);
-		if (oldLast != null) {
-			oldLast.next = last;
-		} else {
-			first = last;
-		}
-	}
-
-	/**
-	 * Returns the first object in the queue. The queue must not be empty.
-	 * 
-	 * @return the first object
-	 */
-	public Object dequeue() {
-		Entry oldFirst = first;
-		if (oldFirst == null) {
-			throw new IllegalStateException();
-		}
-		first = oldFirst.next;
-		if (first == null) {
-			last = null;
-		}
-		oldFirst.next = null;
-		return oldFirst.object;
-	}
-
-	/**
-	 * Returns <code>true</code> if the list is empty.
-	 * 
-	 * @return <code>true</code> if the list is empty
-	 */
-	public boolean isEmpty() {
-		return first == null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/RandomAccessListIterator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/RandomAccessListIterator.java
deleted file mode 100644
index 8a560ad..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/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.core.internal.databinding;
-
-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.core.databinding/src/org/eclipse/core/internal/databinding/Util.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Util.java
deleted file mode 100644
index d027177..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/Util.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.core.internal.databinding;
-
-/**
- * @since 3.3
- * 
- */
-public class Util {
-
-	/**
-	 * Checks whether the two objects are <code>null</code> -- allowing for
-	 * <code>null</code>.
-	 * 
-	 * @param left
-	 *            The left object to compare; may be <code>null</code>.
-	 * @param right
-	 *            The right object to compare; may be <code>null</code>.
-	 * @return <code>true</code> if the two objects are equivalent;
-	 *         <code>false</code> otherwise.
-	 */
-	public static final boolean equals(final Object left, final Object right) {
-		return left == null ? right == null : ((right != null) && left
-				.equals(right));
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/ValidationStatusMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/ValidationStatusMap.java
deleted file mode 100644
index 07efa93..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/ValidationStatusMap.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding;
-
-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.databinding.Binding;
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.observable.map.ObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 1.0
- * 
- */
-public class ValidationStatusMap extends ObservableMap {
-
-	private boolean isDirty = true;
-
-	private final WritableList bindings;
-
-	private List dependencies = new ArrayList();
-
-	private IChangeListener markDirtyChangeListener = new IChangeListener() {
-		public void handleChange(ChangeEvent event) {
-			markDirty();
-		}
-	};
-
-	/**
-	 * @param realm
-	 * @param bindings
-	 */
-	public ValidationStatusMap(Realm realm, WritableList bindings) {
-		super(realm, new HashMap());
-		this.bindings = bindings;
-		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 Map oldMap = wrappedMap;
-		// lazy computation of diff
-		MapDiff mapDiff = new MapDiff() {
-			private MapDiff cachedDiff = null;
-
-			private void ensureCached() {
-				if (cachedDiff == null) {
-					recompute();
-					cachedDiff = Diffs.computeMapDiff(oldMap, wrappedMap);
-				}
-			}
-
-			public Set getAddedKeys() {
-				ensureCached();
-				return cachedDiff.getAddedKeys();
-			}
-
-			public Set getChangedKeys() {
-				ensureCached();
-				return cachedDiff.getChangedKeys();
-			}
-
-			public Object getNewValue(Object key) {
-				ensureCached();
-				return cachedDiff.getNewValue(key);
-			}
-
-			public Object getOldValue(Object key) {
-				ensureCached();
-				return cachedDiff.getOldValue(key);
-			}
-
-			public Set getRemovedKeys() {
-				ensureCached();
-				return cachedDiff.getRemovedKeys();
-			}
-		};
-		wrappedMap = new HashMap();
-		isDirty = true;
-		fireMapChange(mapDiff);
-	}
-
-	private void recompute() {
-		if (isDirty) {
-			Map newContents = new HashMap();
-			for (Iterator it = bindings.iterator(); it.hasNext();) {
-				Binding binding = (Binding) it.next();
-				IObservableValue validationError = binding
-						.getValidationStatus();
-				dependencies.add(validationError);
-				validationError.addChangeListener(markDirtyChangeListener);
-				IStatus validationStatusValue = (IStatus) validationError
-						.getValue();
-				newContents.put(binding, validationStatusValue);
-			}
-			wrappedMap.putAll(newContents);
-			isDirty = false;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.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 synchronized void addChangeListener(IChangeListener listener) {
-		// this ensures that the next change will be seen by the new listener.
-		recompute();
-		super.addChangeListener(listener);
-	}
-	
-	public synchronized void addMapChangeListener(IMapChangeListener listener) {
-		// this ensures that the next change will be seen by the new listener.
-		recompute();
-		super.addMapChangeListener(listener);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/CharacterToStringConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/CharacterToStringConverter.java
deleted file mode 100644
index e81091e..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/CharacterToStringConverter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matt Carter and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matt Carter - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.Converter;
-
-/**
- * Converts a character to a string.
- */
-public class CharacterToStringConverter extends Converter {
-	private final boolean primitive;
-
-	/**
-	 * @param primitive
-	 */
-	private CharacterToStringConverter(boolean primitive) {
-		super(primitive ? Character.TYPE : Character.class, String.class);
-		this.primitive = primitive;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object fromObject) {
-		// Null is allowed when the type is not primitive.
-		if (fromObject == null) {
-			if (primitive)
-				throw new IllegalArgumentException(
-						"'fromObject' is null. Cannot convert to primitive char."); //$NON-NLS-1$
-			return ""; //$NON-NLS-1$
-		}
-
-		if (!(fromObject instanceof Character)) {
-			throw new IllegalArgumentException(
-					"'fromObject' is not of type [Character]."); //$NON-NLS-1$
-		}
-
-		return String.valueOf(((Character) fromObject).charValue());
-	}
-
-	/**
-	 * @param primitive
-	 * @return converter
-	 */
-	public static CharacterToStringConverter fromCharacter(boolean primitive) {
-		return new CharacterToStringConverter(primitive);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/DateConversionSupport.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/DateConversionSupport.java
deleted file mode 100755
index 0fd191f..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/DateConversionSupport.java
+++ /dev/null
@@ -1,129 +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
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- */
-package org.eclipse.core.internal.databinding.conversion;
-
-import java.text.ParsePosition;
-import java.util.Date;
-
-import org.eclipse.core.internal.databinding.BindingMessages;
-
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.SimpleDateFormat;
-
-/**
- * Base support for date/string conversion handling according to the default
- * locale or in plain long milliseconds.
- * <p>
- * 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.
- * </p>
- */
-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(BindingMessages.getString(BindingMessages.DATE_FORMAT_DATE_TIME)),
-			new SimpleDateFormat(BindingMessages.getString(BindingMessages.DATEFORMAT_TIME)),
-			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.
-	 * @param date a date
-	 * @return a string representation of the given date 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;
-	}
-
-	/**
-	 * Returns the date format for the provided <code>index</code>.
-	 * <p>
-	 * This is for testing purposes only and should not be a part of the API if
-	 * this class was to be exposed.
-	 * </p>
-	 *
-	 * @param index
-	 * @return date format
-	 */
-	protected DateFormat getDateFormat(int index) {
-		if (index < 0 || index >= formatters.length) {
-			throw new IllegalArgumentException("'index' [" + index + "] is out of bounds.");  //$NON-NLS-1$//$NON-NLS-2$
-		}
-
-		return formatters[index];
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/DateToStringConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/DateToStringConverter.java
deleted file mode 100755
index 95a3e29..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/DateToStringConverter.java
+++ /dev/null
@@ -1,39 +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.core.internal.databinding.conversion;
-
-import java.util.Date;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-
-
-/**
- * Converts 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 DateToStringConverter 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.core.databinding/src/org/eclipse/core/internal/databinding/conversion/IdentityConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/IdentityConverter.java
deleted file mode 100644
index 928aaba..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/IdentityConverter.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2005 db4objects Inc.  http://www.db4o.com  and others.
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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
- *     Matt Carter - Character support completed (bug 197679)
- */
-package org.eclipse.core.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.BindingException;
-import org.eclipse.core.databinding.conversion.IConverter;
-
-/**
- * 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 },
-			{ Character.TYPE, Character.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.core.databinding/src/org/eclipse/core/internal/databinding/conversion/IntegerToStringConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/IntegerToStringConverter.java
deleted file mode 100644
index c8b177c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/IntegerToStringConverter.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.Converter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts a value that is an integer, non decimal, to a String using a
- * NumberFormat.
- * <p>
- * This class is a temporary as this ability exists in NumberToStringConverter
- * except that short and byte are missing.
- * </p>
- * 
- * @since 1.0
- */
-public class IntegerToStringConverter extends Converter {
-	private final boolean primitive;
-	private final NumberFormat numberFormat;
-	private final Class boxedType;
-
-	/**
-	 * @param numberFormat
-	 * @param fromType
-	 * @param boxedType
-	 */
-	private IntegerToStringConverter(NumberFormat numberFormat, Class fromType,
-			Class boxedType) {
-		super(fromType, String.class);
-		this.primitive = fromType.isPrimitive();
-		this.numberFormat = numberFormat;
-		this.boxedType = boxedType;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object fromObject) {
-		// Null is allowed when the type is not primitve.
-		if (fromObject == null && !primitive) {
-			return ""; //$NON-NLS-1$
-		}
-
-		if (!boxedType.isInstance(fromObject)) {
-			throw new IllegalArgumentException(
-					"'fromObject' is not of type [" + boxedType + "]."); //$NON-NLS-1$//$NON-NLS-2$
-		}
-
-		return numberFormat.format(((Number) fromObject).longValue());
-	}
-
-	/**
-	 * @param primitive
-	 * @return converter
-	 */
-	public static IntegerToStringConverter fromShort(boolean primitive) {
-		return fromShort(NumberFormat.getIntegerInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return converter
-	 */
-	public static IntegerToStringConverter fromShort(NumberFormat numberFormat,
-			boolean primitive) {
-		return new IntegerToStringConverter(numberFormat,
-				primitive ? Short.TYPE : Short.class, Short.class);
-	}
-
-	/**
-	 * @param primitive
-	 * @return converter
-	 */
-	public static IntegerToStringConverter fromByte(boolean primitive) {
-		return fromByte(NumberFormat.getIntegerInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return converter
-	 */
-	public static IntegerToStringConverter fromByte(NumberFormat numberFormat,
-			boolean primitive) {
-		return new IntegerToStringConverter(numberFormat, primitive ? Byte.TYPE
-				: Byte.class, Byte.class);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToBigDecimalConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToBigDecimalConverter.java
deleted file mode 100644
index 2d3e38a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToBigDecimalConverter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts from a Number to a BigDecimal.
- * <p>
- * Class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public class NumberToBigDecimalConverter extends NumberToNumberConverter {
-	/**
-	 * @param numberFormat
-	 * @param fromType
-	 */
-	public NumberToBigDecimalConverter(NumberFormat numberFormat, Class fromType) {		
-		super(numberFormat, fromType, BigDecimal.class);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter#doConvert(java.lang.Number)
-	 */
-	protected Number doConvert(Number number) {
-		if (number instanceof BigInteger) {
-			return new BigDecimal((BigInteger) number);
-		}
-		
-		return new BigDecimal(number.doubleValue());
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToBigIntegerConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToBigIntegerConverter.java
deleted file mode 100644
index 23f4261..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToBigIntegerConverter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts from a Number to a BigInteger.
- * <p>
- * Class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public class NumberToBigIntegerConverter extends NumberToNumberConverter {
-	/**
-	 * @param numberFormat
-	 * @param fromType
-	 */
-	public NumberToBigIntegerConverter(NumberFormat numberFormat, Class fromType) {
-		super(numberFormat, fromType, BigInteger.class);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter#doConvert(java.lang.Number)
-	 */
-	protected Number doConvert(Number number) {	
-		return toBigDecimal(number).toBigInteger();
-	}
-	
-	private static BigDecimal toBigDecimal(Number number) {
-		if (number instanceof BigDecimal) {
-			return (BigDecimal) number;
-		}
-		
-		return new BigDecimal(number.doubleValue());
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToByteConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToByteConverter.java
deleted file mode 100644
index 88bf643..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToByteConverter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts from a Number to a Byte.
- * <p>
- * Class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public class NumberToByteConverter extends NumberToNumberConverter {
-	/**
-	 * @param numberFormat 
-	 * @param fromType
-	 * @param primitive
-	 */
-	public NumberToByteConverter(NumberFormat numberFormat, Class fromType,
-			boolean primitive) {
-		super(numberFormat, fromType, (primitive) ? Byte.TYPE : Byte.class);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter#doConvert(java.lang.Number)
-	 */
-	protected Number doConvert(Number number) {
-		if (StringToNumberParser.inByteRange(number)) {
-			return new Byte(number.byteValue());
-		}
-		
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToDoubleConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToDoubleConverter.java
deleted file mode 100644
index 4e30390..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToDoubleConverter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts from a Number to a Double.
- * <p>
- * Class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public class NumberToDoubleConverter extends NumberToNumberConverter {
-
-	/**
-	 * @param numberFormat
-	 * @param fromType
-	 * @param primitive
-	 */
-	public NumberToDoubleConverter(NumberFormat numberFormat, Class fromType,
-			boolean primitive) {
-		super(numberFormat, fromType, (primitive) ? Double.TYPE : Double.class);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter#doConvert(java.lang.Number)
-	 */
-	protected Number doConvert(Number number) {
-		if (StringToNumberParser.inDoubleRange(number)) {
-			return new Double(number.doubleValue());
-		}
-		
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToFloatConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToFloatConverter.java
deleted file mode 100644
index 64745a5..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToFloatConverter.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts from a Number to a Float.
- * <p>
- * Class is thread safe.
- * </p>
- * @since 1.0
- */
-public class NumberToFloatConverter extends NumberToNumberConverter {
-	/**
-	 * @param numberFormat
-	 * @param fromType
-	 * @param primitive
-	 */
-	public NumberToFloatConverter(NumberFormat numberFormat, Class fromType,
-			boolean primitive) {
-		super(numberFormat, fromType, (primitive) ? Float.TYPE : Float.class);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter#doConvert(java.lang.Number)
-	 */
-	protected Number doConvert(Number number) {
-		if (StringToNumberParser.inFloatRange(number)) {
-			return new Float(number.floatValue());
-		}
-		
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToIntegerConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToIntegerConverter.java
deleted file mode 100644
index fdcf23a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToIntegerConverter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts from a Number to a Integer.
- * <p>
- * Class is thread safe.
- * </p>
- * @since 1.0
- */
-public class NumberToIntegerConverter extends NumberToNumberConverter implements
-		IConverter {
-
-	/**
-	 * @param numberFormat
-	 * @param fromType
-	 * @param primitive
-	 */
-	public NumberToIntegerConverter(NumberFormat numberFormat,
-			Class fromType, boolean primitive) {
-		super(numberFormat, fromType, (primitive) ? Integer.TYPE : Integer.class);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter#doConvert(java.lang.Number)
-	 */
-	protected Number doConvert(Number number) {
-		if (StringToNumberParser.inIntegerRange(number)) {
-			return new Integer(number.intValue());
-		}
-		
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToLongConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToLongConverter.java
deleted file mode 100644
index 6addb0e..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToLongConverter.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts from a Number to a Long.
- * <p>
- * Class is thread safe.
- * </p>
- * @since 1.0
- */
-public class NumberToLongConverter extends NumberToNumberConverter {
-	/**
-	 * @param numberFormat
-	 * @param fromType
-	 * @param primitive
-	 */
-	public NumberToLongConverter(NumberFormat numberFormat, Class fromType,
-			boolean primitive) {
-		super(numberFormat, fromType, (primitive) ? Long.TYPE : Long.class);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter#doConvert(java.lang.Number)
-	 */
-	protected Number doConvert(Number number) {
-		if (StringToNumberParser.inLongRange(number)) {
-			return new Long(number.longValue());
-		}
-		
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToNumberConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToNumberConverter.java
deleted file mode 100644
index 89f763b..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToNumberConverter.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.Converter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Base class for number to number converters.
- * <p>
- * This class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public abstract class NumberToNumberConverter extends Converter {
-	private NumberFormat numberFormat;
-
-	private boolean primitive;
-
-	private String outOfRangeMessage;
-
-	protected NumberToNumberConverter(NumberFormat numberFormat,
-			Class fromType, Class toType) {
-		super(fromType, toType);
-		this.numberFormat = numberFormat;
-		this.primitive = toType.isPrimitive();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
-	 */
-	public final Object convert(Object fromObject) {
-		if (fromObject == null) {
-			if (primitive) {
-				throw new IllegalArgumentException(
-						"Parameter 'fromObject' cannot be null."); //$NON-NLS-1$	
-			}
-
-			return null;
-		}
-
-		if (!(fromObject instanceof Number)) {
-			throw new IllegalArgumentException(
-					"Parameter 'fromObject' must be of type Number."); //$NON-NLS-1$
-		}
-
-		Number number = (Number) fromObject;
-		Number result = doConvert(number);
-
-		if (result != null) {
-			return result;
-		}
-
-		synchronized (this) {
-			if (outOfRangeMessage == null) {
-				outOfRangeMessage = StringToNumberParser
-						.createOutOfRangeMessage(new Short(Short.MIN_VALUE),
-								new Short(Short.MAX_VALUE), numberFormat);
-			}
-
-			throw new IllegalArgumentException(outOfRangeMessage);
-		}
-	}
-
-	/**
-	 * Invoked when the number should converted.
-	 * 
-	 * @param number
-	 * @return number if conversion was successfule, <code>null</code> if the
-	 *         number was out of range
-	 */
-	protected abstract Number doConvert(Number number);
-
-	/**
-	 * NumberFormat being used by the converter. Access to the format must be
-	 * synchronized on the number format instance.
-	 * 
-	 * @return number format
-	 */
-	public NumberFormat getNumberFormat() {
-		return numberFormat;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToShortConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToShortConverter.java
deleted file mode 100644
index badb8c0..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/NumberToShortConverter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converts from a Number to a Short.
- * <p>
- * Class is thread safe.
- * </p>
- * @since 1.0
- */
-public class NumberToShortConverter extends NumberToNumberConverter {
-	/**
-	 * @param numberFormat
-	 * @param fromType
-	 * @param primitive
-	 */
-	public NumberToShortConverter(NumberFormat numberFormat, Class fromType,
-			boolean primitive) {
-
-		super(numberFormat, fromType, (primitive) ? Short.TYPE : Short.class);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter#doConvert(java.lang.Number)
-	 */
-	protected Number doConvert(Number number) {
-		if (StringToNumberParser.inShortRange(number)) {
-			return new Short(number.shortValue());
-		}
-
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/ObjectToStringConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/ObjectToStringConverter.java
deleted file mode 100644
index 76b69d4..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/ObjectToStringConverter.java
+++ /dev/null
@@ -1,56 +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.core.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-
-/**
- * Converts any object to a string by calling its toString() method.
- */
-public class ObjectToStringConverter implements IConverter {
-	private final Class fromClass;
-
-	/**
-	 * 
-	 */
-	public ObjectToStringConverter() {
-		this(Object.class);
-	}
-
-	/**
-	 * @param fromClass
-	 */
-	public ObjectToStringConverter(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.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StatusToStringConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StatusToStringConverter.java
deleted file mode 100644
index 72d7716..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StatusToStringConverter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.Converter;
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Converts an IStatus into a String.  The message of the status is the returned value.
- * 
- * @since 1.0
- */
-public class StatusToStringConverter extends Converter implements IConverter {
-	/**
-	 * Constructs a new instance.
-	 */
-	public StatusToStringConverter() {
-		super(IStatus.class, String.class);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object fromObject) {
-		if (fromObject == null) {
-			throw new IllegalArgumentException("Parameter 'fromObject' was null."); //$NON-NLS-1$
-		}
-		
-		IStatus status = (IStatus) fromObject;
-		return status.getMessage();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToBooleanConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToBooleanConverter.java
deleted file mode 100755
index 7f67e76..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToBooleanConverter.java
+++ /dev/null
@@ -1,36 +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.core.internal.databinding.conversion;
-
-/**
- * StringToBooleanConverter.
- */
-public class StringToBooleanConverter extends StringToBooleanPrimitiveConverter {
-
-	/*
-	 * (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;
-		}
-		return super.convert(source);
-	}
-
-	public Object getToType() {
-		return Boolean.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToBooleanPrimitiveConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToBooleanPrimitiveConverter.java
deleted file mode 100644
index f38300d..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToBooleanPrimitiveConverter.java
+++ /dev/null
@@ -1,88 +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
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- */
-package org.eclipse.core.internal.databinding.conversion;
-
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.BindingMessages;
-
-/**
- * StringToBooleanPrimitiveConverter.
- */
-public class StringToBooleanPrimitiveConverter implements IConverter {
-	private static final String[] trueValues;
-
-	private static final String[] falseValues;
-
-	static {
-		String delimiter = BindingMessages.getString(BindingMessages.VALUE_DELIMITER);
-		String values = BindingMessages.getString(BindingMessages.TRUE_STRING_VALUES);
-		trueValues = valuesToSortedArray(delimiter, values);
-
-		values = BindingMessages.getString(BindingMessages.FALSE_STRING_VALUES);
-		falseValues = valuesToSortedArray(delimiter, values);
-	}
-
-	/**
-	 * Returns a sorted array with all values converted to upper case.
-	 *
-	 * @param delimiter
-	 * @param values
-	 * @return sorted array of values
-	 */
-	private static String[] valuesToSortedArray(String delimiter, String values) {
-		List list = new LinkedList();
-		StringTokenizer tokenizer = new StringTokenizer(values, delimiter);
-		while (tokenizer.hasMoreTokens()) {
-			list.add(tokenizer.nextToken().toUpperCase());
-		}
-
-		String[] array = (String[]) list.toArray(new String[list.size()]);
-		Arrays.sort(array);
-
-		return array;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		String s = (String) source;
-		s = s.toUpperCase();
-
-		if (Arrays.binarySearch(trueValues, s) > -1) {
-			return Boolean.TRUE;
-		}
-
-		if (Arrays.binarySearch(falseValues, s) > -1) {
-			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.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToByteConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToByteConverter.java
deleted file mode 100755
index eef131d..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToByteConverter.java
+++ /dev/null
@@ -1,88 +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.core.internal.databinding.conversion;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser.ParseResult;
-import org.eclipse.core.internal.databinding.validation.NumberFormatConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.0
- */
-public class StringToByteConverter extends NumberFormatConverter {	
-	private String outOfRangeMessage;
-	private NumberFormat numberFormat;
-	private boolean primitive;
-	
-	/**
-	 * @param numberFormat
-	 * @param toType
-	 */
-	private StringToByteConverter(NumberFormat numberFormat, Class toType) {
-		super(String.class, toType, numberFormat);
-		primitive = toType.isPrimitive();
-		this.numberFormat = numberFormat;
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return converter
-	 */
-	public static StringToByteConverter toByte(NumberFormat numberFormat,
-			boolean primitive) {
-		return new StringToByteConverter(numberFormat, (primitive) ? Byte.TYPE : Byte.class);
-	}
-
-	/**
-	 * @param primitive
-	 * @return converter
-	 */
-	public static StringToByteConverter toByte(boolean primitive) {
-		return toByte(NumberFormat.getIntegerInstance(), primitive);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object fromObject) {
-		ParseResult result = StringToNumberParser.parse(fromObject,
-				numberFormat, primitive);
-
-		if (result.getPosition() != null) {
-			// this shouldn't happen in the pipeline as validation should catch
-			// it but anyone can call convert so we should return a properly
-			// formatted message in an exception
-			throw new IllegalArgumentException(StringToNumberParser
-					.createParseErrorMessage((String) fromObject, result
-							.getPosition()));
-		} else if (result.getNumber() == null) {
-			// if an error didn't occur and the number is null then it's a boxed
-			// type and null should be returned
-			return null;
-		}
-
-		if (StringToNumberParser.inByteRange(result.getNumber())) {
-			return new Byte(result.getNumber().byteValue());
-		}
-		
-		synchronized (this) {
-			if (outOfRangeMessage == null) {
-				outOfRangeMessage = StringToNumberParser
-				.createOutOfRangeMessage(new Byte(Byte.MIN_VALUE), new Byte(Byte.MAX_VALUE), numberFormat);
-			}
-						
-			throw new IllegalArgumentException(outOfRangeMessage);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToCharacterConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToCharacterConverter.java
deleted file mode 100644
index ce71dc7..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToCharacterConverter.java
+++ /dev/null
@@ -1,81 +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
- *     Matt Carter - Improved primitive conversion support (bug 197679)
- */
-package org.eclipse.core.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-
-/**
- * StringToCharacterConverter.
- */
-public class StringToCharacterConverter implements IConverter {
-
-	private final boolean primitiveTarget;
-
-	/**
-	 * 
-	 * @param primitiveTarget
-	 */
-	public StringToCharacterConverter(boolean primitiveTarget) {
-		this.primitiveTarget = primitiveTarget;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.binding.converter.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object source) {
-		if (source != null && !(source instanceof String))
-			throw new IllegalArgumentException(
-					"String2Character: Expected type String, got type [" + source.getClass().getName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		String s = (String) source;
-		if (source == null || s.equals("")) { //$NON-NLS-1$
-			if (primitiveTarget)
-				throw new IllegalArgumentException(
-						"String2Character: cannot convert null/empty string to character primitive"); //$NON-NLS-1$
-			return null;
-		}
-		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 primitiveTarget ? Character.TYPE : Character.class;
-	}
-
-	/**
-	 * @param primitive
-	 * @return converter
-	 */
-	public static StringToCharacterConverter toCharacter(boolean primitive) {
-		return new StringToCharacterConverter(primitive);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToDateConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToDateConverter.java
deleted file mode 100644
index 47b55ce..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToDateConverter.java
+++ /dev/null
@@ -1,36 +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.core.internal.databinding.conversion;
-
-import java.util.Date;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-
-
-/**
- * Convert a String to a java.util.Date, respecting the current locale
- * 
- * @since 1.0
- */
-public class StringToDateConverter 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.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToNumberParser.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToNumberParser.java
deleted file mode 100644
index 3e7eafe..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToNumberParser.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.text.ParsePosition;
-
-import org.eclipse.core.internal.databinding.BindingMessages;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Utility class for the parsing of strings to numbers.
- *
- * @since 1.0
- */
-public class StringToNumberParser {
-	private static final BigDecimal FLOAT_MAX_BIG_DECIMAL = new BigDecimal(
-			Float.MAX_VALUE);
-	private static final BigDecimal FLOAT_MIN_BIG_DECIMAL = new BigDecimal(
-			-Float.MAX_VALUE);
-
-	private static final BigDecimal DOUBLE_MAX_BIG_DECIMAL = new BigDecimal(
-			Double.MAX_VALUE);
-	private static final BigDecimal DOUBLE_MIN_BIG_DECIMAL = new BigDecimal(
-			-Double.MAX_VALUE);
-
-	/**
-	 * @param value
-	 * @param numberFormat
-	 * @param primitive
-	 * @return result
-	 */
-	public static ParseResult parse(Object value, NumberFormat numberFormat,
-			boolean primitive) {
-		if (!(value instanceof String)) {
-			throw new IllegalArgumentException(
-					"Value to convert is not a String"); //$NON-NLS-1$
-		}
-
-		String source = (String) value;
-		ParseResult result = new ParseResult();
-		if (!primitive && source.trim().length() == 0) {
-			return result;
-		}
-
-		synchronized (numberFormat) {
-			ParsePosition position = new ParsePosition(0);
-			Number parseResult = null;
-			parseResult = numberFormat.parse(source, position);
-
-			if (position.getIndex() != source.length()
-					|| position.getErrorIndex() > -1) {
-
-				result.position = position;
-			} else {
-				result.number = parseResult;
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * The result of a parse operation.
-	 *
-	 * @since 1.0
-	 */
-	public static class ParseResult {
-		/* package */Number number;
-		/* package */ParsePosition position;
-
-		/**
-		 * The number as a result of the conversion. <code>null</code> if the
-		 * value could not be converted or if the type is not a primitive and
-		 * the value was an empty string.
-		 *
-		 * @return number
-		 */
-		public Number getNumber() {
-			return number;
-		}
-
-		/**
-		 * ParsePosition if an error occurred while parsing. <code>null</code>
-		 * if no error occurred.
-		 *
-		 * @return parse position
-		 */
-		public ParsePosition getPosition() {
-			return position;
-		}
-	}
-
-	/**
-	 * Formats an appropriate message for a parsing error.
-	 *
-	 * @param value
-	 * @param position
-	 * @return message
-	 */
-	public static String createParseErrorMessage(String value,
-			ParsePosition position) {
-		int errorIndex = (position.getErrorIndex() > -1) ? position
-				.getErrorIndex() : position.getIndex();
-
-		if (errorIndex < value.length()) {
-			return BindingMessages.formatString(BindingMessages.VALIDATE_NUMBER_PARSE_ERROR,
-					new Object[] { value, new Integer(errorIndex + 1),
-							new Character(value.charAt(errorIndex)) });
-		}
-		return BindingMessages.formatString(BindingMessages.VALIDATE_NUMBER_PARSE_ERROR_NO_CHARACTER,
-				new Object[] { value, new Integer(errorIndex + 1) });
-	}
-
-	/**
-	 * Formats an appropriate message for an out of range error.
-	 *
-	 * @param minValue
-	 * @param maxValue
-	 * @param numberFormat when accessed method synchronizes on instance
-	 * @return message
-	 */
-	public static String createOutOfRangeMessage(Number minValue,
-			Number maxValue, NumberFormat numberFormat) {
-		String min = null;
-		String max = null;
-
-		synchronized (numberFormat) {
-			min = numberFormat.format(minValue);
-			max = numberFormat.format(maxValue);
-		}
-
-		return BindingMessages.formatString(
-				"Validate_NumberOutOfRangeError", new Object[] { min, max }); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns <code>true</code> if the provided <code>number</code> is in
-	 * the range of a integer.
-	 *
-	 * @param number
-	 * @return <code>true</code> if a valid integer
-	 * @throws IllegalArgumentException
-	 *             if the number type is unsupported
-	 */
-	public static boolean inIntegerRange(Number number) {
-		return checkInteger(number, 31);
-	}
-
-	/**
-	 * Validates the range of the provided <code>number</code>.
-	 *
-	 * @param number
-	 * @param bitLength number of bits allowed to be in range
-	 * @return <code>true</code> if in range
-	 */
-	private static boolean checkInteger(Number number, int bitLength) {
-		BigInteger bigInteger = null;
-
-		if (number instanceof Integer || number instanceof Long) {
-			bigInteger = BigInteger.valueOf(number.longValue());
-		} else if (number instanceof Float || number instanceof Double) {
-			double doubleValue = number.doubleValue();
-			/*
-			 * doubleValue == doubleValue is used to check for NaN because NaN !=
-			 * NaN. The only way to check for NaN is to compare that the value
-			 * is equal to itself.
-			 */
-			if (doubleValue == doubleValue
-					&& doubleValue != Double.NEGATIVE_INFINITY
-					&& doubleValue != Double.POSITIVE_INFINITY) {
-				bigInteger = new BigDecimal(doubleValue).toBigInteger();
-			} else {
-				return false;
-			}
-		} else if (number instanceof BigInteger) {
-			bigInteger = (BigInteger) number;
-		} else if (number instanceof BigDecimal) {
-			bigInteger = ((BigDecimal) number).toBigInteger();
-		} else {
-			/*
-			 * The else is necessary as the ICU4J plugin has it's own BigDecimal
-			 * implementation which isn't part of the replacement plugin. So
-			 * that this will work we fall back on the double value of the
-			 * number.
-			 */
-			bigInteger = new BigDecimal(number.doubleValue()).toBigInteger();
-		}
-
-		if (bigInteger != null) {
-			return bigInteger.bitLength() <= bitLength;
-		}
-
-		throw new IllegalArgumentException(
-				"Number of type [" + number.getClass().getName() + "] is not supported."); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Returns <code>true</code> if the provided <code>number</code> is in
-	 * the range of a long.
-	 *
-	 * @param number
-	 * @return <code>true</code> if in range
-	 * @throws IllegalArgumentException
-	 *             if the number type is unsupported
-	 */
-	public static boolean inLongRange(Number number) {
-		return checkInteger(number, 63);
-	}
-
-	/**
-	 * Returns <code>true</code> if the provided <code>number</code> is in
-	 * the range of a float.
-	 *
-	 * @param number
-	 * @return <code>true</code> if in range
-	 * @throws IllegalArgumentException
-	 *             if the number type is unsupported
-	 */
-	public static boolean inFloatRange(Number number) {
-		return checkDecimal(number, FLOAT_MIN_BIG_DECIMAL, FLOAT_MAX_BIG_DECIMAL);
-	}
-
-	private static boolean checkDecimal(Number number, BigDecimal min, BigDecimal max) {
-		BigDecimal bigDecimal = null;
-		if (number instanceof Integer || number instanceof Long) {
-			bigDecimal = new BigDecimal(number.doubleValue());
-		} else if (number instanceof Float || number instanceof Double) {
-			double doubleValue = number.doubleValue();
-
-			/*
-			 * doubleValue == doubleValue is used to check for NaN because NaN !=
-			 * NaN. The only way to check for NaN is to compare that the value
-			 * is equal to itself.
-			 */
-			if (doubleValue == doubleValue
-					&& doubleValue != Double.NEGATIVE_INFINITY
-					&& doubleValue != Double.POSITIVE_INFINITY) {
-				bigDecimal = new BigDecimal(doubleValue);
-			} else {
-				return false;
-			}
-		} else if (number instanceof BigInteger) {
-			bigDecimal = new BigDecimal((BigInteger) number);
-		} else if (number instanceof BigDecimal) {
-			bigDecimal = (BigDecimal) number;
-		} else {
-			/*
-			 * The else is necessary as the ICU4J plugin has it's own BigDecimal
-			 * implementation which isn't part of the replacement plugin. So
-			 * that this will work we fall back on the double value of the
-			 * number.
-			 */
-			bigDecimal = new BigDecimal(number.doubleValue());
-		}
-
-		if (bigDecimal != null) {
-			return max.compareTo(bigDecimal) >= 0
-					&& min.compareTo(bigDecimal) <= 0;
-		}
-
-		throw new IllegalArgumentException(
-				"Number of type [" + number.getClass().getName() + "] is not supported."); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Returns <code>true</code> if the provided <code>number</code> is in
-	 * the range of a double.
-	 *
-	 * @param number
-	 * @return <code>true</code> if in range
-	 * @throws IllegalArgumentException
-	 *             if the number type is unsupported
-	 */
-	public static boolean inDoubleRange(Number number) {
-		return checkDecimal(number, DOUBLE_MIN_BIG_DECIMAL, DOUBLE_MAX_BIG_DECIMAL);
-	}
-
-	/**
-	 * Returns <code>true</code> if the provided <code>number</code> is in
-	 * the range of a short.
-	 *
-	 * @param number
-	 * @return <code>true</code> if in range
-	 */
-	public static boolean inShortRange(Number number) {
-		return checkInteger(number, 15);
-	}
-
-	/**
-	 * Returns <code>true</code> if the provided <code>number</code> is in
-	 * the range of a byte.
-	 *
-	 * @param number
-	 * @return <code>true</code> if in range
-	 */
-	public static boolean inByteRange(Number number) {
-		return checkInteger(number, 7);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToShortConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToShortConverter.java
deleted file mode 100755
index 3c05a5c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/conversion/StringToShortConverter.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.conversion;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser.ParseResult;
-import org.eclipse.core.internal.databinding.validation.NumberFormatConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.0
- */
-public class StringToShortConverter extends NumberFormatConverter {
-	private final NumberFormat numberFormat;
-	private final boolean primitive;
-	
-	private String outOfRangeMessage;
-
-	/**
-	 * Constructs a new instance.
-	 */
-	private StringToShortConverter(NumberFormat numberFormat, Class toType) {
-		super(String.class, toType, numberFormat);
-		this.numberFormat = numberFormat;
-		primitive = toType.isPrimitive();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
-	 */
-	public Object convert(Object fromObject) {
-		ParseResult result = StringToNumberParser.parse(fromObject,
-				numberFormat, primitive);
-
-		if (result.getPosition() != null) {
-			// this shouldn't happen in the pipeline as validation should catch
-			// it but anyone can call convert so we should return a properly
-			// formatted message in an exception
-			throw new IllegalArgumentException(StringToNumberParser
-					.createParseErrorMessage((String) fromObject, result
-							.getPosition()));
-		} else if (result.getNumber() == null) {
-			// if an error didn't occur and the number is null then it's a boxed
-			// type and null should be returned
-			return null;
-		}
-
-		if (StringToNumberParser.inShortRange(result.getNumber())) {
-			return new Short(result.getNumber().shortValue());
-		}
-		
-		synchronized (this) {
-			if (outOfRangeMessage == null) {
-				outOfRangeMessage = StringToNumberParser
-				.createOutOfRangeMessage(new Short(Short.MIN_VALUE), new Short(Short.MAX_VALUE), numberFormat);
-			}
-						
-			throw new IllegalArgumentException(outOfRangeMessage);
-		}
-	}
-
-	/**
-	 * @param primitive
-	 *            <code>true</code> if the convert to type is a short
-	 * @return to Short converter for the default locale
-	 */
-	public static StringToShortConverter toShort(boolean primitive) {
-		return toShort(NumberFormat.getIntegerInstance(), primitive);
-	}
-
-	/**
-	 * @param numberFormat
-	 * @param primitive
-	 * @return to Short converter with the provided numberFormat
-	 */
-	public static StringToShortConverter toShort(NumberFormat numberFormat,
-			boolean primitive) {
-		return new StringToShortConverter(numberFormat,
-				(primitive) ? Short.TYPE : Short.class);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/messages.properties b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/messages.properties
deleted file mode 100644
index 7540ebc..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/messages.properties
+++ /dev/null
@@ -1,56 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# NLS file for JFace Data Binding
-###############################################################################
-## Uneeded value
-#
-#Yes=Yes
-#yes=yes
-#No=No
-#no=no
-#True=True
-#true=true
-#False=False
-#false=false
-#and=and
-#or=or
-#Validate_BooleanHelp=Please type "Yes", "No", "True", or "False"
-#
-#Validate_RangeStart=Please enter a number between
-#Validate_Like=Please enter a number like
-#
-###############
-
-IndexOutOfRange=Index out of Range.
-MultipleProblems=Multiple Problems.
-
-ValueBinding_ErrorWhileSettingValue=An error occurred while setting the value.
-DateFormat_DateTime=dd.MM.yyyy HH:mm:ss.SSS Z
-DateFormat_Time=HH:mm:ss.SSS
-
-#ValueDelimiter should be used to separate multiple values that are stored in one key
-ValueDelimiter=,
-
-#Values must be separated by ValueDelimiter
-TrueStringValues=yes,true
-FalseStringValues=no,false
-
-Validate_NumberOutOfRangeError=Please enter a value between [{0}] and [{1}] and with a similar format.
-Validate_NumberParseError=Invalid character for value [{0}] at position [{1}] character [{2}].
-Validate_NumberParseErrorNoCharacter=Missing character for value [{0}] at position [{1}].
-
-Validate_ConversionToPrimitive="Null object values can not be converted to primitives."
-Validate_ConversionFromClassToPrimitive="Wrong object type to convert to primitive."
-
-Validate_NoChangeAllowedHelp=Changes are not allowed in this field
-Validate_CharacterHelp=Please type a character
-
-Examples=Examples
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ConstantObservableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ConstantObservableValue.java
deleted file mode 100644
index f143efb..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ConstantObservableValue.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007-2008 Matt Carter and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matt Carter - initial API and implementation (bug 212518)
- *     Matthew Hall - bug 212518
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * An immutable {@link IObservableValue}.
- * 
- * @see WritableValue
- */
-public class ConstantObservableValue implements IObservableValue {
-	final Realm realm;
-	final Object value;
-	final Object type;
-
-	/**
-	 * Construct a constant value of the given type, in the default realm.
-	 * 
-	 * @param value
-	 *            immutable value
-	 * @param type
-	 *            type
-	 */
-	public ConstantObservableValue(Object value, Object type) {
-		this(Realm.getDefault(), value, type);
-	}
-
-	/**
-	 * Construct a constant value of the given type, in the given realm.
-	 * 
-	 * @param realm
-	 *            Realm
-	 * @param value
-	 *            immutable value
-	 * @param type
-	 *            type
-	 */
-	public ConstantObservableValue(Realm realm, Object value, Object type) {
-		Assert.isNotNull(realm, "Realm cannot be null"); //$NON-NLS-1$
-		this.realm = realm;
-		this.value = value;
-		this.type = type;
-	}
-
-	public Object getValueType() {
-		return type;
-	}
-
-	public Object getValue() {
-		ObservableTracker.getterCalled(this);
-		return value;
-	}
-
-	public void setValue(Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addValueChangeListener(IValueChangeListener listener) {
-		// ignore
-	}
-
-	public void removeValueChangeListener(IValueChangeListener listener) {
-		// ignore
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-		// ignore
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-		// ignore
-	}
-
-	public void dispose() {
-		// nothing to dispose
-	}
-
-	public Realm getRealm() {
-		return realm;
-	}
-
-	public boolean isStale() {
-		return false;
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		// ignore
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		// ignore
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/EmptyObservableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/EmptyObservableList.java
deleted file mode 100644
index 1b53b34..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/EmptyObservableList.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208858
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Singleton empty list
- */
-public class EmptyObservableList implements IObservableList {
-
-	private static final List emptyList = Collections.EMPTY_LIST;
-
-	private Realm realm;
-	private Object elementType;
-
-	/**
-	 * Creates an empty list. This list may be disposed multiple times
-	 * without any side-effects.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed list
-	 */
-	public EmptyObservableList(Realm realm) {
-		this(realm, null);
-	}
-
-	/**
-	 * Creates an empty list. This list may be disposed multiple times
-	 * without any side-effects.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed list
-	 * @param elementType
-	 *            the element type of the constructed list
-	 * @since 1.1
-	 */
-	public EmptyObservableList(Realm realm, Object elementType) {
-		this.realm = realm;
-		this.elementType = elementType;
-	}
-
-	public void addListChangeListener(IListChangeListener listener) {
-		// ignore
-	}
-
-	public void removeListChangeListener(IListChangeListener listener) {
-		// ignore
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public int size() {
-		checkRealm();
-		return 0;
-	}
-
-	void checkRealm() {
-		Assert.isTrue(realm.isCurrent(),
-				"Observable cannot be accessed outside its realm"); //$NON-NLS-1$
-	}
-
-	public boolean isEmpty() {
-		checkRealm();
-		return true;
-	}
-
-	public boolean contains(Object o) {
-		checkRealm();
-		return false;
-	}
-
-	public Iterator iterator() {
-		checkRealm();
-		return emptyList.iterator();
-	}
-
-	public Object[] toArray() {
-		checkRealm();
-		return emptyList.toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		return emptyList.toArray(a);
-	}
-
-	public boolean add(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean remove(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean containsAll(Collection c) {
-		checkRealm();
-		return c.isEmpty();
-	}
-
-	public boolean addAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean retainAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-	}
-
-	public boolean isStale() {
-		checkRealm();
-		return false;
-	}
-
-	public void dispose() {
-	}
-
-	public boolean addAll(int index, Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Object get(int index) {
-		return emptyList.get(index);
-	}
-
-	public int indexOf(Object o) {
-		return -1;
-	}
-
-	public int lastIndexOf(Object o) {
-		return -1;
-	}
-
-	public ListIterator listIterator() {
-		return emptyList.listIterator();
-	}
-
-	public ListIterator listIterator(int index) {
-		return emptyList.listIterator(index);
-	}
-
-	public Object remove(int index) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Object set(int index, Object element) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		throw new UnsupportedOperationException();
-	}
-
-	public List subList(int fromIndex, int toIndex) {
-		return emptyList.subList(fromIndex, toIndex);
-	}
-
-	public void add(int index, Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Realm getRealm() {
-		return realm;
-	}
-
-	public boolean equals(Object obj) {
-		checkRealm();
-		if (obj == this)
-			return true;
-		if (obj == null)
-			return false;
-		if (!(obj instanceof List))
-			return false;
-
-		return ((List) obj).isEmpty();
-	}
-
-	public int hashCode() {
-		checkRealm();
-		return 1;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/EmptyObservableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/EmptyObservableSet.java
deleted file mode 100644
index dab53c4..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/EmptyObservableSet.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Singleton empty set
- */
-public class EmptyObservableSet implements IObservableSet {
-
-	private static final Set emptySet = Collections.EMPTY_SET;
-
-	private Realm realm;
-	private Object elementType;
-
-	/**
-	 * Creates a singleton empty set. This set may be disposed multiple times
-	 * without any side-effects.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed set
-	 */
-	public EmptyObservableSet(Realm realm) {
-		this(realm, null);
-	}
-
-	/**
-	 * Creates a singleton empty set. This set may be disposed multiple times
-	 * without any side-effects.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed set
-	 * @param elementType
-	 *            the element type of the constructed set
-	 * @since 1.1
-	 */
-	public EmptyObservableSet(Realm realm, Object elementType) {
-		this.realm = realm;
-		this.elementType = elementType;
-	}
-
-	public void addSetChangeListener(ISetChangeListener listener) {
-	}
-
-	public void removeSetChangeListener(ISetChangeListener listener) {
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public int size() {
-		checkRealm();
-		return 0;
-	}
-
-	private void checkRealm() {
-		Assert.isTrue(realm.isCurrent(),
-				"Observable cannot be accessed outside its realm"); //$NON-NLS-1$
-	}
-
-	public boolean isEmpty() {
-		checkRealm();
-		return true;
-	}
-
-	public boolean contains(Object o) {
-		checkRealm();
-		return false;
-	}
-
-	public Iterator iterator() {
-		checkRealm();
-		return emptySet.iterator();
-	}
-
-	public Object[] toArray() {
-		checkRealm();
-		return emptySet.toArray();
-	}
-
-	public Object[] toArray(Object[] a) {
-		return emptySet.toArray(a);
-	}
-
-	public boolean add(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean remove(Object o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean containsAll(Collection c) {
-		checkRealm();
-		return c.isEmpty();
-	}
-
-	public boolean addAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean retainAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean removeAll(Collection c) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void clear() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-	}
-
-	public boolean isStale() {
-		checkRealm();
-		return false;
-	}
-
-	public void dispose() {
-	}
-
-	public Realm getRealm() {
-		return realm;
-	}
-
-	public boolean equals(Object obj) {
-		checkRealm();
-		if (obj == this)
-			return true;
-		if (obj == null)
-			return false;
-		if (!(obj instanceof Set))
-			return false;
-
-		return ((Set) obj).isEmpty();
-	}
-
-	public int hashCode() {
-		checkRealm();
-		return 0;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/IStalenessConsumer.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/IStalenessConsumer.java
deleted file mode 100644
index cfe5c61..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/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.core.internal.databinding.observable;
-
-/**
- * @since 1.0
- * 
- */
-public interface IStalenessConsumer {
-	/**
-	 * @param stale
-	 * 
-	 */
-	public void setStale(boolean stale);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/MapEntryObservableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/MapEntryObservableValue.java
deleted file mode 100644
index 3340eb6..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/MapEntryObservableValue.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Marko Topolnik and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Marko Topolnik - initial API and implementation (bug 184830)
- *     Matthew Hall - bug 184830
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * An {@link IObservableValue} that tracks the value of an entry in an
- * {@link IObservableMap}, identified by the entry's key.
- * 
- * @since 1.1
- */
-public class MapEntryObservableValue extends AbstractObservableValue {
-	private IObservableMap map;
-	private Object key;
-	private Object valueType;
-
-	private IMapChangeListener changeListener = new IMapChangeListener() {
-		public void handleMapChange(final MapChangeEvent event) {
-			if (event.diff.getAddedKeys().contains(key)) {
-				final Object newValue = event.diff.getNewValue(key);
-				if (newValue != null) {
-					fireValueChange(Diffs.createValueDiff(null, newValue));
-				}
-			} else if (event.diff.getChangedKeys().contains(key)) {
-				fireValueChange(Diffs.createValueDiff(event.diff
-						.getOldValue(key), event.diff.getNewValue(key)));
-			} else if (event.diff.getRemovedKeys().contains(key)) {
-				final Object oldValue = event.diff.getOldValue(key);
-				if (oldValue != null) {
-					fireValueChange(Diffs.createValueDiff(oldValue, null));
-				}
-			}
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	/**
-	 * Creates a map entry observable.
-	 * 
-	 * @param map
-	 *            the observable map whose entry will be tracked
-	 * @param key
-	 *            the key identifying the entry whose value will be tracked
-	 * @param valueType
-	 *            the type of the value
-	 */
-	public MapEntryObservableValue(IObservableMap map, Object key,
-			Object valueType) {
-		super(map.getRealm());
-		this.map = map;
-		this.key = key;
-		this.valueType = valueType;
-
-		map.addMapChangeListener(changeListener);
-		map.addStaleListener(staleListener);
-	}
-
-	public Object getValueType() {
-		return this.valueType;
-	}
-
-	public boolean isStale() {
-		ObservableTracker.getterCalled(this);
-		return map.isStale();
-	}
-
-	public synchronized void dispose() {
-		if (map != null) {
-			map.removeMapChangeListener(changeListener);
-			map.removeStaleListener(staleListener);
-			map = null;
-			changeListener = null;
-			staleListener = null;
-		}
-		super.dispose();
-	}
-
-	protected Object doGetValue() {
-		return this.map.get(this.key);
-	}
-
-	protected void doSetValue(Object value) {
-		this.map.put(this.key, value);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ProxyObservableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ProxyObservableList.java
deleted file mode 100644
index 6d15f2c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ProxyObservableList.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208332)
- *     IBM Corporation - initial API and implementation
- *         (through ProxyObservableSet.java)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.*;
-
-/**
- * Wraps an observable list. This object acts like an exact copy of the original
- * list, 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 IObservableList from a method that expects the
- * caller to dispose the list, but you have an IObservableList that you don't
- * want disposed.
- * 
- * @since 1.1
- */
-public class ProxyObservableList extends ObservableList {
-	private IListChangeListener listChangelistener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			fireListChange(event.diff);
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent event) {
-			fireStale();
-		}
-	};
-
-	private IObservableList wrappedList;
-
-	/**
-	 * Constructs a ProxyObservableList that tracks the state of the given list.
-	 * 
-	 * @param wrappedList
-	 *            the list being wrapped
-	 */
-	public ProxyObservableList(IObservableList wrappedList) {
-		super(wrappedList.getRealm(), wrappedList, wrappedList.getElementType());
-		this.wrappedList = wrappedList;
-		wrappedList.addListChangeListener(listChangelistener);
-		wrappedList.addStaleListener(staleListener);
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return wrappedList == null ? false : wrappedList.isStale();
-	}
-
-	public void dispose() {
-		if (wrappedList != null) {
-			wrappedList.removeListChangeListener(listChangelistener);
-			listChangelistener = null;
-			wrappedList.removeStaleListener(staleListener);
-			staleListener = null;
-			wrappedList = null;
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ProxyObservableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ProxyObservableSet.java
deleted file mode 100644
index 55a0b24..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ProxyObservableSet.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208332
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collections;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.AbstractObservableSet;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-
-/**
- * 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 class ProxyObservableSet extends AbstractObservableSet {
-	private IObservableSet wrappedSet;
-	private Object elementType;
-
-	private ISetChangeListener setChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			fireSetChange(event.diff);
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	/**
-	 * Constructs a ProxyObservableSet that tracks the state of the given set.
-	 * 
-	 * @param wrappedSet
-	 *            the set being wrapped
-	 */
-	public ProxyObservableSet(IObservableSet wrappedSet) {
-		super(wrappedSet.getRealm());
-		this.wrappedSet = wrappedSet;
-		this.elementType = wrappedSet.getElementType();
-		wrappedSet.addSetChangeListener(setChangeListener);
-		wrappedSet.addStaleListener(staleListener);
-	}
-
-	protected Set getWrappedSet() {
-		return wrappedSet == null ? Collections.EMPTY_SET : wrappedSet;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return wrappedSet == null ? false : wrappedSet.isStale();
-	}
-
-	public void dispose() {
-		if (wrappedSet != null) {
-			wrappedSet.removeSetChangeListener(setChangeListener);
-			setChangeListener = null;
-			wrappedSet.removeStaleListener(staleListener);
-			staleListener = null;
-			wrappedSet = null;
-		}
-		elementType = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/StalenessObservableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/StalenessObservableValue.java
deleted file mode 100644
index 6a07fad..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/StalenessObservableValue.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Boris Bokowski, IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 212468
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-
-/**
- * An observable value that tracks the staleness of an {@link IObservable}.
- * 
- * @since 1.1
- */
-public class StalenessObservableValue extends AbstractObservableValue {
-
-	private class MyListener implements IChangeListener, IStaleListener {
-		public void handleChange(ChangeEvent event) {
-			if (stale && !event.getObservable().isStale()) {
-				stale = false;
-				fireValueChange(Diffs.createValueDiff(Boolean.TRUE,
-						Boolean.FALSE));
-			}
-		}
-
-		public void handleStale(StaleEvent staleEvent) {
-			if (!stale) {
-				stale = true;
-				fireValueChange(Diffs.createValueDiff(Boolean.FALSE,
-						Boolean.TRUE));
-			}
-		}
-	}
-
-	private IObservable tracked;
-	private boolean stale;
-	private MyListener listener = new MyListener();
-
-	/**
-	 * Constructs a StalenessObservableValue that tracks the staleness of the
-	 * given {@link IObservable}.
-	 * 
-	 * @param observable
-	 *            the observable to track
-	 */
-	public StalenessObservableValue(IObservable observable) {
-		super(observable.getRealm());
-		this.tracked = observable;
-		this.stale = observable.isStale();
-		tracked.addChangeListener(listener);
-		tracked.addStaleListener(listener);
-	}
-
-	protected Object doGetValue() {
-		return tracked.isStale() ? Boolean.TRUE : Boolean.FALSE;
-	}
-
-	public Object getValueType() {
-		return Boolean.TYPE;
-	}
-
-	public synchronized void dispose() {
-		if (tracked != null) {
-			tracked.removeChangeListener(listener);
-			tracked.removeStaleListener(listener);
-			tracked = null;
-			listener = null;
-		}
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/StalenessTracker.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/StalenessTracker.java
deleted file mode 100644
index 6324325..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/StalenessTracker.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.internal.databinding.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(StaleEvent event) {
-			processStalenessChange((IObservable) event.getSource(), true);
-		}
-
-		public void handleChange(ChangeEvent event) {
-			processStalenessChange((IObservable) event.getSource(), 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.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableList.java
deleted file mode 100644
index 6f34e1e..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableList.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 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
- *     Matthew Hall - bug 208332
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.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 1.0
- */
-/*
- * Implementation makes the assumption that the superclass (ObservableList) is
- * unmodifiable and that all modify methods throw an
- * UnsupportedOperationException.
- */
-public class UnmodifiableObservableList extends ObservableList {
-	/**
-	 * List that is being made unmodifiable.
-	 */
-	private IObservableList wrappedList;
-
-	private IListChangeListener listChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			// Fires a Change and then ListChange event.
-			fireListChange(event.diff);
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent event) {
-			fireStale();
-		}
-	};
-
-	/**
-	 * @param wrappedList
-	 */
-	public UnmodifiableObservableList(IObservableList wrappedList) {
-		super(wrappedList.getRealm(), wrappedList, wrappedList.getElementType());
-		this.wrappedList = wrappedList;
-
-		wrappedList.addListChangeListener(listChangeListener);
-
-		wrappedList.addStaleListener(staleListener);
-	}
-
-	/**
-	 * Because this instance is immutable staleness cannot be changed.
-	 * 
-	 * @throws UnsupportedOperationException
-	 *             because this instance is unmodifiable.
-	 */
-	public void setStale(boolean stale) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return wrappedList == null ? false : wrappedList.isStale();
-	}
-
-	public synchronized void dispose() {
-		if (wrappedList != null) {
-			wrappedList.removeListChangeListener(listChangeListener);
-			wrappedList.removeStaleListener(staleListener);
-			wrappedList = null;
-		}
-		listChangeListener = null;
-		staleListener = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableSet.java
deleted file mode 100644
index ee38b25..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableSet.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208332)
- *     Brad Reynolds - initial API and implementation
- *         (through UnmodifiableObservableList.java)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.*;
-
-/**
- * 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 1.1
- */
-public class UnmodifiableObservableSet extends ObservableSet {
-	private ISetChangeListener setChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			fireSetChange(event.diff);
-		}
-	};
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent event) {
-			fireStale();
-		}
-	};
-
-	private IObservableSet wrappedSet;
-
-	/**
-	 * @param wrappedSet
-	 */
-	public UnmodifiableObservableSet(IObservableSet wrappedSet) {
-		super(wrappedSet.getRealm(), wrappedSet, wrappedSet.getElementType());
-
-		this.wrappedSet = wrappedSet;
-
-		wrappedSet.addSetChangeListener(setChangeListener);
-		wrappedSet.addStaleListener(staleListener);
-	}
-
-	/**
-	 * Because this instance is immutable staleness cannot be changed.
-	 */
-	public void setStale(boolean stale) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return wrappedSet == null ? false : wrappedSet.isStale();
-	}
-
-	public synchronized void dispose() {
-		if (wrappedSet != null) {
-			wrappedSet.removeSetChangeListener(setChangeListener);
-			wrappedSet.removeStaleListener(staleListener);
-			wrappedSet = null;
-		}
-		setChangeListener = null;
-		staleListener = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableValue.java
deleted file mode 100644
index e35712c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/UnmodifiableObservableValue.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 219909)
- *     Matthew Hall - bug 237884
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-
-/**
- * An unmodifiable wrapper class for IObservableValue instances.
- * @since 1.1
- */
-public class UnmodifiableObservableValue extends AbstractObservableValue {
-	private IObservableValue wrappedValue;
-
-	/**
-	 * Constructs an UnmodifiableObservableValue which wraps the given
-	 * observable value
-	 * 
-	 * @param wrappedValue
-	 *            the observable value to wrap in an unmodifiable instance.
-	 */
-	public UnmodifiableObservableValue(IObservableValue wrappedValue) {
-		super(wrappedValue.getRealm());
-
-		this.wrappedValue = wrappedValue;
-		wrappedValue.addValueChangeListener(new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-				fireValueChange(event.diff);
-			}
-		});
-		wrappedValue.addStaleListener(new IStaleListener() {
-			public void handleStale(StaleEvent staleEvent) {
-				fireStale();
-			}
-		});
-	}
-
-	protected Object doGetValue() {
-		return wrappedValue.getValue();
-	}
-
-	public Object getValueType() {
-		return wrappedValue.getValueType();
-	}
-
-	public boolean isStale() {
-		return wrappedValue.isStale();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableList.java
deleted file mode 100644
index c1fa461..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableList.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.list.ListDiffVisitor;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 3.3
- * 
- */
-public class ValidatedObservableList extends ObservableList {
-	private IObservableList target;
-	private IObservableValue validationStatus;
-
-	// Only true when out of sync with target due to validation status
-	private boolean stale;
-
-	// True when validaton status changes from invalid to valid.
-	private boolean computeNextDiff = false;
-
-	private boolean updatingTarget = false;
-
-	private IListChangeListener targetChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			if (updatingTarget)
-				return;
-			IStatus status = (IStatus) validationStatus.getValue();
-			if (isValid(status)) {
-				if (stale) {
-					// this.stale means we are out of sync with target,
-					// so reset wrapped list to exactly mirror target
-					stale = false;
-					updateWrappedList(new ArrayList(target));
-				} else {
-					ListDiff diff = event.diff;
-					if (computeNextDiff) {
-						diff = Diffs.computeListDiff(wrappedList, target);
-						computeNextDiff = false;
-					}
-					applyDiff(diff, wrappedList);
-					fireListChange(diff);
-				}
-			} else {
-				makeStale();
-			}
-		}
-	};
-
-	private static boolean isValid(IStatus status) {
-		return status.isOK() || status.matches(IStatus.INFO | IStatus.WARNING);
-	}
-
-	private IStaleListener targetStaleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	private IValueChangeListener validationStatusChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			IStatus oldStatus = (IStatus) event.diff.getOldValue();
-			IStatus newStatus = (IStatus) event.diff.getNewValue();
-			if (stale && !isValid(oldStatus) && isValid(newStatus)) {
-				// this.stale means we are out of sync with target,
-				// reset wrapped list to exactly mirror target
-				stale = false;
-				updateWrappedList(new ArrayList(target));
-
-				// If the validation status becomes valid because of a change in
-				// target observable
-				computeNextDiff = true;
-			}
-		}
-	};
-
-	/**
-	 * @param target
-	 * @param validationStatus
-	 */
-	public ValidatedObservableList(final IObservableList target,
-			final IObservableValue validationStatus) {
-		super(target.getRealm(), new ArrayList(target), target.getElementType());
-		Assert.isNotNull(validationStatus,
-				"Validation status observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(target.getRealm().equals(validationStatus.getRealm()),
-						"Target and validation status observables must be on the same realm"); //$NON-NLS-1$
-		this.target = target;
-		this.validationStatus = validationStatus;
-		target.addListChangeListener(targetChangeListener);
-		target.addStaleListener(targetStaleListener);
-		validationStatus.addValueChangeListener(validationStatusChangeListener);
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	private void updateTargetList(ListDiff diff) {
-		updatingTarget = true;
-		try {
-			if (stale) {
-				stale = false;
-				applyDiff(Diffs.computeListDiff(target, wrappedList), target);
-			} else {
-				applyDiff(diff, target);
-			}
-		} finally {
-			updatingTarget = false;
-		}
-	}
-
-	private void applyDiff(ListDiff diff, final List list) {
-		diff.accept(new ListDiffVisitor() {
-			public void handleAdd(int index, Object element) {
-				list.add(index, element);
-			}
-
-			public void handleRemove(int index, Object element) {
-				list.remove(index);
-			}
-
-			public void handleReplace(int index, Object oldElement,
-					Object newElement) {
-				list.set(index, newElement);
-			}
-		});
-	}
-
-	public boolean isStale() {
-		ObservableTracker.getterCalled(this);
-		return stale || target.isStale();
-	}
-
-	public void add(int index, Object element) {
-		checkRealm();
-		wrappedList.add(index, element);
-		ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				true, element));
-		updateTargetList(diff);
-		fireListChange(diff);
-	}
-
-	public boolean add(Object o) {
-		checkRealm();
-		add(wrappedList.size(), o);
-		return true;
-	}
-
-	public boolean addAll(Collection c) {
-		checkRealm();
-		return addAll(wrappedList.size(), c);
-	}
-
-	public boolean addAll(int index, Collection c) {
-		checkRealm();
-		Object[] elements = c.toArray();
-		ListDiffEntry[] entries = new ListDiffEntry[elements.length];
-		for (int i = 0; i < elements.length; i++) {
-			wrappedList.add(index + i, elements[i]);
-			entries[i] = Diffs
-					.createListDiffEntry(index + i, true, elements[i]);
-		}
-		ListDiff diff = Diffs.createListDiff(entries);
-		updateTargetList(diff);
-		fireListChange(diff);
-		return true;
-	}
-
-	public void clear() {
-		checkRealm();
-		if (isEmpty())
-			return;
-		ListDiff diff = Diffs.computeListDiff(wrappedList,
-				Collections.EMPTY_LIST);
-		wrappedList.clear();
-		updateTargetList(diff);
-		fireListChange(diff);
-	}
-
-	public Iterator iterator() {
-		getterCalled();
-		final ListIterator wrappedIterator = wrappedList.listIterator();
-		return new Iterator() {
-			Object last = null;
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				return last = wrappedIterator.next();
-			}
-
-			public void remove() {
-				int index = wrappedIterator.previousIndex();
-				wrappedIterator.remove();
-				ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-						index, false, last));
-				updateTargetList(diff);
-				fireListChange(diff);
-			}
-		};
-	}
-
-	public ListIterator listIterator() {
-		return listIterator(0);
-	}
-
-	public ListIterator listIterator(int index) {
-		getterCalled();
-		final ListIterator wrappedIterator = wrappedList.listIterator(index);
-		return new ListIterator() {
-			int lastIndex = -1;
-			Object last = null;
-
-			public void add(Object o) {
-				wrappedIterator.add(o);
-				lastIndex = previousIndex();
-				ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-						lastIndex, true, o));
-				updateTargetList(diff);
-				fireListChange(diff);
-			}
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public boolean hasPrevious() {
-				return wrappedIterator.hasPrevious();
-			}
-
-			public Object next() {
-				last = wrappedIterator.next();
-				lastIndex = previousIndex();
-				return last;
-			}
-
-			public int nextIndex() {
-				return wrappedIterator.nextIndex();
-			}
-
-			public Object previous() {
-				last = wrappedIterator.previous();
-				lastIndex = nextIndex();
-				return last;
-			}
-
-			public int previousIndex() {
-				return wrappedIterator.previousIndex();
-			}
-
-			public void remove() {
-				wrappedIterator.remove();
-				ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-						lastIndex, false, last));
-				lastIndex = -1;
-				updateTargetList(diff);
-				fireListChange(diff);
-			}
-
-			public void set(Object o) {
-				wrappedIterator.set(o);
-				ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-						lastIndex, false, last), Diffs.createListDiffEntry(
-						lastIndex, true, o));
-				last = o;
-				updateTargetList(diff);
-				fireListChange(diff);
-			}
-		};
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		int size = wrappedList.size();
-		if (oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (oldIndex == newIndex)
-			return wrappedList.get(oldIndex);
-		Object element = wrappedList.remove(oldIndex);
-		wrappedList.add(newIndex, element);
-		ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(
-				oldIndex, false, element), Diffs.createListDiffEntry(newIndex,
-				true, element));
-		updateTargetList(diff);
-		fireListChange(diff);
-		return element;
-	}
-
-	public Object remove(int index) {
-		checkRealm();
-		Object element = wrappedList.remove(index);
-		ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, element));
-		updateTargetList(diff);
-		fireListChange(diff);
-		return element;
-	}
-
-	public boolean remove(Object o) {
-		checkRealm();
-		int index = wrappedList.indexOf(o);
-		if (index == -1)
-			return false;
-		remove(index);
-		return true;
-	}
-
-	public boolean removeAll(Collection c) {
-		checkRealm();
-		List list = new ArrayList(wrappedList);
-		boolean changed = list.removeAll(c);
-		if (changed) {
-			ListDiff diff = Diffs.computeListDiff(wrappedList, list);
-			wrappedList = list;
-			updateTargetList(diff);
-			fireListChange(diff);
-		}
-		return changed;
-	}
-
-	public boolean retainAll(Collection c) {
-		checkRealm();
-		List list = new ArrayList(wrappedList);
-		boolean changed = list.retainAll(c);
-		if (changed) {
-			ListDiff diff = Diffs.computeListDiff(wrappedList, list);
-			wrappedList = list;
-			updateTargetList(diff);
-			fireListChange(diff);
-		}
-		return changed;
-	}
-
-	public Object set(int index, Object element) {
-		checkRealm();
-		Object oldElement = wrappedList.set(index, element);
-		ListDiff diff = Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement), Diffs.createListDiffEntry(index, true,
-				element));
-		updateTargetList(diff);
-		fireListChange(diff);
-		return oldElement;
-	}
-
-	public synchronized void dispose() {
-		target.removeListChangeListener(targetChangeListener);
-		target.removeStaleListener(targetStaleListener);
-		validationStatus
-				.removeValueChangeListener(validationStatusChangeListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableMap.java
deleted file mode 100644
index 1261f69..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableMap.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.observable.map.ObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 3.3
- * 
- */
-public class ValidatedObservableMap extends ObservableMap {
-	private IObservableMap target;
-	private IObservableValue validationStatus;
-
-	// Only true when out of sync with target due to validation status
-	private boolean stale;
-
-	// True when validation status changes from invalid to valid.
-	private boolean computeNextDiff = false;
-
-	private boolean updatingTarget = false;
-
-	private IMapChangeListener targetChangeListener = new IMapChangeListener() {
-		public void handleMapChange(MapChangeEvent event) {
-			if (updatingTarget)
-				return;
-			IStatus status = (IStatus) validationStatus.getValue();
-			if (isValid(status)) {
-				if (stale) {
-					// this.stale means we are out of sync with target,
-					// so reset wrapped list to exactly mirror target
-					stale = false;
-					updateWrappedMap(new HashMap(target));
-				} else {
-					MapDiff diff = event.diff;
-					if (computeNextDiff) {
-						diff = Diffs.computeMapDiff(wrappedMap, target);
-						computeNextDiff = false;
-					}
-					applyDiff(diff, wrappedMap);
-					fireMapChange(diff);
-				}
-			} else {
-				makeStale();
-			}
-		}
-	};
-
-	private IStaleListener targetStaleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	private IValueChangeListener validationStatusChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			IStatus oldStatus = (IStatus) event.diff.getOldValue();
-			IStatus newStatus = (IStatus) event.diff.getNewValue();
-			if (stale && !isValid(oldStatus) && isValid(newStatus)) {
-				// this.stale means we are out of sync with target,
-				// reset wrapped map to exactly mirror target
-				stale = false;
-				updateWrappedMap(new HashMap(target));
-
-				// If the validation status becomes valid because of a change in
-				// target observable
-				computeNextDiff = true;
-			}
-		}
-	};
-
-	/**
-	 * @param target
-	 * @param validationStatus
-	 */
-	public ValidatedObservableMap(final IObservableMap target,
-			final IObservableValue validationStatus) {
-		super(target.getRealm(), new HashMap(target));
-		Assert.isNotNull(validationStatus,
-				"Validation status observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(target.getRealm().equals(validationStatus.getRealm()),
-						"Target and validation status observables must be on the same realm"); //$NON-NLS-1$
-		this.target = target;
-		this.validationStatus = validationStatus;
-		target.addMapChangeListener(targetChangeListener);
-		target.addStaleListener(targetStaleListener);
-		validationStatus.addValueChangeListener(validationStatusChangeListener);
-	}
-
-	private void updateWrappedMap(Map newMap) {
-		Map oldMap = wrappedMap;
-		MapDiff diff = Diffs.computeMapDiff(oldMap, newMap);
-		wrappedMap = newMap;
-		fireMapChange(diff);
-	}
-
-	private static boolean isValid(IStatus status) {
-		return status.isOK() || status.matches(IStatus.INFO | IStatus.WARNING);
-	}
-
-	private void applyDiff(MapDiff diff, Map map) {
-		for (Iterator iterator = diff.getRemovedKeys().iterator(); iterator
-				.hasNext();)
-			map.remove(iterator.next());
-		for (Iterator iterator = diff.getChangedKeys().iterator(); iterator
-				.hasNext();) {
-			Object key = iterator.next();
-			map.put(key, diff.getNewValue(key));
-		}
-		for (Iterator iterator = diff.getAddedKeys().iterator(); iterator
-				.hasNext();) {
-			Object key = iterator.next();
-			map.put(key, diff.getNewValue(key));
-		}
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	private void updateTargetMap(MapDiff diff) {
-		updatingTarget = true;
-		try {
-			if (stale) {
-				stale = false;
-				applyDiff(Diffs.computeMapDiff(target, wrappedMap), target);
-			} else {
-				applyDiff(diff, target);
-			}
-		} finally {
-			updatingTarget = false;
-		}
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return stale || target.isStale();
-	}
-
-	public void clear() {
-		checkRealm();
-		if (isEmpty())
-			return;
-		MapDiff diff = Diffs.computeMapDiff(wrappedMap, Collections.EMPTY_MAP);
-		wrappedMap = new HashMap();
-		updateTargetMap(diff);
-		fireMapChange(diff);
-	}
-
-	public Object put(Object key, Object value) {
-		checkRealm();
-		MapDiff diff;
-		Object oldValue;
-		if (wrappedMap.containsKey(key)) {
-			oldValue = wrappedMap.put(key, value);
-			if (wrappedMap.containsKey(key)) { // Changed
-				diff = Diffs.createMapDiffSingleChange(key, oldValue, value);
-			} else { // Removed
-				diff = Diffs.createMapDiffSingleRemove(key, oldValue);
-			}
-		} else { // Added
-			oldValue = wrappedMap.put(key, value);
-			diff = Diffs.createMapDiffSingleAdd(key, value);
-		}
-		updateTargetMap(diff);
-		fireMapChange(diff);
-		return oldValue;
-	}
-
-	public void putAll(Map m) {
-		checkRealm();
-		Map map = new HashMap(wrappedMap);
-		map.putAll(m);
-		MapDiff diff = Diffs.computeMapDiff(wrappedMap, map);
-		wrappedMap = map;
-		updateTargetMap(diff);
-		fireMapChange(diff);
-	}
-
-	public Object remove(Object key) {
-		checkRealm();
-		if (!wrappedMap.containsKey(key))
-			return null;
-		Object oldValue = wrappedMap.remove(key);
-		MapDiff diff = Diffs.createMapDiffSingleRemove(key, oldValue);
-		updateTargetMap(diff);
-		fireMapChange(diff);
-		return oldValue;
-	}
-
-	public synchronized void dispose() {
-		target.removeMapChangeListener(targetChangeListener);
-		target.removeStaleListener(targetStaleListener);
-		validationStatus
-				.removeValueChangeListener(validationStatusChangeListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableSet.java
deleted file mode 100644
index bb7c6e6..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableSet.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 3.3
- * 
- */
-public class ValidatedObservableSet extends ObservableSet {
-	private IObservableSet target;
-	private IObservableValue validationStatus;
-
-	// Only true when out of sync with target due to validation status
-	private boolean stale;
-
-	// True when validation status changes from invalid to valid.
-	private boolean computeNextDiff = false;
-
-	private boolean updatingTarget = false;
-
-	private ISetChangeListener targetChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			if (updatingTarget)
-				return;
-			IStatus status = (IStatus) validationStatus.getValue();
-			if (isValid(status)) {
-				if (stale) {
-					// this.stale means we are out of sync with target,
-					// so reset wrapped list to exactly mirror target
-					stale = false;
-					updateWrappedSet(new HashSet(target));
-				} else {
-					SetDiff diff = event.diff;
-					if (computeNextDiff) {
-						diff = Diffs.computeSetDiff(wrappedSet, target);
-						computeNextDiff = false;
-					}
-					applyDiff(diff, wrappedSet);
-					fireSetChange(diff);
-				}
-			} else {
-				makeStale();
-			}
-		}
-	};
-
-	private IStaleListener targetStaleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	private IValueChangeListener validationStatusChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			IStatus oldStatus = (IStatus) event.diff.getOldValue();
-			IStatus newStatus = (IStatus) event.diff.getNewValue();
-			if (stale && !isValid(oldStatus) && isValid(newStatus)) {
-				// this.stale means we are out of sync with target,
-				// reset wrapped set to exactly mirror target
-				stale = false;
-				updateWrappedSet(new HashSet(target));
-
-				// If the validation status becomes valid because of a change in
-				// target observable
-				computeNextDiff = true;
-			}
-		}
-	};
-
-	/**
-	 * @param target
-	 * @param validationStatus
-	 */
-	public ValidatedObservableSet(final IObservableSet target,
-			final IObservableValue validationStatus) {
-		super(target.getRealm(), new HashSet(target), target.getElementType());
-		Assert.isNotNull(validationStatus,
-				"Validation status observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(target.getRealm().equals(validationStatus.getRealm()),
-						"Target and validation status observables must be on the same realm"); //$NON-NLS-1$
-		this.target = target;
-		this.validationStatus = validationStatus;
-		target.addSetChangeListener(targetChangeListener);
-		target.addStaleListener(targetStaleListener);
-		validationStatus.addValueChangeListener(validationStatusChangeListener);
-	}
-
-	private void updateWrappedSet(Set newSet) {
-		Set oldSet = wrappedSet;
-		SetDiff diff = Diffs.computeSetDiff(oldSet, newSet);
-		wrappedSet = newSet;
-		fireSetChange(diff);
-	}
-
-	private static boolean isValid(IStatus status) {
-		return status.isOK() || status.matches(IStatus.INFO | IStatus.WARNING);
-	}
-
-	private void applyDiff(SetDiff diff, Set set) {
-		for (Iterator iterator = diff.getRemovals().iterator(); iterator
-				.hasNext();) {
-			set.remove(iterator.next());
-		}
-		for (Iterator iterator = diff.getAdditions().iterator(); iterator
-				.hasNext();) {
-			set.add(iterator.next());
-		}
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	private void updateTargetSet(SetDiff diff) {
-		updatingTarget = true;
-		try {
-			if (stale) {
-				stale = false;
-				applyDiff(Diffs.computeSetDiff(target, wrappedSet), target);
-			} else {
-				applyDiff(diff, target);
-			}
-		} finally {
-			updatingTarget = false;
-		}
-	}
-
-	public boolean isStale() {
-		getterCalled();
-		return stale || target.isStale();
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		boolean changed = wrappedSet.add(o);
-		if (changed) {
-			SetDiff diff = Diffs.createSetDiff(Collections.singleton(o),
-					Collections.EMPTY_SET);
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		HashSet set = new HashSet(wrappedSet);
-		boolean changed = set.addAll(c);
-		if (changed) {
-			SetDiff diff = Diffs.computeSetDiff(wrappedSet, set);
-			wrappedSet = set;
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public void clear() {
-		getterCalled();
-		if (isEmpty())
-			return;
-		SetDiff diff = Diffs.createSetDiff(Collections.EMPTY_SET, wrappedSet);
-		wrappedSet = new HashSet();
-		updateTargetSet(diff);
-		fireSetChange(diff);
-	}
-
-	public Iterator iterator() {
-		getterCalled();
-		final Iterator wrappedIterator = wrappedSet.iterator();
-		return new Iterator() {
-			Object last = null;
-
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				return last = wrappedIterator.next();
-			}
-
-			public void remove() {
-				wrappedIterator.remove();
-				SetDiff diff = Diffs.createSetDiff(Collections.EMPTY_SET,
-						Collections.singleton(last));
-				updateTargetSet(diff);
-				fireSetChange(diff);
-			}
-		};
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		boolean changed = wrappedSet.remove(o);
-		if (changed) {
-			SetDiff diff = Diffs.createSetDiff(Collections.EMPTY_SET,
-					Collections.singleton(o));
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		Set set = new HashSet(wrappedSet);
-		boolean changed = set.removeAll(c);
-		if (changed) {
-			SetDiff diff = Diffs.computeSetDiff(wrappedSet, set);
-			wrappedSet = set;
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-		Set set = new HashSet(wrappedSet);
-		boolean changed = set.retainAll(c);
-		if (changed) {
-			SetDiff diff = Diffs.computeSetDiff(wrappedSet, set);
-			wrappedSet = set;
-			updateTargetSet(diff);
-			fireSetChange(diff);
-		}
-		return changed;
-	}
-
-	public synchronized void dispose() {
-		target.removeSetChangeListener(targetChangeListener);
-		target.removeStaleListener(targetStaleListener);
-		validationStatus
-				.removeValueChangeListener(validationStatusChangeListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableValue.java
deleted file mode 100644
index 1164f53..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/ValidatedObservableValue.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.IVetoableValue;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.observable.value.ValueChangingEvent;
-import org.eclipse.core.internal.databinding.Util;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * An {@link IObservableValue} wrapper that stays in sync with the target
- * observable as long as a given validation status is valid.
- * <ul>
- * <li>While status is valid, ValidatedObservableValue stays in sync with its
- * target.
- * <li>When status becomes invalid, ValidatedObservableValue will retain the
- * last valid value of its target.
- * <li>While status is invalid, changes in the target observable cause
- * ValidatedObservableValue to fire a stale event, to indicate that changes are
- * pending.
- * <li>When status becomes valid, pending value changes are performed (if any)
- * and synchronization resumes.
- * </ul>
- * <p>
- * Note:
- * <ul>
- * <li>By default, a status is valid if its
- * {@link IStatus#getSeverity() severity} is {@link IStatus#OK OK},
- * {@link IStatus#INFO INFO}, or {@link IStatus#WARNING WARNING}
- * <li>Calls to {@link #setValue(Object)} on the validated observable changes
- * the value regardless of the validation status.
- * <li>This class will not forward {@link ValueChangingEvent} events from a
- * wrapped {@link IVetoableValue}.
- * </ul>
- * 
- * @since 1.2
- */
-public class ValidatedObservableValue extends AbstractObservableValue {
-	private IObservableValue target;
-	private IObservableValue validationStatus;
-
-	private Object cachedValue;
-	private boolean stale;
-	private boolean updatingTarget = false;
-
-	private IValueChangeListener targetChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			if (updatingTarget)
-				return;
-			IStatus status = (IStatus) validationStatus.getValue();
-			if (isValid(status))
-				internalSetValue(event.diff.getNewValue(), false);
-			else
-				makeStale();
-		}
-	};
-
-	private static boolean isValid(IStatus status) {
-		return status.isOK() || status.matches(IStatus.INFO | IStatus.WARNING);
-	}
-
-	private IStaleListener targetStaleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			fireStale();
-		}
-	};
-
-	private IValueChangeListener validationStatusChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			IStatus oldStatus = (IStatus) event.diff.getOldValue();
-			IStatus newStatus = (IStatus) event.diff.getNewValue();
-			if (stale && !isValid(oldStatus) && isValid(newStatus)) {
-				internalSetValue(target.getValue(), false);
-			}
-		}
-	};
-
-	/**
-	 * Constructs an observable value
-	 * 
-	 * @param target
-	 *            the observable value to be wrapped
-	 * @param validationStatus
-	 *            an observable value of type {@link IStatus}.class which
-	 *            contains the current validation status
-	 */
-	public ValidatedObservableValue(IObservableValue target,
-			IObservableValue validationStatus) {
-		super(target.getRealm());
-		Assert.isNotNull(validationStatus,
-				"Validation status observable cannot be null"); //$NON-NLS-1$
-		Assert
-				.isTrue(target.getRealm().equals(validationStatus.getRealm()),
-						"Target and validation status observables must be on the same realm"); //$NON-NLS-1$
-		this.target = target;
-		this.validationStatus = validationStatus;
-		this.cachedValue = target.getValue();
-
-		target.addValueChangeListener(targetChangeListener);
-		target.addStaleListener(targetStaleListener);
-		validationStatus.addValueChangeListener(validationStatusChangeListener);
-	}
-
-	private void makeStale() {
-		if (!stale) {
-			stale = true;
-			fireStale();
-		}
-	}
-
-	public boolean isStale() {
-		ObservableTracker.getterCalled(this);
-		return stale || target.isStale();
-	}
-
-	protected Object doGetValue() {
-		return cachedValue;
-	}
-
-	private void internalSetValue(Object value, boolean updateTarget) {
-		Object oldValue = cachedValue;
-		cachedValue = value;
-		if (updateTarget) {
-			updatingTarget = true;
-			try {
-				target.setValue(value);
-				cachedValue = target.getValue();
-			} finally {
-				updatingTarget = false;
-			}
-		}
-		stale = false;
-		if (!Util.equals(oldValue, cachedValue))
-			fireValueChange(Diffs.createValueDiff(oldValue, cachedValue));
-	}
-
-	protected void doSetValue(Object value) {
-		internalSetValue(value, true);
-	}
-
-	public Object getValueType() {
-		return target.getValueType();
-	}
-
-	public synchronized void dispose() {
-		target.removeValueChangeListener(targetChangeListener);
-		target.removeStaleListener(targetStaleListener);
-		validationStatus
-				.removeValueChangeListener(validationStatusChangeListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableList.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableList.java
deleted file mode 100755
index 1baec56..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableList.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bug 221351
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.masterdetail;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @since 3.2
- * 
- */
-
-public class DetailObservableList extends ObservableList implements IObserving {
-
-	private boolean updating = false;
-
-	private IListChangeListener innerChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			if (!updating) {
-				fireListChange(event.diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private IObservableList innerObservableList;
-
-	private IObservableFactory factory;
-
-	private IObservableValue outerObservableValue;
-
-	private Object detailType;
-
-	/**
-	 * @param factory
-	 * @param outerObservableValue
-	 * @param detailType
-	 */
-	public DetailObservableList(IObservableFactory factory,
-			IObservableValue outerObservableValue, Object detailType) {
-		super(outerObservableValue.getRealm(), Collections.EMPTY_LIST, detailType);
-		this.factory = factory;
-		this.outerObservableValue = outerObservableValue;
-		this.detailType = detailType;
-		updateInnerObservableList(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			List oldList = new ArrayList(wrappedList);
-			updateInnerObservableList(outerObservableValue);
-			fireListChange(Diffs.computeListDiff(oldList, wrappedList));
-		}
-	};
-
-	private void updateInnerObservableList(IObservableValue outerObservableValue) {
-		if (innerObservableList != null) {
-			innerObservableList.removeListChangeListener(innerChangeListener);
-			innerObservableList.dispose();
-		}
-		currentOuterValue = outerObservableValue.getValue();
-		if (currentOuterValue == null) {
-			innerObservableList = null;
-			wrappedList = Collections.EMPTY_LIST;
-		} else {
-			this.innerObservableList = (IObservableList) factory
-					.createObservable(currentOuterValue);
-			wrappedList = innerObservableList;
-
-			if (detailType != null) {
-				Object innerValueType = innerObservableList.getElementType();
-				Assert.isTrue(getElementType().equals(innerValueType),
-						"Cannot change value type in a nested observable list"); //$NON-NLS-1$
-			}
-			innerObservableList.addListChangeListener(innerChangeListener);
-		}
-	}
-
-	public boolean add(Object o) {
-		return wrappedList.add(o);
-	}
-
-	public void add(int index, Object element) {
-		wrappedList.add(index, element);
-	}
-
-	public boolean remove(Object o) {
-		return wrappedList.remove(o);
-	}
-
-	public Object set(int index, Object element) {
-		return wrappedList.set(index, element);
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		if (innerObservableList != null)
-			return innerObservableList.move(oldIndex, newIndex);
-		return super.move(oldIndex, newIndex);
-	}
-
-	public Object remove(int index) {
-		return wrappedList.remove(index);
-	}
-
-	public boolean addAll(Collection c) {
-		return wrappedList.addAll(c);
-	}
-
-	public boolean addAll(int index, Collection c) {
-		return wrappedList.addAll(index, c);
-	}
-
-	public boolean removeAll(Collection c) {
-		return wrappedList.removeAll(c);
-	}
-
-	public boolean retainAll(Collection c) {
-		return wrappedList.retainAll(c);
-	}
-
-	public void clear() {
-		wrappedList.clear();
-	}
-	
-	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;
-	}
-
-	public Object getObserved() {
-		if (innerObservableList instanceof IObserving) {
-			return ((IObserving) innerObservableList).getObserved();
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableMap.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableMap.java
deleted file mode 100644
index a57148c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableMap.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 221704)
- *     Matthew Hall - bug 223114
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.masterdetail;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.ObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-
-/**
- * @since 1.1
- * 
- */
-public class DetailObservableMap extends ObservableMap {
-	private boolean updating = false;
-
-	private IObservableValue master;
-	private IObservableFactory detailFactory;
-
-	private IObservableMap detailMap;
-
-	private IValueChangeListener masterChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			Map oldMap = new HashMap(wrappedMap);
-			updateDetailMap();
-			fireMapChange(Diffs.computeMapDiff(oldMap, wrappedMap));
-		}
-	};
-
-	private IMapChangeListener detailChangeListener = new IMapChangeListener() {
-		public void handleMapChange(MapChangeEvent event) {
-			if (!updating) {
-				fireMapChange(event.diff);
-			}
-		}
-	};
-
-	/**
-	 * Constructs a new DetailObservableMap
-	 * 
-	 * @param detailFactory
-	 *            observable factory that creates IObservableMap instances given
-	 *            the current value of master observable value
-	 * @param master
-	 * 
-	 */
-	public DetailObservableMap(IObservableFactory detailFactory,
-			IObservableValue master) {
-		super(master.getRealm(), Collections.EMPTY_MAP);
-		this.master = master;
-		this.detailFactory = detailFactory;
-
-		updateDetailMap();
-		master.addValueChangeListener(masterChangeListener);
-	}
-
-	private void updateDetailMap() {
-		Object masterValue = master.getValue();
-		if (detailMap != null) {
-			detailMap.removeMapChangeListener(detailChangeListener);
-			detailMap.dispose();
-		}
-
-		if (masterValue == null) {
-			detailMap = null;
-			wrappedMap = Collections.EMPTY_MAP;
-		} else {
-			detailMap = (IObservableMap) detailFactory
-					.createObservable(masterValue);
-			wrappedMap = detailMap;
-			detailMap.addMapChangeListener(detailChangeListener);
-		}
-	}
-
-	public Object put(Object key, Object value) {
-		return detailMap.put(key, value);
-	}
-
-	public void putAll(Map map) {
-		detailMap.putAll(map);
-	}
-
-	public Object remove(Object key) {
-		return detailMap.remove(key);
-	}
-
-	public void clear() {
-		detailMap.clear();
-	}
-
-	public synchronized void dispose() {
-		if (master != null) {
-			master.removeValueChangeListener(masterChangeListener);
-			master = null;
-			masterChangeListener = null;
-		}
-		detailFactory = null;
-		if (detailMap != null) {
-			detailMap.removeMapChangeListener(detailChangeListener);
-			detailMap.dispose();
-			detailMap = null;
-		}
-		detailChangeListener = null;
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableSet.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableSet.java
deleted file mode 100755
index dc0fc46..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableSet.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 221351
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.masterdetail;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @since 3.2
- * 
- */
-public class DetailObservableSet extends ObservableSet implements IObserving {
-
-	private boolean updating = false;
-
-	private ISetChangeListener innerChangeListener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			if (!updating) {
-				fireSetChange(event.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(outerObservableValue.getRealm(), Collections.EMPTY_SET,
-				detailType);
-		this.factory = factory;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableSet(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			Set oldSet = new HashSet(wrappedSet);
-			updateInnerObservableSet(outerObservableValue);
-			fireSetChange(Diffs.computeSetDiff(oldSet, wrappedSet));
-		}
-	};
-
-	private void updateInnerObservableSet(IObservableValue outerObservableValue) {
-		currentOuterValue = outerObservableValue.getValue();
-		if (innerObservableSet != null) {
-			innerObservableSet.removeSetChangeListener(innerChangeListener);
-			innerObservableSet.dispose();
-		}
-		if (currentOuterValue == null) {
-			innerObservableSet = null;
-			wrappedSet = Collections.EMPTY_SET;
-		} else {
-			this.innerObservableSet = (IObservableSet) factory
-					.createObservable(currentOuterValue);
-			wrappedSet = innerObservableSet;
-
-			if (elementType != null) {
-				Object innerValueType = innerObservableSet.getElementType();
-
-				Assert.isTrue(elementType.equals(innerValueType),
-						"Cannot change value type in a nested observable set"); //$NON-NLS-1$
-			}
-
-			innerObservableSet.addSetChangeListener(innerChangeListener);
-		}
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		return wrappedSet.add(o);
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		return wrappedSet.remove(o);
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		return wrappedSet.addAll(c);
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		return wrappedSet.removeAll(c);
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-		return wrappedSet.retainAll(c);
-	}
-
-	public void clear() {
-		getterCalled();
-		wrappedSet.clear();
-	}
-
-	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;
-	}
-
-	public Object getObserved() {
-		if (innerObservableSet instanceof IObserving) {
-			return ((IObserving) innerObservableSet).getObserved();
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.java
deleted file mode 100755
index c1b1654..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/masterdetail/DetailObservableValue.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 147515
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.masterdetail;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * @since 1.0
- * 
- */
-public class DetailObservableValue extends AbstractObservableValue implements IObserving {
-
-	private boolean updating = false;
-
-	private IValueChangeListener innerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			if (!updating) {
-				fireValueChange(event.diff);
-			}
-		}
-	};
-
-	private Object currentOuterValue;
-
-	private IObservableValue innerObservableValue;
-
-	private Object detailType;
-
-	private IObservableValue outerObservableValue;
-
-	private IObservableFactory factory;
-
-	/**
-	 * @param outerObservableValue
-	 * @param factory
-	 * @param detailType
-	 */
-	public DetailObservableValue(IObservableValue outerObservableValue,
-			IObservableFactory factory, Object detailType) {
-		super(outerObservableValue.getRealm());
-		this.factory = factory;
-		this.detailType = detailType;
-		this.outerObservableValue = outerObservableValue;
-		updateInnerObservableValue(outerObservableValue);
-
-		outerObservableValue.addValueChangeListener(outerChangeListener);
-	}
-
-	IValueChangeListener outerChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			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) {
-				Assert
-						.isTrue(
-								detailType.equals(innerValueType),
-								"Cannot change value type in a nested observable value, from " + innerValueType + " to " + detailType); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			innerObservableValue.addValueChangeListener(innerChangeListener);
-		}
-	}
-
-	public void doSetValue(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;
-	}
-
-	public Object getObserved() {
-		if (innerObservableValue instanceof IObserving) {
-			return ((IObserving)innerObservableValue).getObserved();
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/AbstractObservableTree.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/AbstractObservableTree.java
deleted file mode 100644
index e1226c9..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/AbstractObservableTree.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164134
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 3.3
- * 
- */
-public abstract class AbstractObservableTree extends AbstractObservable
-		implements IObservableTree {
-
-	private boolean stale;
-
-	private ListenerList treeListeners = new ListenerList(ListenerList.IDENTITY);
-
-	/**
-	 * @param realm
-	 */
-	public AbstractObservableTree(Realm realm) {
-		super(realm);
-	}
-
-	public void addChild(TreePath parentPath, Object childElement) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void addTreeChangeListener(ITreeChangeListener listener) {
-		treeListeners.add(listener);
-	}
-
-	public int getChildCount(TreePath parentPath) {
-		return getChildren(parentPath).length;
-	}
-
-	public boolean hasChildren(TreePath parentPath) {
-		return getChildCount(parentPath) > 0;
-	}
-
-	public void insertChild(TreePath parentPath, int index, Object childElement) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean isLazy() {
-		return false;
-	}
-
-	public boolean isOrdered() {
-		return false;
-	}
-
-	public void removeChild(TreePath parentPath, Object childElement) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeChild(TreePath parentPath, int index) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeTreeChangeListener(ITreeChangeListener listener) {
-		treeListeners.remove(listener);
-	}
-
-	public void setChildCount(TreePath parentPath, int count) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void setChildren(TreePath parentPath, Object[] children) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void updateChildren(IChildrenUpdate update) {
-		TreePath parent = update.getParent();
-		Object[] children = getChildren(parent);
-		for (int i = 0; i < update.getLength(); i++) {
-			int targetIndex = update.getOffset() + i;
-			if (targetIndex < children.length) {
-				update.setChild(children[targetIndex], targetIndex);
-			} else {
-				update
-						.setStatus(new Status(
-								IStatus.WARNING,
-								Policy.JFACE_DATABINDING, 
-								IStatus.OK,
-								BindingMessages
-										.getString(BindingMessages.INDEX_OUT_OF_RANGE), 
-										null));
-			}
-		}
-		update.done();
-	}
-
-	public void updateChildrenCount(IChildrenCountUpdate update) {
-		TreePath[] parents = update.getParents();
-		for (int i = 0; i < parents.length; i++) {
-			update.setChildCount(parents[i], getChildCount(parents[i]));
-		}
-		update.done();
-	}
-
-	public void updateHasChildren(IHasChildrenUpdate update) {
-		TreePath[] parents = update.getElements();
-		for (int i = 0; i < parents.length; i++) {
-			update.setHasChilren(parents[i], hasChildren(parents[i]));
-		}
-		update.done();
-	}
-
-	public boolean isStale() {
-		return stale;
-	}
-
-	/**
-	 * @param stale
-	 */
-	public void setStale(boolean stale) {
-		this.stale = stale;
-		if (stale) {
-			fireStale();
-		}
-	}
-
-	protected void fireTreeChange(TreeDiff diff) {
-		// fire general change event first
-		fireChange();
-
-		Object[] listeners = treeListeners.getListeners();
-		TreeChangeEvent event = new TreeChangeEvent(this, diff);
-		for (int i = 0; i < listeners.length; i++) {
-			((ITreeChangeListener) listeners[i]).handleTreeChange(event);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenCountUpdate.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenCountUpdate.java
deleted file mode 100644
index 331176a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenCountUpdate.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * Request monitor used to collect the number of children for an element in a lazy
- * observable tree.
- * 
- * @since 3.3
- */
-public interface IChildrenCountUpdate extends IViewerUpdate {
-
-	/**
-	 * Returns the parent elements that children counts have been requested for
-	 * as tree paths. An empty path identifies the root element.
-	 * 
-	 * @return parent elements as tree paths
-	 */
-	public TreePath[] getParents();
-
-	/**
-	 * Sets the number of children for the given parent.
-	 * 
-	 * @param parentPath
-	 *            parent element or empty path for root element
-	 * @param numChildren
-	 *            number of children
-	 */
-	public void setChildCount(TreePath parentPath, int numChildren);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenUpdate.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenUpdate.java
deleted file mode 100644
index 8d4b961..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IChildrenUpdate.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * Context sensitive children update request for a parent and subrange of its
- * children.
- *  
- * @since 3.3
- */
-public interface IChildrenUpdate extends IViewerUpdate {
-
-	/**
-	 * Returns the parent element that children are being requested for
-	 * as a tree path. An empty path identifies the root element.
-	 * 
-	 * @return parent element as a tree path
-	 */
-	public TreePath getParent();
-	
-	/**
-	 * Returns the offset at which children have been requested for. This is
-	 * the index of the first child being requested.
-	 * 
-	 * @return offset at which children have been requested for
-	 */
-	public int getOffset();
-	
-	/**
-	 * Returns the number of children requested.
-	 * 
-	 * @return number of children requested
-	 */
-	public int getLength();
-	
-	/**
-	 * Sets the child for this request's parent at the given offset.
-	 * 
-	 * @param child child
-	 * @param index child offset
-	 * 
-	 * TODO: what to do with <code>null</code>
-	 */
-	public void setChild(Object child, int index); 	
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IHasChildrenUpdate.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IHasChildrenUpdate.java
deleted file mode 100644
index f3eadd6..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IHasChildrenUpdate.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * Context sensitive update request for whether elements have children.
- * 
- * @since 3.3
- */
-public interface IHasChildrenUpdate extends IViewerUpdate {
-
-	/**
-	 * The elements this request is for specified as tree paths. An empty path
-	 * identifies the root element.
-	 * 
-	 * @return elements as tree paths
-	 */
-	public TreePath[] getElements();
-
-	/**
-	 * Sets whether the given element has children.
-	 * 
-	 * @param element
-	 *            tree path to element, or empty for root element
-	 * @param hasChildren
-	 *            whether it has children
-	 */
-	public void setHasChilren(TreePath element, boolean hasChildren);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IObservableTree.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IObservableTree.java
deleted file mode 100644
index a877452..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IObservableTree.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * 
- * A tree whose changes can be tracked by tree change listeners. If the tree is
- * ordered ({@link #isOrdered()}), the order of children for a given tree path
- * matters, and tree change notifications will always specify indices. If the
- * tree is unordered, the children of a tree path are an unordered set and
- * indices in change notifications are not specified.
- * 
- * <p>
- * This interface is not intended to be implemented by clients. Clients should
- * instead subclass one of the framework classes that implement this interface.
- * Note that direct implementers of this interface outside of the framework will
- * be broken in future releases when methods are added to this interface.
- * </p>
- * 
- * @since 1.1
- */
-public interface IObservableTree extends IObservable {
-	
-	/**
-	 * Element that can be returned from synchronous getters if this observable
-	 * tree is lazy.
-	 */
-	public final static Object UNKNOWN_ELEMENT = new Object();
-	
-	/**
-	 * @param listener
-	 */
-	public void addTreeChangeListener(ITreeChangeListener listener);
-
-	/**
-	 * @param listener
-	 */
-	public void removeTreeChangeListener(ITreeChangeListener listener);
-
-	/**
-	 * Returns whether the order of children for a given parent is important. If
-	 * this tree is ordered, tree change notifications will always specify
-	 * indices.
-	 * 
-	 * @return true if the order of children for a given parent is important
-	 */
-	public boolean isOrdered();
-	
-	/**
-	 * Returns whether this tree is optimized to fetch subsets of children
-	 * lazily and possibly asynchronously. Implies {@link #isOrdered()}.
-	 * 
-	 * @return true if this tree 
-	 */
-	public boolean isLazy();
-
-	/**
-	 * @param parentPath
-	 * @return the children at the given parent path
-	 */
-	public Object[] getChildren(TreePath parentPath);
-	
-	/**
-	 * @param parentPath
-	 * @param children
-	 */
-	public void setChildren(TreePath parentPath, Object[] children);
-	
-	/**
-	 * @param parentPath
-	 * @param childElement
-	 */
-	public void addChild(TreePath parentPath, Object childElement);
-	
-	/**
-	 * @param parentPath
-	 * @param childElement 
-	 */
-	public void removeChild(TreePath parentPath, Object childElement);
-	
-	/**
-	 * @param parentPath
-	 * @param index
-	 * @param childElement
-	 */
-	public void insertChild(TreePath parentPath, int index, Object childElement);
-	
-	/**
-	 * @param parentPath
-	 * @param index
-	 */
-	public void removeChild(TreePath parentPath, int index);
-	
-	/**
-	 * @param parentPath
-	 * @return <code>true</code> if the element at the given path has children
-	 */
-	public boolean hasChildren(TreePath parentPath);
-	
-	/**
-	 * @param parentPath
-	 * @return the number of children of the element at the given path 
-	 */
-	public int getChildCount(TreePath parentPath);
-	
-	/**
-	 * @param parentPath
-	 * @param count
-	 */
-	public void setChildCount(TreePath parentPath, int count);
-	
-	/**
-	 * Updates the number of children for the given parent elements in the
-	 * specified request.
-	 * 
-	 * @param update specifies counts to update and stores result
-	 */
-	public void updateChildrenCount(IChildrenCountUpdate update);
-	
-	/**
-	 * Updates children as requested by the update.
-	 * 
-	 * @param update specifies children to update and stores result
-	 */	
-	public void updateChildren(IChildrenUpdate update);
-	
-	/**
-	 * Updates whether elements have children.
-	 * 
-	 * @param update specifies elements to update and stores result
-	 */
-	public void updateHasChildren(IHasChildrenUpdate update);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IOrderedTreeProvider.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IOrderedTreeProvider.java
deleted file mode 100644
index f60d561..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IOrderedTreeProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-
-/**
- * Objects that implement this interface are capable of describing a tree by
- * returning the list of children of any given element in the tree.
- * 
- * @since 3.3
- */
-public interface IOrderedTreeProvider {
-	/**
-	 * Returns the children of the given element, or null if the element is a
-	 * leaf node. The caller of this method is expected to dispose the result
-	 * list when it is no longer needed.
-	 * 
-	 * @param element
-	 *            the tree path of the element to query
-	 * @return the children of the given element, or null if the element is a
-	 *         leaf node
-	 */
-	IObservableList createChildList(TreePath element);
-
-	/**
-	 * @return the realm shared by all child lists
-	 */
-	Realm getRealm();
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/ITreeChangeListener.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/ITreeChangeListener.java
deleted file mode 100644
index 8fe9f8f..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/ITreeChangeListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * @since 3.3
- * 
- */
-public interface ITreeChangeListener {
-	/**
-	 * @param event
-	 */
-	void handleTreeChange(TreeChangeEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IUnorderedTreeProvider.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IUnorderedTreeProvider.java
deleted file mode 100644
index 81941c8..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IUnorderedTreeProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-
-/**
- * @since 1.0
- *
- */
-public interface IUnorderedTreeProvider {
-	/**
-	 * @return the realm for the createChildSet method
-	 */
-	public Realm getRealm();
-	
-	/**
-	 * Returns the children of the given element, or null if the element is a leaf node.
-	 * The caller of this method is expected to dispose the result set when it is no
-	 * longer needed.
-	 * 
-	 * @param element element to query
-	 * @return the children of the given element, or null if the element is a leaf node
-	 */
-	IObservableSet createChildSet(Object element);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IViewerUpdate.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IViewerUpdate.java
deleted file mode 100644
index 26cadab..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/IViewerUpdate.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A context sensitive viewer update request.
- * 
- * @since 3.3
- */
-public interface IViewerUpdate extends IProgressMonitor {
-
-    /**
-     * Sets the status of this request, possibly <code>null</code>.
-     * When a request fails, the status indicates why the request failed.
-     * A <code>null</code> status is considered to be successful.
-     * 
-     * @param status request status
-     */
-    public void setStatus(IStatus status);
-    
-    /**
-     * Returns the status of this request, or <code>null</code>.
-     * 
-     * @return request status or <code>null</code>
-     */
-    public IStatus getStatus();	
-    
-    /**
-     * Returns the model element corresponding to the given tree path.
-     * Returns the root element for the empty path.
-     * 
-     * @param path viewer tree path
-     * @return corresponding model element
-     */
-    public Object getElement(TreePath path);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeChangeEvent.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeChangeEvent.java
deleted file mode 100644
index b5051d5..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeChangeEvent.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-import java.util.EventObject;
-
-/**
- * @since 3.3
- * 
- */
-public class TreeChangeEvent extends EventObject {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -3198503763995528027L;
-	/**
-	 * 
-	 */
-	public TreeDiff diff;
-
-	/**
-	 * @param source
-	 * @param diff
-	 */
-	public TreeChangeEvent(IObservableTree source, TreeDiff diff) {
-		super(source);
-		this.diff = diff;
-	}
-
-	/**
-	 * @return the observable tree from which this event originated
-	 */
-	public IObservableTree getObservable() {
-		return (IObservableTree) getSource();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiff.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiff.java
deleted file mode 100644
index 7c419ea..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiff.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * Describes the difference between two trees as a tree of tree diff nodes.
- * 
- * @since 1.1
- * 
- */
-public abstract class TreeDiff extends TreeDiffNode {
-
-	/**
-	 * Returns the tree path (possibly empty) of the parent, or
-	 * <code>null</code> if the underlying tree is not lazy and never contains
-	 * duplicate elements.
-	 * 
-	 * @return the tree path (possibly empty) of the unchanged parent, or
-	 *         <code>null</code>
-	 */
-	public abstract TreePath getParentPath();
-
-	/**
-	 * @param visitor
-	 */
-	public void accept(TreeDiffVisitor visitor) {
-		doAccept(visitor, getParentPath());
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffNode.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffNode.java
deleted file mode 100644
index a8b8b8d..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffNode.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * @since 1.1
- * 
- */
-public abstract class TreeDiffNode {
-
-	/**
-	 * 
-	 */
-	public final static int NO_CHANGE = 0x00;
-
-	/**
-	 * 
-	 */
-	public final static int ADDED = 0x01;
-
-	/**
-	 * 
-	 */
-	public final static int REMOVED = 0x02;
-
-	/**
-	 * 
-	 */
-	public final static int REPLACED = 0x03;
-
-	/**
-	 * 
-	 */
-	public static final TreeDiffNode[] NO_CHILDREN = new TreeDiffNode[0];
-
-	/**
-	 * 
-	 */
-	public static final int INDEX_UNKNOWN = -1;
-
-	/**
-	 * @return the change type
-	 */
-	public abstract int getChangeType();
-
-	/**
-	 * @return the element that was removed, or the replaced element
-	 */
-	public abstract Object getOldElement();
-
-	/**
-	 * @return the element that was not changed, added, or the replacement
-	 *         element
-	 */
-	public abstract Object getNewElement();
-
-	/**
-	 * @return the index at which the element was added, removed, or replaced
-	 */
-	public abstract int getIndex();
-
-	/**
-	 * Returns the child tree diff objects that describe changes to children. If
-	 * the change type is REMOVED, there will be no children.
-	 * 
-	 * @return the nodes representing changes to children
-	 */
-	public abstract TreeDiffNode[] getChildren();
-
-	protected void doAccept(TreeDiffVisitor visitor, TreePath parentPath) {
-		TreePath currentPath = parentPath.createChildPath(getNewElement());
-		boolean recurse = visitor.visit(this, currentPath);
-		if (recurse) {
-			TreeDiffNode[] children = getChildren();
-			for (int i = 0; i < children.length; i++) {
-				TreeDiffNode child = children[i];
-				child.doAccept(visitor, currentPath);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffVisitor.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffVisitor.java
deleted file mode 100644
index 837464d..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreeDiffVisitor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.observable.tree;
-
-/**
- * @since 3.3
- * 
- */
-public abstract class TreeDiffVisitor {
-
-	/**
-	 * Visits the given tree diff.
-	 * 
-	 * @param diff
-	 *            the diff to visit
-	 * @param currentPath
-	 *            the current path (the diff's element is the last segment of
-	 *            the path)
-	 * 
-	 * @return <code>true</code> if the tree diff's children should be
-	 *         visited; <code>false</code> if they should be skipped.
-	 */
-	public abstract boolean visit(TreeDiffNode diff, TreePath currentPath);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreePath.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreePath.java
deleted file mode 100644
index 99e987c..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/TreePath.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.observable.tree;
-
-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, "Segments array cannot be null"); //$NON-NLS-1$
-		this.segments = new Object[segments.length];
-		for (int i = 0; i < segments.length; i++) {
-			Assert.isNotNull(segments[i], "Segments array cannot contain null"); //$NON-NLS-1$
-			this.segments[i] = segments[i];
-		}
-	}
-
-	/**
-	 * 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;
-		}
-		TreePath otherPath = (TreePath) other;
-		if (segments.length != otherPath.segments.length) {
-			return false;
-		}
-		for (int i = 0; i < segments.length; i++) {
-				if (!segments[i].equals(otherPath.segments[i])) {
-					return false;
-				}
-		}
-		return true;
-	}
-
-	public int hashCode() {
-		if (hash == 0) {
-			for (int i = 0; i < segments.length; i++) {
-					hash += segments[i].hashCode();
-			}
-		}
-		return hash;
-	}
-
-	/**
-	 * 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
-	 * @return whether the given path is a prefix of this path, or the same as
-	 *         this path
-	 */
-	public boolean startsWith(TreePath treePath) {
-		int thisSegmentCount = getSegmentCount();
-		int otherSegmentCount = treePath.getSegmentCount();
-		if (otherSegmentCount == thisSegmentCount) {
-			return equals(treePath);
-		}
-		if (otherSegmentCount > thisSegmentCount) {
-			return false;
-		}
-		for (int i = 0; i < otherSegmentCount; i++) {
-			Object otherSegment = treePath.getSegment(i);
-				if (!otherSegment.equals(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.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/package.html b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/package.html
deleted file mode 100644
index d720e2b..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/observable/tree/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-To be written.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to ...</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/AbstractStringToNumberValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/AbstractStringToNumberValidator.java
deleted file mode 100644
index 3cf8f0b..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/AbstractStringToNumberValidator.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser.ParseResult;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Validates a number that is to be converted by a {@link NumberFormatConverter}.
- * Validation is comprised of parsing the String and range checks.
- * 
- * @since 1.0
- */
-public abstract class AbstractStringToNumberValidator implements IValidator {
-	private final NumberFormatConverter converter;
-	private final boolean toPrimitive;
-
-	private final Number min;
-	private final Number max;
-
-	private String outOfRangeMessage;
-
-	/**
-	 * Constructs a new instance.
-	 * 
-	 * @param converter converter and thus formatter to be used in validation
-	 * @param min minimum value, used for reporting a range error to the user
-	 * @param max maximum value, used for reporting a range error to the user
-	 */
-	protected AbstractStringToNumberValidator(NumberFormatConverter converter,
-			Number min, Number max) {
-		this.converter = converter;
-		this.min = min;
-		this.max = max;
-
-		if (converter.getToType() instanceof Class) {
-			Class clazz = (Class) converter.getToType();
-			toPrimitive = clazz.isPrimitive();
-		} else {
-			toPrimitive = false;
-		}
-	}
-
-	/**
-	 * Validates the provided <code>value</code>.  An error status is returned if:
-	 * <ul>
-	 * <li>The value cannot be parsed.</li>
-	 * <li>The value is out of range.</li>
-	 * </ul>
-	 * 
-	 * @see org.eclipse.core.databinding.validation.IValidator#validate(java.lang.Object)
-	 */
-	public final IStatus validate(Object value) {
-		ParseResult result = StringToNumberParser.parse(value, converter
-				.getNumberFormat(), toPrimitive);
-
-		if (result.getNumber() != null) {
-			if (!isInRange(result.getNumber())) {
-				if (outOfRangeMessage == null) {
-					outOfRangeMessage = StringToNumberParser
-							.createOutOfRangeMessage(min, max, converter
-									.getNumberFormat());
-				}
-
-				return ValidationStatus.error(outOfRangeMessage);
-			}
-		} else if (result.getPosition() != null) {
-			String parseErrorMessage = StringToNumberParser.createParseErrorMessage(
-					(String) value, result.getPosition());
-
-			return ValidationStatus.error(parseErrorMessage);
-		}
-
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Invoked by {@link #validate(Object)} when the range is to be validated.
-	 * 
-	 * @param number
-	 * @return <code>true</code> if in range
-	 */
-	protected abstract boolean isInRange(Number number);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberFormatConverter.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberFormatConverter.java
deleted file mode 100644
index f849329..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberFormatConverter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.databinding.conversion.Converter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * Converter that uses a number format for conversion.
- * 
- * @since 1.0
- */
-public abstract class NumberFormatConverter extends Converter {
-	private final NumberFormat numberFormat;
-	
-	/**
-	 * @param fromType
-	 * @param toType
-	 * @param numberFormat 
-	 */
-	public NumberFormatConverter(Object fromType, Object toType, NumberFormat numberFormat) {
-		super(fromType, toType);
-		
-		this.numberFormat = numberFormat;
-	}
-
-	/**
-	 * @return number format
-	 */
-	/*package */ NumberFormat getNumberFormat() {
-		return numberFormat;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToByteValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToByteValidator.java
deleted file mode 100644
index cdb16f5..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToByteValidator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * Validates if a Number can fit in a Byte.
- * <p>
- * Class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public class NumberToByteValidator extends NumberToNumberValidator {
-	private static final Byte MAX = new Byte(Byte.MAX_VALUE);
-	private static final Byte MIN = new Byte(Byte.MIN_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public NumberToByteValidator(NumberToByteConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.NumberToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean inRange(Number number) {
-		return StringToNumberParser.inByteRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToDoubleValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToDoubleValidator.java
deleted file mode 100644
index 4206520..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToDoubleValidator.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * Validates if a Number can fit in a Double.
- * <p>
- * Class is thread safe.
- * </p>
- * @since 1.0
- */
-public class NumberToDoubleValidator extends NumberToNumberValidator {
-	private static final Double MIN = new Double(Double.MIN_VALUE);
-	private static final Double MAX = new Double(Double.MAX_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public NumberToDoubleValidator(NumberToDoubleConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.NumberToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean inRange(Number number) {
-		return StringToNumberParser.inDoubleRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToFloatValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToFloatValidator.java
deleted file mode 100644
index 4fe3b8e..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToFloatValidator.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * Validates if a Number can fit in a Float.
- * <p>
- * Class is thread safe.
- * </p>
- * @since 1.0
- */
-public class NumberToFloatValidator extends NumberToNumberValidator {
-	private static final Float MIN = new Float(Float.MIN_VALUE);
-	private static final Float MAX = new Float(Float.MAX_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public NumberToFloatValidator(NumberToFloatConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.NumberToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean inRange(Number number) {
-		return StringToNumberParser.inFloatRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToIntegerValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToIntegerValidator.java
deleted file mode 100644
index fe78bce..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToIntegerValidator.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * Validates if a Number can fit in a Integer.
- * <p>
- * Class is thread safe.
- * </p>
- * @since 1.0
- */
-public class NumberToIntegerValidator extends NumberToNumberValidator {
-	private static final Integer MIN = new Integer(Integer.MIN_VALUE);
-	private static final Integer MAX = new Integer(Integer.MAX_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public NumberToIntegerValidator(NumberToIntegerConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.NumberToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean inRange(Number number) {
-		return StringToNumberParser.inIntegerRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToLongValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToLongValidator.java
deleted file mode 100644
index 2c2fdb8..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToLongValidator.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * Validates if a Number can fit in a Long.
- * <p>
- * Class is thread safe.
- * </p>
- * @since 1.0
- */
-public class NumberToLongValidator extends NumberToNumberValidator {
-	private static final Long MIN = new Long(Long.MIN_VALUE);
-	private static final Long MAX = new Long(Long.MAX_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public NumberToLongValidator(NumberToLongConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.NumberToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean inRange(Number number) {
-		return StringToNumberParser.inLongRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToNumberValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToNumberValidator.java
deleted file mode 100644
index 957e75b..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToNumberValidator.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Base class for validators that validate if a Number can fit in another Number type.
- * <p>
- * Class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public abstract class NumberToNumberValidator implements IValidator {
-	private final NumberToNumberConverter converter;
-
-	private final Number min;
-
-	private final Number max;
-
-	private String outOfRangeMessage;
-
-	private final boolean primitive;
-
-	/**
-	 * @param converter
-	 * @param min
-	 *            can be <code>null</code>
-	 * @param max
-	 *            can be <code>null</code>
-	 */
-	protected NumberToNumberValidator(NumberToNumberConverter converter,
-			Number min, Number max) {
-		this.converter = converter;
-		this.min = min;
-		this.max = max;
-
-		primitive = ((Class) converter.getToType()).isPrimitive();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.databinding.validation.IValidator#validate(java.lang.Object)
-	 */
-	public final IStatus validate(Object value) {
-		if (value == null) {
-			if (primitive) {
-				throw new IllegalArgumentException(
-						"Parameter 'value' cannot be null."); //$NON-NLS-1$
-			}
-
-			return Status.OK_STATUS;
-		}
-
-		if (!(value instanceof Number)) {
-			throw new IllegalArgumentException(
-					"Parameter 'value' is not of type Number."); //$NON-NLS-1$
-		}
-
-		Number number = (Number) value;
-		if (inRange(number)) {
-			return Status.OK_STATUS;
-		}
-
-		synchronized (this) {
-			if (outOfRangeMessage == null && min != null && max != null) {
-				outOfRangeMessage = StringToNumberParser
-						.createOutOfRangeMessage(min, max, converter
-								.getNumberFormat());
-			}
-
-			return ValidationStatus.error(outOfRangeMessage);
-		}
-	}
-
-	/**
-	 * Invoked to determine if the value is in range.
-	 * 
-	 * @param number
-	 * @return <code>true</code> if in range
-	 */
-	protected abstract boolean inRange(Number number);
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToShortValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToShortValidator.java
deleted file mode 100644
index c7fa8d8..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToShortValidator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * Validates if a Number can fit in a Short.
- * <p>
- * Class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public class NumberToShortValidator extends NumberToNumberValidator {
-	private static final Short MIN = new Short(Short.MIN_VALUE);
-	private static final Short MAX = new Short(Short.MAX_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public NumberToShortValidator(NumberToShortConverter converter) {
-		super(converter, MIN, MAX);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.NumberToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean inRange(Number number) {
-		return StringToNumberParser.inShortRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToUnboundedNumberValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToUnboundedNumberValidator.java
deleted file mode 100644
index 7919c5a..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/NumberToUnboundedNumberValidator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToNumberConverter;
-
-/**
- * Validates if a Number can fit in an unbounded number (e.g. BigInteger, BigDecimal, etc.).
- * <p>
- * Class is thread safe.
- * </p>
- * 
- * @since 1.0
- */
-public class NumberToUnboundedNumberValidator extends NumberToNumberValidator {
-	/**
-	 * @param converter
-	 */
-	public NumberToUnboundedNumberValidator(NumberToNumberConverter converter) {
-		super(converter, null, null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.databinding.validation.NumberToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean inRange(Number number) {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/ObjectToPrimitiveValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/ObjectToPrimitiveValidator.java
deleted file mode 100755
index 67b46f9..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/ObjectToPrimitiveValidator.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @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 },
-			{ Character.TYPE, Character.class } };
-
-	/**
-	 * @param toType
-	 */
-	public ObjectToPrimitiveValidator(Class toType) {
-		this.toType = toType;
-	}
-
-	protected Class getToType() {
-		return this.toType;
-	}
-
-	public IStatus validate(Object value) {
-		return doValidate(value);
-	}
-
-	private IStatus doValidate(Object value) {
-		if (value != null) {
-			if (!mapContainsValues(toType, value.getClass())) {
-				return ValidationStatus.error(getClassHint());
-			}
-			return Status.OK_STATUS;
-		}
-		return ValidationStatus.error(getNullHint());
-	}
-
-	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 a hint string
-	 */
-	public String getNullHint() {
-		return BindingMessages.getString(BindingMessages.VALIDATE_CONVERSION_TO_PRIMITIVE);
-	}
-
-	/**
-	 * @return a hint string
-	 */
-	public String getClassHint() {
-		return BindingMessages
-				.getString(BindingMessages.VALIDATE_CONVERSION_FROM_CLASS_TO_PRIMITIVE);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/ReadOnlyValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/ReadOnlyValidator.java
deleted file mode 100755
index 8ebc651..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/ReadOnlyValidator.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2005, 2006 db4objects Inc. (http://www.db4o.com) and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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
- *     Boris Bokowski (IBM Corporation) - bug 118429
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- */
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * ReadOnlyValidator. A validator that can be used as a partial validator 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;
-	}
-
-	public IStatus validate(Object value) {
-		// No changes are allowed
-		return ValidationStatus.error(BindingMessages
-				.getString(BindingMessages.VALIDATE_NO_CHANGE_ALLOWED_HELP));
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToByteValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToByteValidator.java
deleted file mode 100644
index 2b7bdc4..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToByteValidator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * @since 1.0
- */
-public class StringToByteValidator extends AbstractStringToNumberValidator {
-	private static final Byte MIN = new Byte(Byte.MIN_VALUE);
-	private static final Byte MAX = new Byte(Byte.MAX_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public StringToByteValidator(NumberFormatConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.AbstractStringToNumberValidator#isInRange(java.lang.Number)
-	 */
-	protected boolean isInRange(Number number) {
-		return StringToNumberParser.inByteRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToCharacterValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToCharacterValidator.java
deleted file mode 100644
index fda38a9..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToCharacterValidator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matt Carter and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matt Carter - initial API and implementation
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.internal.databinding.conversion.StringToCharacterConverter;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Validates a String to Character conversion.
- */
-public class StringToCharacterValidator implements IValidator {
-
-	private final StringToCharacterConverter converter;
-
-	/**
-	 * @param converter
-	 */
-	public StringToCharacterValidator(StringToCharacterConverter converter) {
-		this.converter = converter;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.validation.IValidator#validate(java.lang.Object)
-	 */
-	public IStatus validate(Object value) {
-		try {
-			converter.convert(value);
-		} catch (IllegalArgumentException e) {
-			// The StringToCharacterConverter throws an IllegalArgumentException
-			// if it cannot convert.
-			return ValidationStatus.error(BindingMessages
-					.getString(BindingMessages.VALIDATE_CHARACTER_HELP));
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToDateValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToDateValidator.java
deleted file mode 100644
index 9aaf642..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToDateValidator.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix for 217940
- *******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import java.util.Date;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.internal.databinding.conversion.DateConversionSupport;
-import org.eclipse.core.internal.databinding.conversion.StringToDateConverter;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 1.0
- */
-public class StringToDateValidator implements IValidator {
-	private final StringToDateConverter converter;
-
-	/**
-	 * @param converter
-	 */
-	public StringToDateValidator(StringToDateConverter converter) {
-		this.converter = converter;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.validation.IValidator#validate(java.lang.Object)
-	 */
-	public IStatus validate(Object value) {
-		if (value instanceof String && ((String)value).trim().length()==0) {
-			return Status.OK_STATUS;
-		}
-		Object convertedValue = converter.convert(value);
-		//The StringToDateConverter returns null if it can't parse the date.
-		if (convertedValue == null) {
-			return ValidationStatus.error(getErrorMessage());
-		}
-
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.internal.databinding.validation.WrappedConverterValidator#getErrorMessage()
-	 */
-	protected String getErrorMessage() {
-		Date sampleDate = new Date();
-
-		// FIXME We need to use the information from the
-		// converter, not use another instance of DateConversionSupport.
-		FormatUtil util = new FormatUtil();
-		StringBuffer samples = new StringBuffer();
-		for (int formatterIdx = 1; formatterIdx < util.numFormatters() - 2; formatterIdx++) {
-			samples.append('\'');
-			samples.append(util.format(sampleDate, formatterIdx));
-			samples.append("', "); //$NON-NLS-1$
-		}
-		samples.append('\'');
-		samples.append(util.format(sampleDate, 0));
-		samples.append('\'');
-		return BindingMessages.getString(BindingMessages.EXAMPLES) + ": " + samples + ",..."; //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	private static class FormatUtil extends DateConversionSupport {
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.internal.databinding.conversion.DateConversionSupport#numFormatters()
-		 */
-		protected int numFormatters() {
-			return super.numFormatters();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.internal.databinding.conversion.DateConversionSupport#format(java.util.Date)
-		 */
-		protected String format(Date date) {
-			return super.format(date);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.internal.databinding.conversion.DateConversionSupport#format(java.util.Date,
-		 *      int)
-		 */
-		protected String format(Date date, int formatterIdx) {
-			return super.format(date, formatterIdx);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToDoubleValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToDoubleValidator.java
deleted file mode 100644
index 2e0d0fc..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToDoubleValidator.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * @since 1.0
- */
-public class StringToDoubleValidator extends AbstractStringToNumberValidator {
-	private static final Double MIN = new Double(-Double.MAX_VALUE);
-	private static final Double MAX = new Double(Double.MAX_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public StringToDoubleValidator(NumberFormatConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.databinding.validation.AbstractStringToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean isInRange(Number number) {
-		return StringToNumberParser.inDoubleRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToFloatValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToFloatValidator.java
deleted file mode 100644
index 6ce01e4..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToFloatValidator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * Validates that a string is of the appropriate format and is in the range of a
- * float.
- * 
- * @since 1.0
- */
-public class StringToFloatValidator extends AbstractStringToNumberValidator {
-
-	private static final Float MIN = new Float(-Float.MAX_VALUE);
-	private static final Float MAX = new Float(Float.MAX_VALUE);
-
-	/**
-	 * @param converter
-	 */
-	public StringToFloatValidator(NumberFormatConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.databinding.validation.AbstractStringToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean isInRange(Number number) {
-		return StringToNumberParser.inFloatRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToIntegerValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToIntegerValidator.java
deleted file mode 100644
index 6b8fb24..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToIntegerValidator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-
-/**
- * Validates that a string is of the appropriate format and is in the range of
- * an integer.
- * 
- * @since 1.0
- */
-public class StringToIntegerValidator extends AbstractStringToNumberValidator {
-	private static final Integer MIN = new Integer(Integer.MIN_VALUE);
-	private static final Integer MAX = new Integer(Integer.MAX_VALUE);
-
-	/**
-	 * @param converter
-	 */
-	public StringToIntegerValidator(NumberFormatConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.AbstractStringToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean isInRange(Number number) {
-		return StringToNumberParser.inIntegerRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToLongValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToLongValidator.java
deleted file mode 100644
index 10cd47f..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToLongValidator.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * Validates that a string is of the appropriate format and is in the range of
- * an long.
- * 
- * @since 1.0
- */
-public class StringToLongValidator extends AbstractStringToNumberValidator {
-	private static final Long MIN = new Long(Long.MIN_VALUE);
-	private static final Long MAX = new Long(Long.MAX_VALUE);
-
-	/**
-	 * @param converter
-	 */
-	public StringToLongValidator(NumberFormatConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.AbstractStringToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean isInRange(Number number) {
-		return StringToNumberParser.inLongRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToShortValidator.java b/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToShortValidator.java
deleted file mode 100644
index eaf16b2..0000000
--- a/bundles/org.eclipse.core.databinding/src/org/eclipse/core/internal/databinding/validation/StringToShortValidator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * @since 1.0
- */
-public class StringToShortValidator extends AbstractStringToNumberValidator {
-	private static final Short MIN = new Short(Short.MIN_VALUE);
-	private static final Short MAX = new Short(Short.MAX_VALUE);
-	
-	/**
-	 * @param converter
-	 */
-	public StringToShortValidator(NumberFormatConverter converter) {
-		super(converter, MIN, MAX);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.internal.databinding.validation.AbstractStringToNumberValidator#inRange(java.lang.Number)
-	 */
-	protected boolean isInRange(Number number) {
-		return StringToNumberParser.inShortRange(number);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/.classpath b/bundles/org.eclipse.jface.databinding/.classpath
deleted file mode 100644
index c2ce266..0000000
--- a/bundles/org.eclipse.jface.databinding/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/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 c1c9d28..0000000
--- a/bundles/org.eclipse.jface.databinding/.project
+++ /dev/null
@@ -1,34 +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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.jface.databinding/.settings/.api_filters b/bundles/org.eclipse.jface.databinding/.settings/.api_filters
deleted file mode 100644
index ff88e6c..0000000
--- a/bundles/org.eclipse.jface.databinding/.settings/.api_filters
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.jface.databinding" version="2">
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/swt/WorkQueue.java" type="org.eclipse.jface.internal.databinding.provisional.swt.WorkQueue">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.swt.WorkQueue"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/swt/TableUpdater.java" type="org.eclipse.jface.internal.databinding.provisional.swt.TableUpdater">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.swt.TableUpdater"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/swt/MenuUpdater.java" type="org.eclipse.jface.internal.databinding.provisional.swt.MenuUpdater">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.swt.MenuUpdater"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTObservableValue.java" type="org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/viewers/UnorderedTreeContentProvider.java" type="org.eclipse.jface.internal.databinding.provisional.viewers.UnorderedTreeContentProvider">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.viewers.UnorderedTreeContentProvider"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/swt/ControlUpdater.java" type="org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/viewers/IParentProvider.java" type="org.eclipse.jface.internal.databinding.provisional.viewers.IParentProvider">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.viewers.IParentProvider"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/viewers/ViewerLabelProvider.java" type="org.eclipse.jface.internal.databinding.provisional.viewers.ViewerLabelProvider">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.viewers.ViewerLabelProvider"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/swt/SWTUtil.java" type="org.eclipse.jface.internal.databinding.provisional.swt.SWTUtil">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.swt.SWTUtil"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/swt/CompositeUpdater.java" type="org.eclipse.jface.internal.databinding.provisional.swt.CompositeUpdater">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.swt.CompositeUpdater"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTVetoableValue.java" type="org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTVetoableValue">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTVetoableValue"/>
-                <message_argument value="org.eclipse.jface.databinding_1.2.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
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 3328ba1..0000000
--- a/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,352 +0,0 @@
-#Thu Apr 03 13:12:14 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.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.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=80
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.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 ebd0fd0..0000000
--- a/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,116 +0,0 @@
-#Mon Dec 03 13:51:53 EST 2007
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=false
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.3\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 2ad454b..0000000
--- a/bundles/org.eclipse.jface.databinding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Mon Dec 03 13:51:53 EST 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.jface.databinding/META-INF/MANIFEST.MF b/bundles/org.eclipse.jface.databinding/META-INF/MANIFEST.MF
deleted file mode 100644
index bc1534a..0000000
--- a/bundles/org.eclipse.jface.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface.databinding
-Bundle-Version: 1.2.1.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jface.databinding.swt,
- org.eclipse.jface.databinding.viewers,
- org.eclipse.jface.databinding.wizard,
- org.eclipse.jface.internal.databinding.provisional.swt;x-internal:=true,
- org.eclipse.jface.internal.databinding.provisional.viewers;x-internal:=true,
- org.eclipse.jface.internal.databinding.swt;x-internal:=true,
- org.eclipse.jface.internal.databinding.viewers;x-internal:=true
-Require-Bundle: org.eclipse.core.databinding;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.swt;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jface;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.equinox.common;bundle-version="[3.2.0,4.0.0)"
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
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 6f0a513..0000000
--- a/bundles/org.eclipse.jface.databinding/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.databinding.jar = bin/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.jface.databinding/plugin.properties b/bundles/org.eclipse.jface.databinding/plugin.properties
deleted file mode 100644
index 2880743..0000000
--- a/bundles/org.eclipse.jface.databinding/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = JFace Data Binding for SWT and JFace
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/ISWTObservable.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/ISWTObservable.java
deleted file mode 100644
index f3a74f8..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/ISWTObservable.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.swt;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * {@link IObservable} observing an SWT widget.
- * 
- * @since 1.1
- *
- */
-public interface ISWTObservable extends IObservable {
-	
-	/**
-	 * Returns the widget of this observable
-	 * 
-	 * @return the widget
-	 */
-	public Widget getWidget();
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/ISWTObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/ISWTObservableValue.java
deleted file mode 100644
index d25ba3a..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/ISWTObservableValue.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.swt;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * {@link IObservableValue} observing an SWT widget.
- * 
- * @since 1.1
- *
- */
-public interface ISWTObservableValue extends ISWTObservable, IObservableValue {
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/SWTObservables.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/SWTObservables.java
deleted file mode 100644
index 5efa5ca..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/SWTObservables.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matt Carter - bug 170668
- *     Brad Reynolds - bug 170848
- *     Matthew Hall - bug 180746, bug 207844
- *     Michael Krauter, bug 180223
- *******************************************************************************/
-package org.eclipse.jface.databinding.swt;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.jface.internal.databinding.swt.ButtonObservableValue;
-import org.eclipse.jface.internal.databinding.swt.CComboObservableList;
-import org.eclipse.jface.internal.databinding.swt.CComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.CComboSingleSelectionObservableValue;
-import org.eclipse.jface.internal.databinding.swt.CLabelObservableValue;
-import org.eclipse.jface.internal.databinding.swt.ComboObservableList;
-import org.eclipse.jface.internal.databinding.swt.ComboObservableValue;
-import org.eclipse.jface.internal.databinding.internal.swt.LinkObservableValue;
-import org.eclipse.jface.internal.databinding.swt.ComboSingleSelectionObservableValue;
-import org.eclipse.jface.internal.databinding.swt.ControlObservableValue;
-import org.eclipse.jface.internal.databinding.swt.DelayedObservableValue;
-import org.eclipse.jface.internal.databinding.swt.LabelObservableValue;
-import org.eclipse.jface.internal.databinding.swt.ListObservableList;
-import org.eclipse.jface.internal.databinding.swt.ListObservableValue;
-import org.eclipse.jface.internal.databinding.swt.ListSingleSelectionObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.ScaleObservableValue;
-import org.eclipse.jface.internal.databinding.swt.ShellObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SpinnerObservableValue;
-import org.eclipse.jface.internal.databinding.swt.TableSingleSelectionObservableValue;
-import org.eclipse.jface.internal.databinding.swt.TextEditableObservableValue;
-import org.eclipse.jface.internal.databinding.swt.TextObservableValue;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * A factory for creating observables for SWT widgets
- * 
- * @since 1.1
- * 
- */
-public class SWTObservables {
-
-	private static java.util.List realms = new ArrayList();
-
-	/**
-	 * Returns the realm representing the UI thread for the given display.
-	 * 
-	 * @param display
-	 * @return the realm representing the UI thread for the given display
-	 */
-	public static Realm getRealm(final Display display) {
-		synchronized (realms) {
-			for (Iterator it = realms.iterator(); it.hasNext();) {
-				DisplayRealm displayRealm = (DisplayRealm) it.next();
-				if (displayRealm.display == display) {
-					return displayRealm;
-				}
-			}
-			DisplayRealm result = new DisplayRealm(display);
-			realms.add(result);
-			return result;
-		}
-	}
-
-	/**
-	 * Returns an observable which delays notification of value change events
-	 * from <code>observable</code> until <code>delay</code> milliseconds
-	 * have passed since the last change event, or until a FocusOut event is
-	 * received from the underlying widget (whichever happens earlier). This
-	 * class helps to delay validation until the user stops typing. To notify
-	 * about pending changes, the returned observable value will fire a stale
-	 * event when the wrapped observable value fires a change event, but this
-	 * change is being delayed.
-	 * 
-	 * @param delay
-	 * @param observable
-	 * @return an observable which delays notification of value change events
-	 *         from <code>observable</code> until <code>delay</code>
-	 *         milliseconds have passed since the last change event.
-	 * 
-	 * @since 1.2
-	 */
-	public static ISWTObservableValue observeDelayedValue(int delay, ISWTObservableValue observable) {
-	  return new DelayedObservableValue(delay, observable);
-	}
-
-	/**
-	 * @param control
-	 * @return an observable value tracking the enabled state of the given
-	 *         control
-	 */
-	public static ISWTObservableValue observeEnabled(Control control) {
-		return new ControlObservableValue(control, SWTProperties.ENABLED);
-	}
-
-	/**
-	 * @param control
-	 * @return an observable value tracking the visible state of the given
-	 *         control
-	 */
-	public static ISWTObservableValue observeVisible(Control control) {
-		return new ControlObservableValue(control, SWTProperties.VISIBLE);
-	}
-
-	/**
-	 * @param control
-	 * @return an observable value tracking the tooltip text of the given
-	 *         control
-	 */
-	public static ISWTObservableValue observeTooltipText(Control control) {
-		return new ControlObservableValue(control, SWTProperties.TOOLTIP_TEXT);
-	}
-
-	/**
-	 * Returns an observable observing the selection attribute of the provided
-	 * <code>control</code>. The supported types are:
-	 * <ul>
-	 * <li>org.eclipse.swt.widgets.Spinner</li>
-	 * <li>org.eclipse.swt.widgets.Button</li>
-	 * <li>org.eclipse.swt.widgets.Combo</li>
-	 * <li>org.eclipse.swt.custom.CCombo</li>
-	 * <li>org.eclipse.swt.widgets.List</li>
-	 * <li>org.eclipse.swt.widgets.Scale</li>
-	 * </ul>
-	 * 
-	 * @param control
-	 * @return observable value
-	 * @throws IllegalArgumentException
-	 *             if <code>control</code> type is unsupported
-	 */
-	public static ISWTObservableValue observeSelection(Control control) {
-		if (control instanceof Spinner) {
-			return new SpinnerObservableValue((Spinner) control,
-					SWTProperties.SELECTION);
-		} else if (control instanceof Button) {
-			return new ButtonObservableValue((Button) control);
-		} else if (control instanceof Combo) {
-			return new ComboObservableValue((Combo) control,
-					SWTProperties.SELECTION);
-		} else if (control instanceof CCombo) {
-			return new CComboObservableValue((CCombo) control,
-					SWTProperties.SELECTION);
-		} else if (control instanceof List) {
-			return new ListObservableValue((List) control);
-		} else if (control instanceof Scale) {
-			return new ScaleObservableValue((Scale) control,
-					SWTProperties.SELECTION);
-		}
-
-		throw new IllegalArgumentException(
-				"Widget [" + control.getClass().getName() + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	/**
-	 * Returns an observable observing the minimum attribute of the provided
-	 * <code>control</code>. The supported types are:
-	 * <ul>
-	 * <li>org.eclipse.swt.widgets.Spinner</li>
-	 * <li>org.eclipse.swt.widgets.Scale</li>
-	 * </ul>
-	 * 
-	 * @param control
-	 * @return observable value
-	 * @throws IllegalArgumentException
-	 *             if <code>control</code> type is unsupported
-	 */
-	public static ISWTObservableValue observeMin(Control control) {
-		if (control instanceof Spinner) {
-			return new SpinnerObservableValue((Spinner) control,
-					SWTProperties.MIN);
-		} else if (control instanceof Scale) {
-			return new ScaleObservableValue((Scale) control, SWTProperties.MIN);
-		}
-
-		throw new IllegalArgumentException(
-				"Widget [" + control.getClass().getName() + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	/**
-	 * Returns an observable observing the maximum attribute of the provided
-	 * <code>control</code>. The supported types are:
-	 * <ul>
-	 * <li>org.eclipse.swt.widgets.Spinner</li>
-	 * <li>org.eclipse.swt.widgets.Scale</li>
-	 * </ul>
-	 * 
-	 * @param control
-	 * @return observable value
-	 * @throws IllegalArgumentException
-	 *             if <code>control</code> type is unsupported
-	 */
-	public static ISWTObservableValue observeMax(Control control) {
-		if (control instanceof Spinner) {
-			return new SpinnerObservableValue((Spinner) control,
-					SWTProperties.MAX);
-		} else if (control instanceof Scale) {
-			return new ScaleObservableValue((Scale) control, SWTProperties.MAX);
-		}
-
-		throw new IllegalArgumentException(
-				"Widget [" + control.getClass().getName() + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	/**
-	 * Returns an observable observing the text attribute of the provided
-	 * <code>control</code>. The supported types are:
-	 * <ul>
-	 * <li>org.eclipse.swt.widgets.Text</li>
-	 * </ul>
-	 * 
-	 * <li>org.eclipse.swt.widgets.Label</li>
-	 * @param control
-	 * @param event event type to register for change events
-	 * @return observable value
-	 * @throws IllegalArgumentException
-	 *             if <code>control</code> type is unsupported
-	 */
-	public static ISWTObservableValue observeText(Control control, int event) {
-		if (control instanceof Text) {
-			return new TextObservableValue((Text) control, event);
-		}
-
-		throw new IllegalArgumentException(
-				"Widget [" + control.getClass().getName() + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	/**
-	 * Returns an observable observing the text attribute of the provided
-	 * <code>control</code>. The supported types are:
-	 * <ul>
-	 * <li>org.eclipse.swt.widgets.Label</li>
-	 * <li>org.eclipse.swt.widgets.Link (as of 1.2)</li>
-	 * <li>org.eclipse.swt.custom.Label</li>
-	 * <li>org.eclipse.swt.widgets.Combo</li>
-	 * <li>org.eclipse.swt.custom.CCombo</li>
-	 * <li>org.eclipse.swt.widgets.Shell</li>
-	 * </ul>
-	 * 
-	 * @param control
-	 * @return observable value
-	 * @throws IllegalArgumentException
-	 *             if <code>control</code> type is unsupported
-	 */
-	public static ISWTObservableValue observeText(Control control) {
-		if (control instanceof Label) {
-			return new LabelObservableValue((Label) control);
-		} else if (control instanceof Link) {
-			return new LinkObservableValue((Link) control);
-		} else if (control instanceof CLabel) {
-			return new CLabelObservableValue((CLabel) control);
-		} else if (control instanceof Combo) {
-			return new ComboObservableValue((Combo) control, SWTProperties.TEXT);
-		} else if (control instanceof CCombo) {
-			return new CComboObservableValue((CCombo) control,
-					SWTProperties.TEXT);
-		} else if (control instanceof Shell) {
-			return new ShellObservableValue((Shell) control);
-		}
-
-		throw new IllegalArgumentException(
-				"Widget [" + control.getClass().getName() + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	/**
-	 * Returns an observable observing the items attribute of the provided
-	 * <code>control</code>. The supported types are:
-	 * <ul>
-	 * <li>org.eclipse.swt.widgets.Combo</li>
-	 * <li>org.eclipse.swt.custom.CCombo</li>
-	 * <li>org.eclipse.swt.widgets.List</li>
-	 * </ul>
-	 * 
-	 * @param control
-	 * @return observable list
-	 * @throws IllegalArgumentException
-	 *             if <code>control</code> type is unsupported
-	 */
-	public static IObservableList observeItems(Control control) {
-		if (control instanceof Combo) {
-			return new ComboObservableList((Combo) control);
-		} else if (control instanceof CCombo) {
-			return new CComboObservableList((CCombo) control);
-		} else if (control instanceof List) {
-			return new ListObservableList((List) control);
-		}
-
-		throw new IllegalArgumentException(
-				"Widget [" + control.getClass().getName() + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	/**
-	 * Returns an observable observing the single selection index attribute of
-	 * the provided <code>control</code>. The supported types are:
-	 * <ul>
-	 * <li>org.eclipse.swt.widgets.Table</li>
-	 * <li>org.eclipse.swt.widgets.Combo</li>
-	 * <li>org.eclipse.swt.custom.CCombo</li>
-	 * <li>org.eclipse.swt.widgets.List</li>
-	 * </ul>
-	 * 
-	 * @param control
-	 * @return observable value
-	 * @throws IllegalArgumentException
-	 *             if <code>control</code> type is unsupported
-	 */
-	public static ISWTObservableValue observeSingleSelectionIndex(
-			Control control) {
-		if (control instanceof Table) {
-			return new TableSingleSelectionObservableValue((Table) control);
-		} else if (control instanceof Combo) {
-			return new ComboSingleSelectionObservableValue((Combo) control);
-		} else if (control instanceof CCombo) {
-			return new CComboSingleSelectionObservableValue((CCombo) control);
-		} else if (control instanceof List) {
-			return new ListSingleSelectionObservableValue((List) control);
-		}
-
-		throw new IllegalArgumentException(
-				"Widget [" + control.getClass().getName() + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	/**
-	 * @param control
-	 * @return an observable value tracking the foreground color of the given
-	 *         control
-	 */
-	public static ISWTObservableValue observeForeground(Control control) {
-		return new ControlObservableValue(control, SWTProperties.FOREGROUND);
-	}
-
-	/**
-	 * @param control
-	 * @return an observable value tracking the background color of the given
-	 *         control
-	 */
-	public static ISWTObservableValue observeBackground(Control control) {
-		return new ControlObservableValue(control, SWTProperties.BACKGROUND);
-	}
-
-	/**
-	 * @param control
-	 * @return an observable value tracking the font of the given control
-	 */
-	public static ISWTObservableValue observeFont(Control control) {
-		return new ControlObservableValue(control, SWTProperties.FONT);
-	}
-	
-	/**
-	 * Returns an observable observing the editable attribute of
-	 * the provided <code>control</code>. The supported types are:
-	 * <ul>
-	 * <li>org.eclipse.swt.widgets.Text</li>
-	 * </ul>
-	 * 
-	 * @param control
-	 * @return observable value
-	 * @throws IllegalArgumentException
-	 *             if <code>control</code> type is unsupported
-	 */
-	public static ISWTObservableValue observeEditable(Control control) {
-		if (control instanceof Text) {
-			return new TextEditableObservableValue((Text) control);
-		}
-		
-		throw new IllegalArgumentException(
-				"Widget [" + control.getClass().getName() + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	private static class DisplayRealm extends Realm {
-		private Display display;
-
-		/**
-		 * @param display
-		 */
-		private DisplayRealm(Display display) {
-			this.display = display;
-		}
-
-		public boolean isCurrent() {
-			return Display.getCurrent() == display;
-		}
-
-		public void asyncExec(final Runnable runnable) {
-			Runnable safeRunnable = new Runnable() {
-				public void run() {
-					safeRun(runnable);
-				}
-			};
-			if (!display.isDisposed()) {
-				display.asyncExec(safeRunnable);
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see java.lang.Object#hashCode()
-		 */
-		public int hashCode() {
-			return (display == null) ? 0 : display.hashCode();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see java.lang.Object#equals(java.lang.Object)
-		 */
-		public boolean equals(Object obj) {
-			if (this == obj)
-				return true;
-			if (obj == null)
-				return false;
-			if (getClass() != obj.getClass())
-				return false;
-			final DisplayRealm other = (DisplayRealm) obj;
-			if (display == null) {
-				if (other.display != null)
-					return false;
-			} else if (!display.equals(other.display))
-				return false;
-			return true;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/package.html b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/package.html
deleted file mode 100644
index 139ca4f..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/swt/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that can be used to observe changes in SWT widgets.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe changes in SWT widgets.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservable.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservable.java
deleted file mode 100644
index 50703cd..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservable.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * {@link IObservable} observing a JFace Viewer.
- * 
- * @since 1.2
- * 
- */
-public interface IViewerObservable extends IObservable {
-	/**
-	 * Returns the underlying viewer for this observable.
-	 * 
-	 * @return the viewer.
-	 */
-	public Viewer getViewer();
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableList.java
deleted file mode 100644
index 6b3ed4b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableList.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-
-/**
- * {@link IObservableList} observing a JFace Viewer.
- * 
- * @since 1.2
- * 
- */
-public interface IViewerObservableList extends IObservableList,
-		IViewerObservable {
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableSet.java
deleted file mode 100644
index b8f98e6..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableSet.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 124684)
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-
-/**
- * {@link IObservableSet} observing a JFace Viewer.
- * 
- * @since 1.2
- * 
- */
-public interface IViewerObservableSet extends IObservableSet, IViewerObservable {
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableValue.java
deleted file mode 100644
index 6c145cf..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/IViewerObservableValue.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * {@link IObservableValue} observing a JFace Viewer.
- * 
- * @since 1.2
- * 
- */
-public interface IViewerObservableValue extends IObservableValue,
-		IViewerObservable {
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ListeningLabelProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ListeningLabelProvider.java
deleted file mode 100644
index 5588a6f..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ListeningLabelProvider.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.jface.internal.databinding.provisional.viewers.ViewerLabelProvider;
-
-/**
- * @since 1.1
- * 
- */
-public abstract class ListeningLabelProvider extends ViewerLabelProvider {
-
-	private ISetChangeListener listener = new ISetChangeListener() {
-		public void handleSetChange(SetChangeEvent event) {
-			for (Iterator it = event.diff.getAdditions().iterator(); it.hasNext();) {
-				addListenerTo(it.next());
-			}
-			for (Iterator it = event.diff.getRemovals().iterator(); it.hasNext();) {
-				removeListenerFrom(it.next());
-			}
-		}
-	};
-
-	private IObservableSet items;
-
-	/**
-	 * @param itemsThatNeedLabels
-	 */
-	public ListeningLabelProvider(IObservableSet itemsThatNeedLabels) {
-		this.items = itemsThatNeedLabels;
-		items.addSetChangeListener(listener);
-		for (Iterator it = items.iterator(); it.hasNext();) {
-			addListenerTo(it.next());
-		}
-	}
-
-	/**
-	 * @param next
-	 */
-	protected abstract void removeListenerFrom(Object next);
-
-	/**
-	 * @param next
-	 */
-	protected abstract void addListenerTo(Object next);
-
-	public void dispose() {
-		for (Iterator iter = items.iterator(); iter.hasNext();) {
-			removeListenerFrom(iter.next());
-		}
-		items.removeSetChangeListener(listener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListContentProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListContentProvider.java
deleted file mode 100644
index 2a5ec40..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListContentProvider.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl<tom.schindl@bestsolution.at> - bugfix in: 214355
- *     Matthew Hall - bugs 215531, 226765
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffVisitor;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.internal.databinding.viewers.ObservableCollectionContentProvider;
-import org.eclipse.jface.internal.databinding.viewers.ViewerElementSet;
-import org.eclipse.jface.viewers.AbstractListViewer;
-import org.eclipse.jface.viewers.AbstractTableViewer;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * A {@link IStructuredContentProvider content provider} for
- * {@link AbstractTableViewer} or {@link AbstractListViewer} that provides
- * elements of an {@link IObservableList} when set as the viewer's input.
- * Objects of this class listen for changes to the observable list, and will
- * insert and remove viewer elements to reflect observed changes.
- * 
- * <p>
- * This class is not intended to be subclassed by clients.
- * 
- * @since 1.1
- */
-public class ObservableListContentProvider implements
-		IStructuredContentProvider {
-	private ObservableCollectionContentProvider impl;
-
-	private static class Impl extends ObservableCollectionContentProvider
-			implements IListChangeListener {
-		protected void checkInput(Object input) {
-			Assert
-					.isTrue(input instanceof IObservableList,
-							"This content provider only works with input of type IObservableList"); //$NON-NLS-1$
-		}
-
-		protected void addCollectionChangeListener(
-				IObservableCollection collection) {
-			((IObservableList) collection).addListChangeListener(this);
-		}
-
-		protected void removeCollectionChangeListener(
-				IObservableCollection collection) {
-			((IObservableList) collection).removeListChangeListener(this);
-		}
-
-		public void handleListChange(ListChangeEvent event) {
-			if (isViewerDisposed())
-				return;
-			final Set removals = ViewerElementSet.withComparer(comparer);
-
-			event.diff.accept(new ListDiffVisitor() {
-				public void handleAdd(int index, Object element) {
-					knownElements.add(element);
-					viewerUpdater.insert(element, index);
-				}
-
-				public void handleRemove(int index, Object element) {
-					viewerUpdater.remove(element, index);
-					removals.add(element);
-				}
-
-				public void handleReplace(int index, Object oldElement,
-						Object newElement) {
-					knownElements.add(newElement);
-					viewerUpdater.replace(oldElement, newElement, index);
-					removals.add(oldElement);
-				}
-
-				public void handleMove(int oldIndex, int newIndex,
-						Object element) {
-					viewerUpdater.move(element, oldIndex, newIndex);
-				}
-			});
-
-			// For each removed element, do not remove from known elements if
-			// the element is still present elsewhere in the list.
-			removals.removeAll(event.getObservableList());
-			knownElements.removeAll(removals);
-		}
-	}
-
-	/**
-	 * Constructs an ObservableListContentProvider
-	 */
-	public ObservableListContentProvider() {
-		impl = new Impl();
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		impl.inputChanged(viewer, oldInput, newInput);
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return impl.getElements(inputElement);
-	}
-
-	public void dispose() {
-		impl.dispose();
-	}
-
-	/**
-	 * Returns the set of elements known to this content provider. Label
-	 * providers may track this set if they need to be notified about additions
-	 * before the viewer sees the added element, and notified about removals
-	 * after the element was removed from the viewer. This is intended for use
-	 * by label providers, as it will always return the items that need labels.
-	 * 
-	 * @return readableSet of items that will need labels
-	 */
-	public IObservableSet getKnownElements() {
-		return impl.getKnownElements();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListTreeContentProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListTreeContentProvider.java
deleted file mode 100644
index 71b2db7..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableListTreeContentProvider.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 207858)
- *     Matthew Hall - bug 226765
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffVisitor;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider;
-import org.eclipse.jface.internal.databinding.viewers.ViewerElementSet;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * An {@link ITreeContentProvider} for use with an {@link AbstractTreeViewer},
- * which uses the provided {@link IObservableFactory list factory} to obtain the
- * elements of a tree. Object of this class listen for changes to each
- * {@link IObservableList} created by the factory, and will insert and remove
- * viewer elements to reflect the observed changes.
- * 
- * <p>
- * This class is not intended to be subclassed by clients.
- * 
- * @since 1.2
- */
-public class ObservableListTreeContentProvider implements ITreeContentProvider {
-	private final ObservableCollectionTreeContentProvider impl;
-
-	private static class Impl extends ObservableCollectionTreeContentProvider {
-		public Impl(IObservableFactory listFactory,
-				TreeStructureAdvisor structureAdvisor) {
-			super(listFactory, structureAdvisor);
-		}
-
-		private class ListChangeListener implements IListChangeListener {
-			final Object parentElement;
-
-			public ListChangeListener(Object parentElement) {
-				this.parentElement = parentElement;
-			}
-
-			public void handleListChange(ListChangeEvent event) {
-				if (isViewerDisposed())
-					return;
-
-				final Set removals = ViewerElementSet.withComparer(comparer);
-				event.diff.accept(new ListDiffVisitor() {
-					public void handleAdd(int index, Object child) {
-						// adds to known elements if new element
-						getOrCreateNode(child).addParent(parentElement);
-
-						viewerUpdater.insert(parentElement, child, index);
-					}
-
-					public void handleRemove(int index, Object child) {
-						viewerUpdater.remove(parentElement, child, index);
-
-						removals.add(child);
-					}
-
-					public void handleReplace(int index, Object oldChild,
-							Object newChild) {
-						getOrCreateNode(newChild).addParent(parentElement);
-
-						viewerUpdater.replace(parentElement, oldChild,
-								newChild, index);
-
-						removals.add(oldChild);
-					}
-
-					public void handleMove(int oldIndex, int newIndex,
-							Object child) {
-						viewerUpdater.move(parentElement, child, oldIndex,
-								newIndex);
-					}
-				});
-
-				// For each removed element, do not remove node's parent if the
-				// element is still present elsewhere in the list.
-				removals.removeAll(event.getObservableList());
-				for (Iterator iterator = removals.iterator(); iterator
-						.hasNext();) {
-					TreeNode node = getExistingNode(iterator.next());
-					if (node != null)
-						// removes from known elements if last parent
-						node.removeParent(parentElement);
-				}
-			}
-		}
-
-		protected IObservablesListener createCollectionChangeListener(
-				Object parentElement) {
-			return new ListChangeListener(parentElement);
-		}
-
-		protected void addCollectionChangeListener(
-				IObservableCollection collection, IObservablesListener listener) {
-			IObservableList list = (IObservableList) collection;
-			IListChangeListener listListener = (IListChangeListener) listener;
-			list.addListChangeListener(listListener);
-		}
-
-		protected void removeCollectionChangeListener(
-				IObservableCollection collection, IObservablesListener listener) {
-			IObservableList list = (IObservableList) collection;
-			IListChangeListener listListener = (IListChangeListener) listener;
-			list.removeListChangeListener(listListener);
-		}
-	}
-
-	/**
-	 * Constructs an ObservableListTreeContentProvider using the given list
-	 * factory.
-	 * 
-	 * @param listFactory
-	 *            observable factory that produces an IObservableList of
-	 *            children for a given parent element. Observable lists created
-	 *            by this factory must be on the realm of the current display.
-	 * @param structureAdvisor
-	 *            an advisor that will be consulted from the implementations of
-	 *            the {@link #getParent(Object)} and
-	 *            {@link #hasChildren(Object)} methods, or <code>null</code>
-	 *            if no advisor is available. It is recommended that clients
-	 *            pass a non-null advisor if they can provide additional
-	 *            structural information about the tree.
-	 */
-	public ObservableListTreeContentProvider(IObservableFactory listFactory,
-			TreeStructureAdvisor structureAdvisor) {
-		impl = new Impl(listFactory, structureAdvisor);
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		impl.inputChanged(viewer, oldInput, newInput);
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return impl.getElements(inputElement);
-	}
-
-	public boolean hasChildren(Object element) {
-		return impl.hasChildren(element);
-	}
-
-	public Object[] getChildren(Object parentElement) {
-		return impl.getChildren(parentElement);
-	}
-
-	public Object getParent(Object element) {
-		return impl.getParent(element);
-	}
-
-	public void dispose() {
-		impl.dispose();
-	}
-
-	/**
-	 * Returns the set of elements known to this content provider. Label
-	 * providers may track this set if they need to be notified about additions
-	 * before the viewer sees the added element, and notified about removals
-	 * after the element was removed from the viewer. This is intended for use
-	 * by label providers, as it will always return the items that need labels.
-	 * 
-	 * @return readableSet of items that will need labels
-	 */
-	public IObservableSet getKnownElements() {
-		return impl.getKnownElements();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableMapLabelProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableMapLabelProvider.java
deleted file mode 100644
index 5d9d434..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableMapLabelProvider.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164247
- *     Brad Reynolds - bug 164134
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @since 1.1
- * 
- */
-public class ObservableMapLabelProvider extends LabelProvider
-		implements ILabelProvider, ITableLabelProvider {
-
-	private final IObservableMap[] attributeMaps;
-
-	private IMapChangeListener mapChangeListener = new IMapChangeListener() {
-		public void handleMapChange(MapChangeEvent event) {
-			Set affectedElements = event.diff.getChangedKeys();
-			LabelProviderChangedEvent newEvent = new LabelProviderChangedEvent(
-					ObservableMapLabelProvider.this, affectedElements
-							.toArray());
-			fireLabelProviderChanged(newEvent);
-		}
-	};
-
-	/**
-	 * @param attributeMap
-	 */
-	public ObservableMapLabelProvider(IObservableMap attributeMap) {
-		this(new IObservableMap[] { attributeMap });
-	}
-
-	/**
-	 * @param attributeMaps
-	 */
-	public ObservableMapLabelProvider(IObservableMap[] attributeMaps) {
-		System.arraycopy(attributeMaps, 0, this.attributeMaps = attributeMaps, 0, attributeMaps.length);
-		for (int i = 0; i < attributeMaps.length; i++) {
-			attributeMaps[i].addMapChangeListener(mapChangeListener);
-		}
-	}
-
-	public void dispose() {
-		for (int i = 0; i < attributeMaps.length; i++) {
-			attributeMaps[i].removeMapChangeListener(mapChangeListener);
-		}
-		super.dispose();
-	}
-
-	public Image getImage(Object element) {
-		return null;
-	}
-
-	public String getText(Object element) {
-		return getColumnText(element, 0);
-	}
-
-	public Image getColumnImage(Object element, int columnIndex) {
-		return null;
-	}
-
-	public String getColumnText(Object element, int columnIndex) {
-		if (columnIndex < attributeMaps.length) {
-			Object result = attributeMaps[columnIndex].get(element);
-			return result == null ? "" : result.toString(); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableSetContentProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableSetContentProvider.java
deleted file mode 100644
index 6526d7b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableSetContentProvider.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Matthew Hall - bugs 215531, 226765
- *******************************************************************************/
-package org.eclipse.jface.databinding.viewers;
-
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.internal.databinding.viewers.ObservableCollectionContentProvider;
-import org.eclipse.jface.viewers.AbstractListViewer;
-import org.eclipse.jface.viewers.AbstractTableViewer;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * A {@link IStructuredContentProvider content provider} for
- * {@link AbstractTableViewer} or {@link AbstractListViewer} that provides
- * elements of an {@link IObservableSet} when set as the viewer's input. Objects
- * of this class listen for changes to the observable set, and will insert and
- * remove viewer elements to reflect observed changes.
- * 
- * <p>
- * This class is not intended to be subclassed by clients.
- * 
- * @since 1.1
- */
-public class ObservableSetContentProvider implements IStructuredContentProvider {
-	private ObservableCollectionContentProvider impl;
-
-	private static class Impl extends ObservableCollectionContentProvider
-			implements ISetChangeListener {
-		protected void checkInput(Object input) {
-			Assert
-					.isTrue(input instanceof IObservableSet,
-							"This content provider only works with input of type IObservableSet"); //$NON-NLS-1$
-		}
-
-		protected void addCollectionChangeListener(
-				IObservableCollection collection) {
-			((IObservableSet) collection).addSetChangeListener(this);
-		}
-
-		protected void removeCollectionChangeListener(
-				IObservableCollection collection) {
-			((IObservableSet) collection).removeSetChangeListener(this);
-		}
-
-		public void handleSetChange(SetChangeEvent event) {
-			if (isViewerDisposed())
-				return;
-
-			Set removals = event.diff.getRemovals();
-			viewerUpdater.remove(removals.toArray());
-			knownElements.removeAll(removals);
-
-			Set additions = event.diff.getAdditions();
-			knownElements.addAll(additions);
-			viewerUpdater.add(additions.toArray());
-		}
-	}
-
-	/**
-	 * Constructs an ObservableSetContentProvider
-	 */
-	public ObservableSetContentProvider() {
-		impl = new Impl();
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		impl.inputChanged(viewer, oldInput, newInput);
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return impl.getElements(inputElement);
-	}
-
-	public void dispose() {
-		impl.dispose();
-	}
-
-	/**
-	 * Returns the set of elements known to this content provider. Label
-	 * providers may track this set if they need to be notified about additions
-	 * before the viewer sees the added element, and notified about removals
-	 * after the element was removed from the viewer. This is intended for use
-	 * by label providers, as it will always return the items that need labels.
-	 * 
-	 * @return unmodifiable set of items that will need labels
-	 */
-	public IObservableSet getKnownElements() {
-		return impl.getKnownElements();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableSetTreeContentProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableSetTreeContentProvider.java
deleted file mode 100644
index f3b8afa..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableSetTreeContentProvider.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 207858)
- *     Matthew Hall - bug 226765
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.jface.internal.databinding.viewers.ObservableCollectionTreeContentProvider;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * An {@link ITreeContentProvider} for use with an {@link AbstractTreeViewer},
- * which uses the provided {@link IObservableFactory set factory} to obtain the
- * elements of a tree. Objects of this class listen for changes to each
- * {@link IObservableSet} created by the factory, and will insert and remove
- * viewer elements to reflect the observed changes.
- * 
- * <p>
- * This class is not intended to be subclassed by clients.
- * 
- * @since 1.2
- */
-public class ObservableSetTreeContentProvider implements ITreeContentProvider {
-	private final ObservableCollectionTreeContentProvider impl;
-
-	private static class Impl extends ObservableCollectionTreeContentProvider {
-		Impl(IObservableFactory setFactory,
-				TreeStructureAdvisor structureAdvisor) {
-			super(setFactory, structureAdvisor);
-		}
-
-		private class SetChangeListener implements ISetChangeListener {
-			final Object parentElement;
-
-			public SetChangeListener(Object parentElement) {
-				this.parentElement = parentElement;
-			}
-
-			public void handleSetChange(SetChangeEvent event) {
-				if (isViewerDisposed())
-					return;
-
-				Set removals = event.diff.getRemovals();
-				if (!removals.isEmpty()) {
-					viewerUpdater.remove(parentElement, removals.toArray());
-					for (Iterator iterator = removals.iterator(); iterator
-							.hasNext();) {
-						Object child = iterator.next();
-						TreeNode childNode = getExistingNode(child);
-						if (childNode != null)
-							childNode.removeParent(parentElement);
-					}
-				}
-
-				Set additions = event.diff.getAdditions();
-				if (!additions.isEmpty()) {
-					for (Iterator iterator = additions.iterator(); iterator
-							.hasNext();) {
-						Object child = iterator.next();
-						getOrCreateNode(child).addParent(parentElement);
-					}
-					viewerUpdater.add(parentElement, additions.toArray());
-				}
-			}
-		}
-
-		protected IObservablesListener createCollectionChangeListener(
-				Object parentElement) {
-			return new SetChangeListener(parentElement);
-		}
-
-		protected void addCollectionChangeListener(
-				IObservableCollection collection, IObservablesListener listener) {
-			IObservableSet set = (IObservableSet) collection;
-			ISetChangeListener setListener = (ISetChangeListener) listener;
-			set.addSetChangeListener(setListener);
-		}
-
-		protected void removeCollectionChangeListener(
-				IObservableCollection collection, IObservablesListener listener) {
-			IObservableSet set = (IObservableSet) collection;
-			ISetChangeListener setListener = (ISetChangeListener) listener;
-			set.removeSetChangeListener(setListener);
-		}
-	}
-
-	/**
-	 * Constructs an ObservableListTreeContentProvider using the given list
-	 * factory.
-	 * 
-	 * @param setFactory
-	 *            observable factory that produces an IObservableSet of children
-	 *            for a given parent element. Observable sets created by this
-	 *            factory must be on the realm of the current display.
-	 * @param structureAdvisor
-	 *            an advisor that will be consulted from the implementations of
-	 *            the {@link #getParent(Object)} and
-	 *            {@link #hasChildren(Object)} methods, or <code>null</code>
-	 *            if no advisor is available. It is recommended that clients
-	 *            pass a non-null advisor if they can provide additional
-	 *            structural information about the tree.
-	 */
-	public ObservableSetTreeContentProvider(IObservableFactory setFactory,
-			TreeStructureAdvisor structureAdvisor) {
-		impl = new Impl(setFactory, structureAdvisor);
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		impl.inputChanged(viewer, oldInput, newInput);
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return impl.getElements(inputElement);
-	}
-
-	public boolean hasChildren(Object element) {
-		return impl.hasChildren(element);
-	}
-
-	public Object[] getChildren(Object parentElement) {
-		return impl.getChildren(parentElement);
-	}
-
-	public Object getParent(Object element) {
-		return impl.getParent(element);
-	}
-
-	public void dispose() {
-		impl.dispose();
-	}
-
-	/**
-	 * Returns the set of elements known to this content provider. Label
-	 * providers may track this set if they need to be notified about additions
-	 * before the viewer sees the added element, and notified about removals
-	 * after the element was removed from the viewer. This is intended for use
-	 * by label providers, as it will always return the items that need labels.
-	 * 
-	 * @return readableSet of items that will need labels
-	 */
-	public IObservableSet getKnownElements() {
-		return impl.getKnownElements();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableValueEditingSupport.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableValueEditingSupport.java
deleted file mode 100644
index 3111c8d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ObservableValueEditingSupport.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationListener;
-import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ViewerCell;
-
-/**
- * {@link EditingSupport} using the JFace Data Binding concepts to handle the
- * updating of an element from a {@link CellEditor}.
- * 
- * @since 1.2
- */
-public abstract class ObservableValueEditingSupport extends EditingSupport {
-	/**
-	 * Maintains references to the instances currently imployed while editing.
-	 * Will be <code>null</code> when not editing.
-	 */
-	private EditingState editingState;
-
-	private final ColumnViewerEditorActivationListenerHelper activationListener = new ColumnViewerEditorActivationListenerHelper();
-
-	private ColumnViewer viewer;
-
-	private DataBindingContext dbc;
-
-	/**
-	 * Constructs a new instance with the provided <code>viewer</code> and
-	 * <code>dbc</code>.
-	 * 
-	 * @param viewer
-	 *            viewer to edit
-	 * @param dbc
-	 *            dbc to create <code>Bindings</code>
-	 */
-	public ObservableValueEditingSupport(ColumnViewer viewer,
-			DataBindingContext dbc) {
-		super(viewer);
-
-		if (dbc == null) {
-			throw new IllegalArgumentException("Parameter dbc was null."); //$NON-NLS-1$
-		}
-
-		this.viewer = viewer;
-		this.dbc = dbc;
-	}
-
-	/**
-	 * Default implementation always returns <code>true</code>.
-	 * 
-	 * @see org.eclipse.jface.viewers.EditingSupport#canEdit(java.lang.Object)
-	 */
-	protected boolean canEdit(Object element) {
-		return true;
-	}
-
-	/**
-	 * Default implementation always returns <code>null</code> as this will be
-	 * handled by the Binding.
-	 * 
-	 * @see org.eclipse.jface.viewers.EditingSupport#getValue(java.lang.Object)
-	 */
-	protected Object getValue(Object element) {
-		// no op
-		return null;
-	}
-
-	/**
-	 * Default implementation does nothing as this will be handled by the
-	 * Binding.
-	 * 
-	 * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	protected void setValue(Object element, Object value) {
-		// no op
-	}
-
-	/**
-	 * Creates a {@link Binding} between the editor and the element to be
-	 * edited. Invokes {@link #doCreateCellEditorObservable(CellEditor)},
-	 * {@link #doCreateElementObservable(Object, ViewerCell)}, and then
-	 * {@link #createBinding(IObservableValue, IObservableValue)}.
-	 */
-	final protected void initializeCellEditorValue(CellEditor cellEditor,
-			ViewerCell cell) {
-		IObservableValue target = doCreateCellEditorObservable(cellEditor);
-		Assert
-				.isNotNull(target,
-						"doCreateCellEditorObservable(...) did not return an observable"); //$NON-NLS-1$
-
-		IObservableValue model = doCreateElementObservable(cell.getElement(),
-				cell);
-		Assert.isNotNull(model,
-				"doCreateElementObservable(...) did not return an observable"); //$NON-NLS-1$
-
-		Binding binding = createBinding(target, model);
-		Assert
-				.isNotNull(binding,
-						"createBinding(...) did not return a binding"); //$NON-NLS-1$
-
-		editingState = new EditingState(binding, target, model);
-
-		getViewer().getColumnViewerEditor().addEditorActivationListener(
-				activationListener);
-	}
-
-	/**
-	 * Creates the observable value for the CellEditor.
-	 * 
-	 * @param cellEditor
-	 * @return observable value
-	 */
-	protected abstract IObservableValue doCreateCellEditorObservable(
-			CellEditor cellEditor);
-
-	/**
-	 * Creates the observable value for the element.
-	 * 
-	 * @param element
-	 * @param cell
-	 * @return observable value
-	 */
-	protected abstract IObservableValue doCreateElementObservable(
-			Object element, ViewerCell cell);
-
-	/**
-	 * Creates a new binding for the provided <code>target</code> and
-	 * <code>model</code>. Default
-	 * {@link UpdateValueStrategy value update strategies} are used with the
-	 * target to model updating on {@link UpdateValueStrategy#POLICY_CONVERT}.
-	 * 
-	 * @param target
-	 * @param model
-	 * @return binding
-	 */
-	protected Binding createBinding(IObservableValue target,
-			IObservableValue model) {
-		return dbc.bindValue(target, model, new UpdateValueStrategy(
-				UpdateValueStrategy.POLICY_CONVERT), null);
-	}
-
-	/**
-	 * Updates the model from the target.
-	 */
-	final protected void saveCellEditorValue(CellEditor cellEditor,
-			ViewerCell cell) {
-		editingState.binding.updateTargetToModel();
-	}
-
-	private class ColumnViewerEditorActivationListenerHelper extends
-			ColumnViewerEditorActivationListener {
-
-		public void afterEditorActivated(ColumnViewerEditorActivationEvent event) {
-			// do nothing
-		}
-
-		public void afterEditorDeactivated(
-				ColumnViewerEditorDeactivationEvent event) {
-			editingState.dispose();
-			editingState = null;
-
-			viewer.getColumnViewerEditor().removeEditorActivationListener(this);
-		}
-
-		public void beforeEditorActivated(
-				ColumnViewerEditorActivationEvent event) {
-			// do nothing
-		}
-
-		public void beforeEditorDeactivated(
-				ColumnViewerEditorDeactivationEvent event) {
-			// do nothing
-		}
-	}
-
-	/**
-	 * Maintains references to objects that only live for the length of the edit
-	 * cycle.
-	 */
-	private static class EditingState {
-		IObservableValue target;
-
-		IObservableValue model;
-
-		Binding binding;
-
-		EditingState(Binding binding, IObservableValue target,
-				IObservableValue model) {
-			this.binding = binding;
-			this.target = target;
-			this.model = model;
-		}
-
-		void dispose() {
-			target.dispose();
-			model.dispose();
-			binding.dispose();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/TreeStructureAdvisor.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/TreeStructureAdvisor.java
deleted file mode 100644
index ef56993..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/TreeStructureAdvisor.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.databinding.viewers;
-
-/**
- * Instances of this class can be used to improve accuracy and performance of an
- * {@link ObservableListTreeContentProvider} or an
- * {@link ObservableSetTreeContentProvider}. This class is intended to be
- * subclassed by clients.
- * 
- * @since 1.2
- * 
- */
-public abstract class TreeStructureAdvisor {
-
-	/**
-	 * 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.
-	 * The default implementation returns null; clients should override.
-	 * 
-	 * @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) {
-		return null;
-	}
-
-	/**
-	 * Returns whether the given element has children, or <code>null</code> if
-	 * the actual children collection should be consulted. The default
-	 * implementation returns null; clients should override.
-	 * <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>Boolean.TRUE</code> if the given element has children,
-	 *         <code>Boolean.FALSE</code> if it has no children, or
-	 *         <code>null</code> if the children collection should be
-	 *         consulted.
-	 */
-	public Boolean hasChildren(Object element) {
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ViewersObservables.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ViewersObservables.java
deleted file mode 100644
index 567b52f..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/ViewersObservables.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 206839
- *     Matthew Hall - bug 124684
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.viewers.CheckableCheckedElementsObservableSet;
-import org.eclipse.jface.internal.databinding.viewers.CheckboxViewerCheckedElementsObservableSet;
-import org.eclipse.jface.internal.databinding.viewers.SelectionProviderMultipleSelectionObservableList;
-import org.eclipse.jface.internal.databinding.viewers.SelectionProviderSingleSelectionObservableValue;
-import org.eclipse.jface.internal.databinding.viewers.ViewerInputObservableValue;
-import org.eclipse.jface.internal.databinding.viewers.ViewerMultipleSelectionObservableList;
-import org.eclipse.jface.internal.databinding.viewers.ViewerSingleSelectionObservableValue;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckable;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Factory methods for creating observables for JFace viewers
- * 
- * @since 1.1
- */
-public class ViewersObservables {
-
-	/**
-	 * Returns an observable value that tracks the current selection of the
-	 * given selection provider. If the selection provider provides selections
-	 * of type {@link IStructuredSelection}, the observable value will be the
-	 * first element of the structured selection as returned by
-	 * {@link IStructuredSelection#getFirstElement()}.
-	 * 
-	 * @param selectionProvider
-	 * @return the observable value tracking the (single) selection of the given
-	 *         selection provider
-	 */
-	public static IObservableValue observeSingleSelection(
-			ISelectionProvider selectionProvider) {
-		if (selectionProvider instanceof Viewer) {
-			return observeSingleSelection((Viewer) selectionProvider);
-		}
-		return new SelectionProviderSingleSelectionObservableValue(
-				SWTObservables.getRealm(Display.getDefault()),
-				selectionProvider);
-	}
-
-	/**
-	 * Returns an observable list that tracks the current selection of the
-	 * given selection provider. Assumes that the selection provider provides
-	 * selections of type {@link IStructuredSelection}. Note that the
-	 * observable list will not honor the full contract of
-	 * <code>java.util.List</code> in that it may delete or reorder elements
-	 * based on what the selection provider returns from
-	 * {@link ISelectionProvider#getSelection()} after having called
-	 * {@link ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)}
-	 * based on the requested change to the observable list. The affected
-	 * methods are <code>add</code>, <code>addAll</code>, and
-	 * <code>set</code>.
-	 * 
-	 * @param selectionProvider
-	 * @return the observable value tracking the (multi) selection of the given
-	 *         selection provider
-	 * 
-	 * @since 1.2
-	 */
-	public static IObservableList observeMultiSelection(
-			ISelectionProvider selectionProvider) {
-		if (selectionProvider instanceof Viewer) {
-			return observeMultiSelection((Viewer) selectionProvider);
-		}
-		return new SelectionProviderMultipleSelectionObservableList(
-				SWTObservables.getRealm(Display.getDefault()),
-				selectionProvider, Object.class);
-	}
-
-	/**
-	 * Returns an observable value that tracks the current selection of the
-	 * given viewer. If the viewer provides selections of type
-	 * {@link IStructuredSelection}, the observable value will be the first
-	 * element of the structured selection as returned by
-	 * {@link IStructuredSelection#getFirstElement()}.
-	 * 
-	 * @param viewer
-	 *            the viewer
-	 * @return the observable value tracking the (single) selection of the given
-	 *         viewer
-	 * @since 1.2
-	 */
-	public static IViewerObservableValue observeSingleSelection(Viewer viewer) {
-		return new ViewerSingleSelectionObservableValue(
-				SWTObservables.getRealm(Display.getDefault()),
-				viewer);
-	}
-	
-	/**
-	 * Returns an observable list that tracks the current selection of the
-	 * given viewer. Assumes that the viewer provides
-	 * selections of type {@link IStructuredSelection}. Note that the
-	 * observable list will not honor the full contract of
-	 * <code>java.util.List</code> in that it may delete or reorder elements
-	 * based on what the viewer returns from
-	 * {@link ISelectionProvider#getSelection()} after having called
-	 * {@link ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)}
-	 * based on the requested change to the observable list. The affected
-	 * methods are <code>add</code>, <code>addAll</code>, and
-	 * <code>set</code>.
-	 * 
-	 * @param viewer
-	 * @return the observable value tracking the (multi) selection of the given
-	 *         selection provider
-	 * 
-	 * @since 1.2
-	 */
-	public static IViewerObservableList observeMultiSelection(
-			Viewer viewer) {
-		return new ViewerMultipleSelectionObservableList(
-				SWTObservables.getRealm(Display.getDefault()),
-				viewer, Object.class);
-	}
-	
-	/**
-	 * Returns an observable value that tracks the input of the given viewer.
-	 * <p>
-	 * The returned observer is blind to changes in the viewer's input unless
-	 * its {@link IObservableValue#setValue(Object)} method is called directly.
-	 * 
-	 * @param viewer
-	 *            the viewer to observe
-	 * @return an observable value tracking the input of the given viewer
-	 * @since 1.2
-	 */
-	public static IObservableValue observeInput(Viewer viewer) {
-		return new ViewerInputObservableValue(SWTObservables.getRealm(viewer
-				.getControl().getDisplay()), viewer);
-	}
-
-	/**
-	 * Returns an observable set that tracks the checked elements of the given
-	 * <code>ICheckable</code>.
-	 * 
-	 * @param checkable
-	 *            {@link ICheckable} containing the checked elements to track
-	 * @param elementType
-	 *            element type of the returned set
-	 * @return an observable set tracking the checked elements of the given
-	 *         checkable.
-	 * @since 1.2
-	 */
-	public static IObservableSet observeCheckedElements(ICheckable checkable,
-			Object elementType) {
-		if (checkable instanceof CheckboxTableViewer) {
-			return observeCheckedElements((CheckboxTableViewer) checkable,
-					elementType);
-		}
-		if (checkable instanceof CheckboxTreeViewer) {
-			return observeCheckedElements((CheckboxTreeViewer) checkable,
-					elementType);
-		}
-		return new CheckableCheckedElementsObservableSet(SWTObservables
-				.getRealm(Display.getDefault()), checkable, elementType);
-	}
-
-	/**
-	 * Returns an observable set that tracks the checked elements of the given
-	 * viewer. Assumes that the viewer implements {@link ICheckable}.
-	 * 
-	 * @param viewer
-	 *            {@link CheckboxTableViewer} containing the checked elements to
-	 *            track.
-	 * @param elementType
-	 *            element type of the returned set
-	 * @return an observable set that tracks the checked elements of the given
-	 *         viewer.
-	 * @since 1.2
-	 */
-	public static IViewerObservableSet observeCheckedElements(
-			CheckboxTableViewer viewer, Object elementType) {
-		return new CheckboxViewerCheckedElementsObservableSet(SWTObservables
-				.getRealm(viewer.getControl().getDisplay()), viewer,
-				elementType);
-	}
-
-	/**
-	 * Returns an observable set that tracks the checked elements of the given
-	 * viewer. Assumes that the viewer implements {@link ICheckable}.
-	 * 
-	 * @param viewer
-	 *            {@link CheckboxTreeViewer} containing the checked elements to
-	 *            track.
-	 * @param elementType
-	 *            element type of the returned set
-	 * @return an observable set that tracks the checked elements of the given
-	 *         viewer.
-	 * @since 1.2
-	 */
-	public static IViewerObservableSet observeCheckedElements(
-			CheckboxTreeViewer viewer, Object elementType) {
-		return new CheckboxViewerCheckedElementsObservableSet(SWTObservables
-				.getRealm(viewer.getControl().getDisplay()), viewer,
-				elementType);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/package.html b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/package.html
deleted file mode 100644
index 2ebf748..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that can be used to observe the JFace Viewer framework.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe the JFace Viewer framework.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/wizard/WizardPageSupport.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/wizard/WizardPageSupport.java
deleted file mode 100644
index 3a070ce2..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/wizard/WizardPageSupport.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Boris Bokowski - bug 218269
- *     Matthew Hall - bug 218269
- *     Ashley Cambrell - bug 199179 
- *******************************************************************************/
-package org.eclipse.jface.databinding.wizard;
-
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.AggregateValidationStatus;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.ValidationStatusProvider;
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.wizard.WizardPage;
-
-/**
- * Connects the validation result from the given data binding context to the
- * given wizard page, updating the wizard page's completion state and its error
- * message accordingly.
- * 
- * @noextend This class is not intended to be subclassed by clients.
- *
- * @since 1.1
- */
-public class WizardPageSupport {
-
-	private WizardPage wizardPage;
-	private DataBindingContext dbc;
-	private AggregateValidationStatus aggregateStatus;
-	private boolean uiChanged = false;
-
-	/**
-	 * Connect the validation result from the given data binding context to the
-	 * given wizard page. Upon creation, the wizard page support will use the
-	 * context's validation result to determine whether the page is complete.
-	 * The page's error message will not be set at this time ensuring that the
-	 * wizard page does not show an error right away. Upon any validation result
-	 * change, {@link WizardPage#setPageComplete(boolean)} will be called
-	 * reflecting the new validation result, and the wizard page's error message
-	 * will be updated according to the current validation result.
-	 * 
-	 * @param wizardPage
-	 * @param dbc
-	 * @return an instance of WizardPageSupport
-	 */
-	public static WizardPageSupport create(WizardPage wizardPage,
-			DataBindingContext dbc) {
-		return new WizardPageSupport(wizardPage, dbc);
-	}
-
-	private WizardPageSupport(WizardPage wizardPage, DataBindingContext dbc) {
-		this.wizardPage = wizardPage;
-		this.dbc = dbc;
-		init();
-	}
-
-	private IChangeListener uiChangeListener = new IChangeListener() {
-		public void handleChange(ChangeEvent event) {
-			handleUIChanged();
-		}
-	};
-	private IListChangeListener validationStatusProvidersListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			ListDiff diff = event.diff;
-			ListDiffEntry[] differences = diff.getDifferences();
-			for (int i = 0; i < differences.length; i++) {
-				ListDiffEntry listDiffEntry = differences[i];
-				ValidationStatusProvider validationStatusProvider = (ValidationStatusProvider) listDiffEntry
-						.getElement();
-				IObservableList targets = validationStatusProvider.getTargets();
-				if (listDiffEntry.isAddition()) {
-					targets
-							.addListChangeListener(validationStatusProviderTargetsListener);
-					for (Iterator it = targets.iterator(); it.hasNext();) {
-						((IObservable) it.next())
-								.addChangeListener(uiChangeListener);
-					}
-				} else {
-					targets
-							.removeListChangeListener(validationStatusProviderTargetsListener);
-					for (Iterator it = targets.iterator(); it.hasNext();) {
-						((IObservable) it.next())
-								.removeChangeListener(uiChangeListener);
-					}
-				}
-			}
-		}
-	};
-	private IListChangeListener validationStatusProviderTargetsListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			ListDiff diff = event.diff;
-			ListDiffEntry[] differences = diff.getDifferences();
-			for (int i = 0; i < differences.length; i++) {
-				ListDiffEntry listDiffEntry = differences[i];
-				IObservable target = (IObservable) listDiffEntry.getElement();
-				if (listDiffEntry.isAddition()) {
-					target.addChangeListener(uiChangeListener);
-				} else {
-					target.removeChangeListener(uiChangeListener);
-				}
-			}
-		}
-	};
-	private IStatus currentStatus;
-
-	protected void init() {
-		aggregateStatus = new AggregateValidationStatus(dbc
-				.getValidationStatusProviders(),
-				AggregateValidationStatus.MAX_SEVERITY);
-		aggregateStatus.addValueChangeListener(new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-
-				currentStatus = (IStatus) event.diff.getNewValue();
-				handleStatusChanged();
-			}
-		});
-		currentStatus = (IStatus) aggregateStatus.getValue();
-		handleStatusChanged();
-		dbc.getValidationStatusProviders().addListChangeListener(
-				validationStatusProvidersListener);
-		for (Iterator it = dbc.getValidationStatusProviders().iterator(); it
-				.hasNext();) {
-			ValidationStatusProvider validationStatusProvider = (ValidationStatusProvider) it
-					.next();
-			IObservableList targets = validationStatusProvider.getTargets();
-			targets
-					.addListChangeListener(validationStatusProviderTargetsListener);
-			for (Iterator iter = targets.iterator(); iter.hasNext();) {
-				((IObservable) iter.next()).addChangeListener(uiChangeListener);
-			}
-		}
-	}
-
-	protected void handleUIChanged() {
-		uiChanged = true;
-		if (currentStatus != null) {
-			handleStatusChanged();
-		}
-		dbc.getValidationStatusProviders().removeListChangeListener(
-				validationStatusProvidersListener);
-		for (Iterator it = dbc.getValidationStatusProviders().iterator(); it
-				.hasNext();) {
-			ValidationStatusProvider validationStatusProvider = (ValidationStatusProvider) it
-					.next();
-			IObservableList targets = validationStatusProvider.getTargets();
-			targets
-					.removeListChangeListener(validationStatusProviderTargetsListener);
-			for (Iterator iter = targets.iterator(); iter.hasNext();) {
-				((IObservable) iter.next())
-						.removeChangeListener(uiChangeListener);
-			}
-		}
-	}
-
-	protected void handleStatusChanged() {
-		if (currentStatus != null
-				&& currentStatus.getSeverity() == IStatus.ERROR) {
-			wizardPage.setPageComplete(false);
-			wizardPage.setMessage(null);
-			wizardPage.setErrorMessage(uiChanged ? currentStatus.getMessage()
-					: null);
-			if (currentStatusHasException()) {
-				handleStatusException();
-			}
-		} else if (currentStatus != null
-				&& currentStatus.getSeverity() != IStatus.OK) {
-			int severity = currentStatus.getSeverity();
-			wizardPage.setPageComplete((severity & IStatus.CANCEL) != 0);
-			int type;
-			switch (severity) {
-			case IStatus.OK:
-				type = IMessageProvider.NONE;
-				break;
-			case IStatus.CANCEL:
-				type = IMessageProvider.NONE;
-				break;
-			case IStatus.INFO:
-				type = IMessageProvider.INFORMATION;
-				break;
-			case IStatus.WARNING:
-				type = IMessageProvider.WARNING;
-				break;
-			case IStatus.ERROR:
-				type = IMessageProvider.ERROR;
-				break;
-			default:
-				throw new AssertionFailedException(
-						"incomplete switch statement"); //$NON-NLS-1$
-			}
-			wizardPage.setErrorMessage(null);
-			wizardPage.setMessage(currentStatus.getMessage(), type);
-		} else {
-			wizardPage.setPageComplete(true);
-			wizardPage.setMessage(null);
-			wizardPage.setErrorMessage(null);
-		}
-	}
-
-	private boolean currentStatusHasException() {
-		boolean hasException = false;
-		if (currentStatus.getException() != null) {
-			hasException = true;
-		}
-		if (currentStatus instanceof MultiStatus) {
-			MultiStatus multiStatus = (MultiStatus) currentStatus;
-
-			for (int i = 0; i < multiStatus.getChildren().length; i++) {
-				IStatus status = multiStatus.getChildren()[i];
-				if (status.getException() != null) {
-					hasException = true;
-					break;
-				}
-			}
-		}
-		return hasException;
-	}
-
-	/**
-	 * This is called when a Override to provide custom exception handling and
-	 * reporting.
-	 */
-	protected void handleStatusException() {
-		if (currentStatus.getException() != null) {
-			logThrowable(currentStatus.getException());
-		} else if (currentStatus instanceof MultiStatus) {
-			MultiStatus multiStatus = (MultiStatus) currentStatus;
-			for (int i = 0; i < multiStatus.getChildren().length; i++) {
-				IStatus status = multiStatus.getChildren()[i];
-				if (status.getException() != null) {
-					logThrowable(status.getException());
-				}
-			}
-		}
-	}
-
-	private void logThrowable(Throwable throwable) {
-		Policy
-				.getLog()
-				.log(
-						new Status(
-								IStatus.ERROR,
-								Policy.JFACE_DATABINDING,
-								IStatus.OK,
-								"Unhandled exception: " + throwable.getMessage(), throwable)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Disposes of this wizard page support object, removing any listeners it
-	 * may have attached.
-	 */
-	public void dispose() {
-		aggregateStatus.dispose();
-		if (!uiChanged) {
-			for (Iterator it = dbc.getValidationStatusProviders().iterator(); it
-					.hasNext();) {
-				ValidationStatusProvider validationStatusProvider = (ValidationStatusProvider) it
-						.next();
-				IObservableList targets = validationStatusProvider.getTargets();
-				targets
-						.removeListChangeListener(validationStatusProviderTargetsListener);
-				for (Iterator iter = targets.iterator(); iter.hasNext();) {
-					((IObservable) iter.next())
-							.removeChangeListener(uiChangeListener);
-				}
-			}
-			dbc.getValidationStatusProviders().removeListChangeListener(
-					validationStatusProvidersListener);
-		}
-		aggregateStatus = null;
-		dbc = null;
-		uiChangeListener = null;
-		validationStatusProvidersListener = null;
-		validationStatusProviderTargetsListener = null;
-		wizardPage = null;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/wizard/package.html b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/wizard/package.html
deleted file mode 100755
index b094981..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/wizard/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that bridge between data binding and the JFace Wizard framework.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that bridge between data binding and the JFace Wizard framework.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/swt/LinkObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/swt/LinkObservableValue.java
deleted file mode 100644
index fac5372..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/swt/LinkObservableValue.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Michael Krauter, Catuno GmbH and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Michael Krauter, Catuno GmbH - initial API and implementation (bug 180223)
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.internal.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.widgets.Link;
-
-/**
- * @since 1.2
- * 
- */
-public class LinkObservableValue extends AbstractSWTObservableValue {
-
-	private final Link link;
-
-	/**
-	 * @param link
-	 */
-	public LinkObservableValue(Link link) {
-		super(link);
-		this.link = link;
-	}
-
-	public void doSetValue(final Object value) {
-		String oldValue = link.getText();
-		link.setText(value == null ? "" : value.toString()); //$NON-NLS-1$
-		fireValueChange(Diffs.createValueDiff(oldValue, link.getText()));
-	}
-
-	public Object doGetValue() {
-		return link.getText();
-	}
-
-	public Object getValueType() {
-		return String.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTObservableValue.java
deleted file mode 100644
index 3f667fd..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTObservableValue.java
+++ /dev/null
@@ -1,69 +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.internal.databinding.provisional.swt;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.jface.databinding.swt.ISWTObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * NON-API - An abstract superclass for observable values that gurantees that the 
- * observable will be disposed when the control to which it is attached is
- * disposed.
- * 
- * @since 1.1
- */
-public abstract class AbstractSWTObservableValue extends AbstractObservableValue implements ISWTObservableValue {
-
-	private final Widget widget;
-
-	/**
-	 * Standard constructor for an SWT ObservableValue.  Makes sure that
-	 * the observable gets disposed when the SWT widget is disposed.
-	 * 
-	 * @param widget
-	 */
-	protected AbstractSWTObservableValue(Widget widget) {
-		this(SWTObservables.getRealm(widget.getDisplay()), widget);
-	}
-	
-	/**
-	 * Constructor that allows for the setting of the realm. Makes sure that the
-	 * observable gets disposed when the SWT widget is disposed.
-	 * 
-	 * @param realm
-	 * @param widget
-	 * @since 1.2
-	 */
-	protected AbstractSWTObservableValue(Realm realm, Widget widget) {
-		super(realm);
-		this.widget = widget;
-		widget.addDisposeListener(disposeListener);
-	}
-	
-	private DisposeListener disposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			AbstractSWTObservableValue.this.dispose();
-		}
-	};
-
-	/**
-	 * @return Returns the widget.
-	 */
-	public Widget getWidget() {
-		return widget;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTVetoableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTVetoableValue.java
deleted file mode 100644
index 7cf6954..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/AbstractSWTVetoableValue.java
+++ /dev/null
@@ -1,71 +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.internal.databinding.provisional.swt;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.AbstractVetoableValue;
-import org.eclipse.jface.databinding.swt.ISWTObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * NON-API - An abstract superclass for vetoable values that gurantees that the 
- * observable will be disposed when the control to which it is attached is
- * disposed.
- * 
- * @since 1.1
- */
-public abstract class AbstractSWTVetoableValue extends AbstractVetoableValue implements ISWTObservableValue {
-
-	private final Widget widget;
-
-	/**
-	 * Standard constructor for an SWT VetoableValue.  Makes sure that
-	 * the observable gets disposed when the SWT widget is disposed.
-	 * 
-	 * @param widget
-	 */
-	protected AbstractSWTVetoableValue(Widget widget) {
-		this(SWTObservables.getRealm(widget.getDisplay()), widget);
-	}
-	
-	/**
-	 * Constructs a new instance for the provided <code>realm</code> and <code>widget</code>.
-	 * 
-	 * @param realm
-	 * @param widget
-	 * @since 1.2
-	 */
-	protected AbstractSWTVetoableValue(Realm realm, Widget widget) {
-		super(realm);
-		this.widget = widget;
-		if (widget == null) {
-			throw new IllegalArgumentException("The widget parameter is null."); //$NON-NLS-1$
-		}
-		widget.addDisposeListener(disposeListener);
-	}
-	
-	private DisposeListener disposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			AbstractSWTVetoableValue.this.dispose();
-		}
-	};
-
-	/**
-	 * @return Returns the widget.
-	 */
-	public Widget getWidget() {
-		return widget;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/CompositeUpdater.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/CompositeUpdater.java
deleted file mode 100644
index 2927e3d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/CompositeUpdater.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Boris Bokowski, IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.swt;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * NON-API - This class can be used to update a composite with automatic dependency tracking.
- * @since 1.1
- * 
- */
-public abstract class CompositeUpdater {
-
-	private class UpdateRunnable implements Runnable, IChangeListener {
-		private Widget widget;
-		Object element;
-
-		private boolean dirty = true;
-
-		private IObservable[] dependencies = new IObservable[0];
-
-		UpdateRunnable(Widget widget, Object element) {
-			this.widget = widget;
-			this.element = element;
-		}
-
-		// Runnable implementation. This method runs at most once per repaint
-		// whenever the
-		// value gets marked as dirty.
-		public void run() {
-			if (theComposite != null && !theComposite.isDisposed()
-					&& widget != null && !widget.isDisposed()) {
-				updateIfNecessary();
-			}
-		}
-
-		private void updateIfNecessary() {
-			if (dirty) {
-				dependencies = ObservableTracker.runAndMonitor(new Runnable() {
-					public void run() {
-						updateWidget(widget, element);
-					}
-				}, this, null);
-				dirty = false;
-			}
-		}
-
-		// IChangeListener implementation (listening to any dependency)
-		public void handleChange(ChangeEvent event) {
-			// Whenever this updator becomes dirty, schedule the run() method
-			makeDirty();
-		}
-
-		protected final void makeDirty() {
-			if (!dirty) {
-				dirty = true;
-				stopListening();
-				if (!theComposite.isDisposed()) {
-					SWTUtil.runOnce(theComposite.getDisplay(), this);
-				}
-			}
-		}
-
-		private void stopListening() {
-			// Stop listening for dependency changes
-			for (int i = 0; i < dependencies.length; i++) {
-				IObservable observable = dependencies[i];
-
-				observable.removeChangeListener(this);
-			}
-		}
-	}
-	
-	private class LayoutRunnable implements Runnable {
-		private boolean posted = false;
-		private Set controlsToLayout = new HashSet();
-		void add(Control toLayout) {
-			controlsToLayout.add(toLayout);
-			if (!posted) {
-				posted = true;
-				theComposite.getDisplay().asyncExec(this);
-			}
-		}
-		public void run() {
-			posted = false;
-			theComposite.getShell().layout((Control[])controlsToLayout.toArray(new Control[controlsToLayout.size()]));
-			controlsToLayout.clear();
-		}
-	}
-	
-	private LayoutRunnable layoutRunnable = new LayoutRunnable();
-	
-	/**
-	 * To be called from {@link #updateWidget(Widget, Object)} or {@link #createWidget(int)}
-	 * if this updater's composite's layout may need to be updated. 
-	 * @param control
-	 * @since 1.2
-	 */
-	protected void requestLayout(Control control) {
-		layoutRunnable.add(control);
-	}
-
-	private class PrivateInterface implements DisposeListener,
-			IListChangeListener {
-
-		// DisposeListener implementation
-		public void widgetDisposed(DisposeEvent e) {
-			CompositeUpdater.this.dispose();
-		}
-
-		public void handleListChange(ListChangeEvent event) {
-			ListDiffEntry[] diffs = event.diff.getDifferences();
-			for (int i = 0; i < diffs.length; i++) {
-				ListDiffEntry listDiffEntry = diffs[i];
-				if (listDiffEntry.isAddition()) {
-					createChild(listDiffEntry.getElement(), listDiffEntry.getPosition());
-				} else {
-					disposeWidget(listDiffEntry.getPosition());
-				}
-			}
-			theComposite.layout();
-		}
-
-	}
-
-	private PrivateInterface privateInterface = new PrivateInterface();
-
-	private Composite theComposite;
-
-	private IObservableList model;
-
-	/**
-	 * Creates an updater for the given control and list. For each element of
-	 * the list, a child widget of the composite will be created using
-	 * {@link #createWidget(int)}.
-	 * 
-	 * @param toUpdate
-	 *            composite to update
-	 * @param model
-	 *            an observable list to track
-	 */
-	public CompositeUpdater(Composite toUpdate, IObservableList model) {
-		this.theComposite = toUpdate;
-		this.model = model;
-
-		model.addListChangeListener(privateInterface);
-		theComposite.addDisposeListener(privateInterface);
-		ObservableTracker.runAndIgnore(new Runnable(){
-			public void run() {
-				int index = 0;
-				for (Iterator it = CompositeUpdater.this.model.iterator(); it.hasNext();) {
-					Object element = it.next();
-					createChild(element, index++);
-				}
-			}
-		});
-	}
-
-	/**
-	 * @param position
-	 * @since 1.2
-	 */
-	protected void disposeWidget(int position) {
-		theComposite.getChildren()[position].dispose();
-	}
-
-	/**
-	 * This is called automatically when the control is disposed. It may also be
-	 * called explicitly to remove this updator from the control. Subclasses
-	 * will normally extend this method to detach any listeners they attached in
-	 * their constructor.
-	 */
-	public void dispose() {
-		theComposite.removeDisposeListener(privateInterface);
-		model.removeListChangeListener(privateInterface);
-	}
-
-	/**
-	 * Creates a new child widget for the target composite at the given index.
-	 * 
-	 * <p>
-	 * Subclasses should implement this method to provide the code that creates
-	 * a child widget at a specific index. Note that
-	 * {@link #updateWidget(Widget, Object)} will be called after this method
-	 * returns. Only those properties of the widget that don't change over time
-	 * should be set in this method.
-	 * </p>
-	 * 
-	 * @param index
-	 *            the at which to create the widget
-	 * @return the widget
-	 */
-	protected abstract Widget createWidget(int index);
-
-	/**
-	 * Updates the given widget based on the element found in the model list.
-	 * This method will be invoked once after the widget is created, and once
-	 * before any repaint during which the control is visible and dirty.
-	 * 
-	 * <p>
-	 * Subclasses should implement this method to provide any code that changes
-	 * the appearance of the widget.
-	 * </p>
-	 * 
-	 * @param widget
-	 *            the widget to update
-	 * @param element
-	 *            the element associated with the widget
-	 */
-	protected abstract void updateWidget(Widget widget, Object element);
-
-	void createChild(Object element, int index) {
-		Widget newChild = createWidget(index);
-		final UpdateRunnable updateRunnable = new UpdateRunnable(newChild, element);
-		newChild.setData(updateRunnable);
-		updateRunnable.updateIfNecessary();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/ControlUpdater.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/ControlUpdater.java
deleted file mode 100644
index ca819b7..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/ControlUpdater.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.swt;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-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.widgets.Control;
-
-/**
- * NON-API - A ControlUpdater updates an SWT control in response to changes in the model.
- * By wrapping a block of code in a ControlUpdater, clients can rely on the fact
- * that the block of code will be re-executed whenever anything changes in the
- * model that might affect its behavior.
- *  
- * <p>
- * ControlUpdaters only execute when their controls are visible. If something changes
- * in the model while the control is invisible, the updator is flagged as dirty and
- * the updator stops listening to the model until the next time the control repaints.
- * This saves CPU cycles by deferring UI updates to widgets that are currently invisible.
- * </p>
- * 
- * <p>
- * Clients should subclass this when copying information from the model to
- * a control. Typical usage:
- * </p>
- * 
- * <ul>
- * <li>Override updateControl. It should do whatever is necessary to display
- *     the contents of the model in the control.</li>
- * <li>In the constructor, attach listeners to the model. The listeners should 
- *     call markDirty whenever anything changes in the model that affects 
- *     updateControl. Note: this step can be omitted when calling any method
- *     tagged with "@TrackedGetter" since ControlUpdater will automatically attach
- *     a listener to any object if a "@TrackedGetter" method is called in
- *     updateControl.</li>
- * <li>(optional)Extend dispose() to remove any listeners attached in the constructor</li>
- * </ul>
- * 
- * <p>
- * Example:
- * </p>
- * 
- * <code>
- * // Displays an observable value in a label and keeps the label in synch with changes
- * // in the value.
- * IReadableValue someValue = ...
- * final Label myLabel = new Label(parent, SWT.NONE);
- * new ControlUpdater(myLabel) {
- * 		protected void updateControl() {
- * 		   myLabel.setText(someValue.getValue().toString);
- *      }
- * }
- * // myLabel will display the value of someValue the next time it repaints, and will automatically
- * // be updated whenever someValue changes and the label is visible
- * </code>
- * 
- * @since 1.1
- */
-public abstract class ControlUpdater {
-	
-	private class PrivateInterface implements PaintListener, 
-		DisposeListener, Runnable, IChangeListener {
-		
-		// PaintListener implementation
-		public void paintControl(PaintEvent e) {
-			updateIfNecessary();
-		}
-
-		// DisposeListener implementation
-		public void widgetDisposed(DisposeEvent e) {
-			ControlUpdater.this.dispose();
-		}
-		
-		// Runnable implementation. This method runs at most once per repaint whenever the
-		// value gets marked as dirty.
-		public void run() {
-			if (theControl != null && !theControl.isDisposed() && theControl.isVisible()) {
-				updateIfNecessary();
-			}
-		}
-		
-		// IChangeListener implementation (listening to the ComputedValue)
-		public void handleChange(ChangeEvent event) {
-			// Whenever this updator becomes dirty, schedule the run() method 
-			makeDirty();
-		}
-		
-	}
-	
-	private Runnable updateRunnable = new Runnable() {
-		public void run() {
-			updateControl();
-		}
-	};
-	
-	private PrivateInterface privateInterface = new PrivateInterface();
-	private Control theControl;
-	private IObservable[] dependencies = new IObservable[0];
-	private boolean dirty = false;
-	
-	/**
-	 * Creates an updater for the given control.  
-	 * 
-	 * @param toUpdate control to update
-	 */
-	public ControlUpdater(Control toUpdate) {
-		theControl = toUpdate;
-		
-		theControl.addDisposeListener(privateInterface);
-		theControl.addPaintListener(privateInterface);
-		makeDirty();
-	}
-	
-	private void updateIfNecessary() {
-		if (dirty) {
-			dependencies = ObservableTracker.runAndMonitor(updateRunnable, privateInterface, null);
-			dirty = false;
-		}
-	}
-
-	/**
-	 * This is called automatically when the control is disposed. It may also
-	 * be called explicitly to remove this updator from the control. Subclasses
-	 * will normally extend this method to detach any listeners they attached
-	 * in their constructor.
-	 */
-	public void dispose() {
-		theControl.removeDisposeListener(privateInterface);
-		theControl.removePaintListener(privateInterface);
-
-		stopListening();
-	}
-
-	private void stopListening() {
-		// Stop listening for dependency changes
-		for (int i = 0; i < dependencies.length; i++) {
-			IObservable observable = dependencies[i];
-				
-			observable.removeChangeListener(privateInterface);
-		}
-	}
-
-	/**
-	 * Updates the control. This method will be invoked once after the
-	 * updator is created, and once before any repaint during which the 
-	 * control is visible and dirty.
-	 *  
-	 * <p>
-	 * Subclasses should overload this method to provide any code that 
-	 * changes the appearance of the widget.
-	 * </p>
-	 */
-	protected abstract void updateControl();
-	
-	/**
-	 * Marks this updator as dirty. Causes the updateControl method to
-	 * be invoked before the next time the control is repainted.
-	 */
-	protected final void makeDirty() {
-		if (!dirty) {
-			dirty = true;
-			stopListening();
-			SWTUtil.runOnce(theControl.getDisplay(), privateInterface);
-		}
-	}
-	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/MenuUpdater.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/MenuUpdater.java
deleted file mode 100644
index a40060d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/MenuUpdater.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.swt;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MenuEvent;
-import org.eclipse.swt.events.MenuListener;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * NON-API - A MenuUpdater updates an SWT menu in response to changes in the model. By
- * wrapping a block of code in a MenuUpdater, clients can rely on the fact that
- * the block of code will be re-executed whenever anything changes in the model
- * that might affect its behavior.
- * 
- * <p>
- * MenuUpdaters only execute once their menus are shown. If something changes in
- * the model, the updater is flagged as dirty and it stops listening to the
- * model until the next time the menu is shown. If the menu is visible while the
- * model changes, it will be updated right away.
- * </p>
- * 
- * <p>
- * Clients should subclass this when copying information from the model to a
- * menu. Typical usage:
- * </p>
- * 
- * <ul>
- * <li>Override updateMenu. It should do whatever is necessary to display the
- * contents of the model in the menu.</li>
- * <li>In the constructor, attach listeners to the model. The listeners should
- * call markDirty whenever anything changes in the model that affects
- * updateMenu. Note: this step can be omitted when calling any method tagged
- * with "@TrackedGetter" since MenuUpdater will automatically attach a listener
- * to any object if a "@TrackedGetter" method is called in updateMenu.</li>
- * <li>(optional)Extend dispose() to remove any listeners attached in the
- * constructor</li>
- * </ul>
- * 
- * @since 1.1
- */
-public abstract class MenuUpdater {
-	
-	private class PrivateInterface implements MenuListener, 
-		DisposeListener, Runnable, IChangeListener {
-
-		// DisposeListener implementation
-		public void widgetDisposed(DisposeEvent e) {
-			MenuUpdater.this.dispose();
-		}
-		
-		// Runnable implementation. This method runs at most once per repaint whenever the
-		// value gets marked as dirty.
-		public void run() {
-			if (theMenu != null && !theMenu.isDisposed() && theMenu.isVisible()) {
-				updateIfNecessary();
-			}
-		}
-		
-		// IChangeListener implementation (listening to the ComputedValue)
-		public void handleChange(ChangeEvent event) {
-			// Whenever this updator becomes dirty, schedule the run() method 
-			makeDirty();
-		}
-
-		public void menuHidden(MenuEvent e) {
-			// do nothing
-		}
-
-		public void menuShown(MenuEvent e) {
-			updateIfNecessary();
-		}
-		
-	}
-	
-	private Runnable updateRunnable = new Runnable() {
-		public void run() {
-			updateMenu();
-		}
-	};
-	
-	private PrivateInterface privateInterface = new PrivateInterface();
-	private Menu theMenu;
-	private IObservable[] dependencies = new IObservable[0];
-	private boolean dirty = false;
-	
-	/**
-	 * Creates an updator for the given menu.  
-	 * 
-	 * @param toUpdate menu to update
-	 */
-	public MenuUpdater(Menu toUpdate) {
-		theMenu = toUpdate;
-		
-		theMenu.addDisposeListener(privateInterface);
-		theMenu.addMenuListener(privateInterface);
-		makeDirty();
-	}
-	
-	private void updateIfNecessary() {
-		if (dirty) {
-			dependencies = ObservableTracker.runAndMonitor(updateRunnable, privateInterface, null);
-			dirty = false;
-		}
-	}
-
-	/**
-	 * This is called automatically when the menu is disposed. It may also
-	 * be called explicitly to remove this updator from the menu. Subclasses
-	 * will normally extend this method to detach any listeners they attached
-	 * in their constructor.
-	 */
-	public void dispose() {
-		theMenu.removeDisposeListener(privateInterface);
-		theMenu.removeMenuListener(privateInterface);
-
-		stopListening();
-	}
-
-	private void stopListening() {
-		// Stop listening for dependency changes
-		for (int i = 0; i < dependencies.length; i++) {
-			IObservable observable = dependencies[i];
-				
-			observable.removeChangeListener(privateInterface);
-		}
-	}
-
-	/**
-	 * Updates the menu. This method will be invoked once after the
-	 * updater is created, and once for any SWT.Show event if this 
-	 * updater is marked as dirty at that time.
-	 *  
-	 * <p>
-	 * Subclasses should overload this method to provide any code that 
-	 * udates the menu.
-	 * </p>
-	 */
-	protected abstract void updateMenu();
-	
-	/**
-	 * Marks this updator as dirty. Causes the updateControl method to
-	 * be invoked before the next time the control is repainted.
-	 */
-	protected final void makeDirty() {
-		if (!dirty) {
-			dirty = true;
-			stopListening();
-			SWTUtil.runOnce(theMenu.getDisplay(), privateInterface);
-		}
-	}
-	
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/SWTUtil.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/SWTUtil.java
deleted file mode 100644
index 541711d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/SWTUtil.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.swt;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * NON-API - Utility methods, mainly having to do with posting runnables to the UI thread
- * in a particular way.
- * @since 1.1
- * 
- */
-public class SWTUtil {
-    /**
-     * Stores a work queue for each display
-     */
-    private static Map mapDisplayOntoWorkQueue = new HashMap();
-
-    private SWTUtil() {
-    }
-
-    /**
-     * Runs the given runnable on the given display as soon as possible. If
-     * possible, the runnable will be executed before the next widget is
-     * repainted, but this behavior is not guaranteed. Use this method to
-     * schedule work will affect the way one or more widgets are drawn.
-     * 
-     * <p>
-     * This is threadsafe.
-     * </p>
-     * 
-     * @param d
-     *            display
-     * @param r
-     *            runnable to execute in the UI thread.
-     */
-    public static void greedyExec(Display d, Runnable r) {
-        if (d.isDisposed()) {
-            return;
-        }
-
-        // if (Display.getCurrent() == d) {
-        // r.run();
-        // } else {
-        WorkQueue queue = getQueueFor(d);
-        queue.asyncExec(r);
-        // }
-    }
-
-    /**
-     * Runs the given runnable on the given display as soon as possible. Unlike
-     * greedyExec, this has no effect if the given runnable has already been
-     * scheduled for execution. Use this method to schedule work that will
-     * affect the way one or more wigdets are drawn, but that should only happen
-     * once.
-     * 
-     * <p>
-     * This is threadsafe.
-     * </p>
-     * 
-     * @param d
-     *            display
-     * @param r
-     *            runnable to execute in the UI thread. Has no effect if the
-     *            given runnable has already been scheduled but has not yet run.
-     */
-    public static void runOnce(Display d, Runnable r) {
-        if (d.isDisposed()) {
-            return;
-        }
-        WorkQueue queue = getQueueFor(d);
-        queue.runOnce(r);
-    }
-
-    /**
-     * Cancels a greedyExec or runOnce that was previously scheduled on the
-     * given display. Has no effect if the given runnable is not in the queue
-     * for the given display
-     * 
-     * @param d
-     *            target display
-     * @param r
-     *            runnable to execute
-     */
-    public static void cancelExec(Display d, Runnable r) {
-        if (d.isDisposed()) {
-            return;
-        }
-        WorkQueue queue = getQueueFor(d);
-        queue.cancelExec(r);
-    }
-
-    /**
-     * Returns the work queue for the given display. Creates a work queue if
-     * none exists yet.
-     * 
-     * @param d
-     *            display to return queue for
-     * @return a work queue (never null)
-     */
-    private static WorkQueue getQueueFor(final Display d) {
-        WorkQueue result;
-        synchronized (mapDisplayOntoWorkQueue) {
-            // Look for existing queue
-            result = (WorkQueue) mapDisplayOntoWorkQueue.get(d);
-
-            if (result == null) {
-                // If none, create new queue
-                result = new WorkQueue(d);
-                final WorkQueue q = result;
-                mapDisplayOntoWorkQueue.put(d, result);
-                d.asyncExec(new Runnable() {
-                    public void run() {
-                        d.disposeExec(new Runnable() {
-                            public void run() {
-                                synchronized (mapDisplayOntoWorkQueue) {
-                                    q.cancelAll();
-                                    mapDisplayOntoWorkQueue.remove(d);
-                                }
-                            }
-                        });
-                    }
-                });
-            }
-            return result;
-        }
-    }
-    
-    /**
-     * @param rgb1
-     * @param rgb2
-     * @param ratio
-     * @return the RGB object
-     */
-    public static RGB mix(RGB rgb1, RGB rgb2, double ratio) {
-        return new RGB(interp(rgb1.red, rgb2.red, ratio), 
-                interp(rgb1.green, rgb2.green, ratio),
-                interp(rgb1.blue, rgb2.blue, ratio));
-    }
-    
-    private static int interp(int i1, int i2, double ratio) {
-        int result = (int)(i1 * ratio + i2 * (1.0d - ratio));
-        if (result < 0) result = 0;
-        if (result > 255) result = 255;
-        return result;
-    }
-    
-	/**
-	 * Logs an exception as though it was thrown by a SafeRunnable being run
-	 * with the default ISafeRunnableRunner. Will not open modal dialogs or spin
-	 * the event loop.
-	 * 
-	 * @param t
-	 *            throwable to log
-	 * @deprecated
-	 * @noreference This method is not intended to be referenced by clients. It
-	 *              remains here for API backwards compatibility.
-	 */
-	public static void logException(final Exception t) {
-		SafeRunnable.run(new SafeRunnable() {
-			public void run() throws Exception {
-				throw t;
-			}
-			public void handleException(Throwable e) {
-				// IMPORTANT: Do not call the super implementation, since
-				// it opens a modal dialog, and may cause *syncExecs to run
-				// too early.
-			}
-		});
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/TableUpdater.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/TableUpdater.java
deleted file mode 100644
index 8570a3c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/TableUpdater.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.swt;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-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.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * NON-API - This class can be used to update a table with automatic dependency
- * tracking.
- * 
- * @since 1.1
- * 
- * @noextend This class is not intended to be subclassed by clients. (We do
- *           encourage experimentation for non-production code and are
- *           interested in feedback though.)
- * 
- */
-public abstract class TableUpdater {
-
-	private class UpdateRunnable implements Runnable, IChangeListener,
-			DisposeListener {
-		private TableItem item;
-
-		private boolean dirty = false;
-
-		private IObservable[] dependencies = new IObservable[0];
-
-		private final Object element;
-
-		UpdateRunnable(TableItem item, Object element) {
-			this.item = item;
-			this.element = element;
-			item.addDisposeListener(this);
-		}
-
-		// Runnable implementation. This method runs at most once per repaint
-		// whenever the
-		// value gets marked as dirty.
-		public void run() {
-			if (table != null && !table.isDisposed() && item != null
-					&& !item.isDisposed()) {
-				if (table.isVisible()) {
-					int tableHeight = table.getClientArea().height;
-					int numVisibleItems = tableHeight / table.getItemHeight();
-					int indexOfItem = table.indexOf(item);
-					int topIndex = table.getTopIndex();
-					if (indexOfItem >= topIndex
-							&& indexOfItem <= topIndex + numVisibleItems) {
-						updateIfNecessary(indexOfItem);
-						return;
-					}
-				}
-				table.clear(table.indexOf(item));
-			}
-		}
-
-		private void updateIfNecessary(final int indexOfItem) {
-			if (dirty) {
-				dependencies = ObservableTracker.runAndMonitor(new Runnable() {
-					public void run() {
-						updateItem(indexOfItem, item, element);
-					}
-				}, this, null);
-				dirty = false;
-			}
-		}
-
-		// IChangeListener implementation (listening to the ComputedValue)
-		public void handleChange(ChangeEvent event) {
-			// Whenever this updator becomes dirty, schedule the run() method
-			makeDirty();
-		}
-
-		protected final void makeDirty() {
-			if (!dirty) {
-				dirty = true;
-				stopListening();
-				SWTUtil.runOnce(table.getDisplay(), this);
-			}
-		}
-
-		private void stopListening() {
-			// Stop listening for dependency changes
-			for (int i = 0; i < dependencies.length; i++) {
-				IObservable observable = dependencies[i];
-
-				observable.removeChangeListener(this);
-			}
-		}
-
-		// DisposeListener implementation
-		public void widgetDisposed(DisposeEvent e) {
-			stopListening();
-			dependencies = null;
-			item = null;
-		}
-	}
-
-	private class PrivateInterface implements Listener, DisposeListener {
-
-		// Listener implementation
-		public void handleEvent(Event e) {
-			if (e.type == SWT.SetData) {
-				UpdateRunnable runnable = (UpdateRunnable) e.item.getData();
-				if (runnable == null) {
-					runnable = new UpdateRunnable((TableItem) e.item, list.get(e.index));
-					e.item.setData(runnable);
-					runnable.makeDirty();
-				} else {
-					runnable.updateIfNecessary(e.index);
-				}
-			}
-		}
-
-		// DisposeListener implementation
-		public void widgetDisposed(DisposeEvent e) {
-			TableUpdater.this.dispose();
-		}
-
-	}
-
-	private PrivateInterface privateInterface = new PrivateInterface();
-
-	private Table table;
-
-	private IListChangeListener listChangeListener = new IListChangeListener() {
-		public void handleListChange(ListChangeEvent event) {
-			ListDiffEntry[] differences = event.diff.getDifferences();
-			for (int i = 0; i < differences.length; i++) {
-				ListDiffEntry entry = differences[i];
-				if (entry.isAddition()) {
-					TableItem item = new TableItem(table, SWT.NONE, entry
-							.getPosition());
-					UpdateRunnable updateRunnable = new UpdateRunnable(item, entry.getElement());
-					item.setData(updateRunnable);
-					updateRunnable.makeDirty();
-				} else {
-					table.getItem(entry.getPosition()).dispose();
-				}
-			}
-		}
-	};
-
-	private IObservableList list;
-
-	/**
-	 * Creates an updator for the given control.
-	 * 
-	 * @param table
-	 *            table to update
-	 * @param list
-	 * @since 1.2
-	 */
-	public TableUpdater(Table table, IObservableList list) {
-		this.table = table;
-		this.list = list;
-		Assert.isLegal((table.getStyle() & SWT.VIRTUAL) != 0,
-				"TableUpdater requires virtual table"); //$NON-NLS-1$
-
-		table.setItemCount(list.size());
-		list.addListChangeListener(listChangeListener);
-
-		table.addDisposeListener(privateInterface);
-		table.addListener(SWT.SetData, privateInterface);
-	}
-
-	/**
-	 * This is called automatically when the control is disposed. It may also be
-	 * called explicitly to remove this updator from the control. Subclasses
-	 * will normally extend this method to detach any listeners they attached in
-	 * their constructor.
-	 */
-	public void dispose() {
-		table.removeDisposeListener(privateInterface);
-		table.removeListener(SWT.SetData, privateInterface);
-		list.removeListChangeListener(listChangeListener);
-		table = null;
-		list = null;
-	}
-
-	/**
-	 * Updates the control. This method will be invoked once after the updator
-	 * is created, and once before any repaint during which the control is
-	 * visible and dirty.
-	 * 
-	 * <p>
-	 * Subclasses should overload this method to provide any code that changes
-	 * the appearance of the widget.
-	 * </p>
-	 * 
-	 * @param index
-	 * @param item
-	 *            the item to update
-	 * @param element
-	 * @since 1.2
-	 */
-	protected abstract void updateItem(int index, TableItem item, Object element);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/WorkQueue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/WorkQueue.java
deleted file mode 100644
index 9668f02..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/swt/WorkQueue.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.swt;
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.Set;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * NON-API - Helper class to manage a queue of runnables to be posted to the UI thread in a way
- * that they are only run once.
- * @since 1.1
- *
- */
-public class WorkQueue {
-	
-    private boolean updateScheduled = false;
-
-    private boolean paintListenerAttached = false;
-
-    private LinkedList pendingWork = new LinkedList();
-
-    private Display d;
-
-    private Set pendingWorkSet = new HashSet();
-
-    private Runnable updateJob = new Runnable() {
-        public void run() {
-            doUpdate();
-            updateScheduled = false;
-        }
-    };
-
-    private Listener paintListener = new Listener() {
-        public void handleEvent(Event event) {
-            paintListenerAttached = false;
-            d.removeFilter(SWT.Paint, this);
-            doUpdate();
-        }
-    };
-
-    /**
-     * @param targetDisplay
-     */
-    public WorkQueue(Display targetDisplay) {
-        d = targetDisplay;
-    }
-
-    private void doUpdate() {
-        for (;;) {
-            Runnable next;
-            synchronized (pendingWork) {
-                if (pendingWork.isEmpty()) {
-                    break;
-                }
-                next = (Runnable) pendingWork.removeFirst();
-                pendingWorkSet.remove(next);
-            }
-
-            next.run();
-        }
-    }
-
-    /**
-     * Schedules some work to happen in the UI thread as soon as possible. If
-     * possible, the work will happen before the next control redraws. The given
-     * runnable will only be run once. Has no effect if this runnable has
-     * already been queued for execution.
-     * 
-     * @param work
-     *            runnable to execute
-     */
-    public void runOnce(Runnable work) {
-        synchronized (pendingWork) {
-            if (pendingWorkSet.contains(work)) {
-                return;
-            }
-
-            pendingWorkSet.add(work);
-
-            asyncExec(work);
-        }
-    }
-
-    /**
-     * Schedules some work to happen in the UI thread as soon as possible. If
-     * possible, the work will happen before the next control redraws. Unlike
-     * runOnce, calling asyncExec twice with the same runnable will cause that
-     * runnable to run twice.
-     * 
-     * @param work
-     *            runnable to execute
-     */
-    public void asyncExec(Runnable work) {
-        synchronized (pendingWork) {
-            pendingWork.add(work);
-            if (!updateScheduled) {
-                updateScheduled = true;
-                d.asyncExec(updateJob);
-            }
-
-            // If we're in the UI thread, add an event filter to ensure
-            // the work happens ASAP
-            if (Display.getCurrent() == d) {
-                if (!paintListenerAttached) {
-                    paintListenerAttached = true;
-                    d.addFilter(SWT.Paint, paintListener);
-                }
-            }
-        }
-    }
-
-    /**
-     * Cancels a previously-scheduled runnable. Has no effect if the given
-     * runnable was not previously scheduled or has already executed.
-     * 
-     * @param toCancel
-     *            runnable to cancel
-     */
-    public void cancelExec(Runnable toCancel) {
-        synchronized (pendingWork) {
-            pendingWork.remove(toCancel);
-            pendingWorkSet.remove(toCancel);
-        }
-    }
-
-    /**
-     * Cancels all pending work.
-     */
-    public void cancelAll() {
-        synchronized (pendingWork) {
-            pendingWork.clear();
-            pendingWorkSet.clear();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/IParentProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/IParentProvider.java
deleted file mode 100644
index 433cea1..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/IParentProvider.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Xenos, IBM - initial API and implementation
- *     Matthew Hall - bug 207858
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.viewers;
-
-/**
- * NON-API - Returns the parent of elements in a tree.
- * 
- * @since 1.1
- */
-public interface IParentProvider {
-	
-	/**
-	 * Returns the parent of the passed in child element, or null if unknown.
-	 * 
-	 * @param child
-	 *            the child element
-	 * @return the parent of the passed in child element, or null if unknown.
-	 */
-	public Object getParent(Object child);
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/TreeNode.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/TreeNode.java
deleted file mode 100644
index 39ce156..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/TreeNode.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Xenos, IBM - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.viewers;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableSetTreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * 
- * @since 1.0
- * @deprecated Use {@link ObservableSetTreeContentProvider} or
- * {@link ObservableListTreeContentProvider} instead.
- */
-/* package */ class TreeNode implements ISetChangeListener, IStaleListener {
-    private UnorderedTreeContentProvider contentProvider;
-    private Object element;
-    
-    // Stores the set of parents (null if there are less than 2)
-    private HashSet parents = null;
-    
-    // Stores one representative parent. If there is more than one parent,
-    // the complete set of parents can be found in the parents set.
-    Object parent;
-    
-    /**
-     * Set of child elements.
-     */
-    private IObservableSet children;
-    
-    private boolean hasPendingNode = false;
-    private boolean isStale;
-    private boolean listeningToChildren = false;
-    private boolean prefetchEnqueued = false;
-    
-    /**
-     * @param element
-     * @param cp
-     */
-    public TreeNode(Object element, UnorderedTreeContentProvider cp) {
-        this.element = element;
-        this.contentProvider = cp;
-        children = contentProvider.createChildSet(element);
-        if (children == null) {
-            children = Observables.emptyObservableSet();
-            listeningToChildren = true;
-        }
-        hasPendingNode = children.isStale();
-    }
-    
-    /**
-     * @param parent
-     */
-    public void addParent(Object parent) {
-        if (this.parent == null) {
-            this.parent = parent;
-        } else {
-            if (parent.equals(this.parent)) {
-                return;
-            }
-            if (parents == null) {
-                parents = new HashSet();
-                parents.add(this.parent);
-            }
-            parents.add(parent);
-        }
-    }
-    
-    /**
-     * @param parent
-     */
-    public void removeParent(Object parent) {
-        if (this.parents != null) {
-            parents.remove(parent);
-        } 
-        
-        if (parent == this.parent) {
-            if (parents == null || parents.isEmpty()) {
-                this.parent = null;
-            } else {
-                this.parent = parents.iterator().next();
-            }
-        }
-        
-        if (this.parents != null && this.parents.size() <= 1) {
-            this.parents = null;
-        }
-    }
-    
-    /**
-     * Returns the set of children for this node. If new children are discovered later, they
-     * will be added directly to the viewer.
-     *  
-     * @return TODO
-     */
-    public Set getChildren() {
-        if (!listeningToChildren) {
-            listeningToChildren = true;
-            children.addSetChangeListener(this);
-            hasPendingNode = children.isEmpty() && children.isStale();
-            children.addStaleListener(this);
-            updateStale();
-        }
-        
-        // If the child set is stale and empty, show the "pending" node
-        if (hasPendingNode) {
-            Object pendingNode = contentProvider.getPendingNode();
-            return Collections.singleton(pendingNode);
-        }
-        return children;
-    }
-    
-    /**
-     * @return TODO
-     */
-    public IObservableSet getChildrenSet() {
-        return children;
-    }
-    
-    private void updateStale() {
-        boolean willBeStale = children.isStale();
-        if (willBeStale != isStale) {
-            isStale = willBeStale;
-            
-            contentProvider.changeStale(isStale? 1 : -1);
-        }
-    }
-    
-    /**
-     * @return TODO
-     */
-    public boolean isStale() {
-        return isStale;
-    }
-
-    /**
-     * Returns true if the viewer should show a plus sign for expanding this 
-     * node. 
-     * 
-     * @return TODO
-     */
-    public boolean shouldShowPlus() {
-        if (children == null) {
-//            if (!hasPendingNode) {
-//                hasPendingNode = true;
-//                contentProvider.add(element, Collections.singleton(contentProvider.getPendingNode()));
-//            }
-            return true;
-        }
-        if (!listeningToChildren && !prefetchEnqueued) {
-            prefetchEnqueued = true;
-            contentProvider.enqueuePrefetch(this);
-        }
-        return !listeningToChildren || hasPendingNode || !children.isEmpty();
-    }
-    
-    /**
-     * Disposes this node and removes all remaining children.
-     */
-    public void dispose() {
-        if (children != null) {
-            if (listeningToChildren) {
-                contentProvider.remove(element, children, true);
-                children.removeSetChangeListener(this);
-                children.removeStaleListener(this);
-            }
-            children.dispose();
-            children = null;
-            
-            if (listeningToChildren && isStale) {
-                contentProvider.changeStale(-1);
-            }
-        }
-    }
-    
-    /**
-     * @return TODO
-     */
-    public boolean isDisposed() {
-        return children == null;
-    }
-    
-    /**
-     * Returns one representative parent, or null if this node is unparented. Use
-     * getParents() to get the complete set of known parents.
-     * 
-     * @return TODO
-     */
-    public Object getParent() {
-        return parent;
-    }
-    
-    /**
-     * 
-     * @return the set of all known parents for this node
-     */
-    public Set getParents() {
-        if (parents == null) {
-            if (parent == null) {
-                return Collections.EMPTY_SET;
-            }
-			return Collections.singleton(parent);
-        }
-		return parents;
-    }
-    
-    /**
-     * Called when the child set changes. Should not be called directly by the viewer.
-     */
-    public void handleSetChange(SetChangeEvent event) {
-        SetDiff diff = event.diff;
-        TreeViewer viewer = this.contentProvider.getViewer();
-        if (viewer != null) {
-            Control control = viewer.getControl();
-            if (control != null) {
-                if (control.isDisposed()) {
-                    // If the widgetry was disposed without notifying the content provider, then
-                    // dispose the content provider now and stop processing events.
-                    contentProvider.dispose();
-                    return;
-                }
-            }
-        }
-        
-        boolean shouldHavePendingNode = children.isEmpty() && children.isStale();
-        
-        Set additions = diff.getAdditions();
-        // Check if we should add the pending node
-        if (shouldHavePendingNode && !hasPendingNode) {
-            HashSet newAdditions = new HashSet();
-            newAdditions.addAll(additions);
-            newAdditions.add(contentProvider.getPendingNode());
-            additions = newAdditions;
-            hasPendingNode = true;
-        }
-
-        Set removals = diff.getRemovals();
-        // Check if we should remove the pending node
-        if (!shouldHavePendingNode && hasPendingNode) {
-            HashSet newRemovals = new HashSet();
-            newRemovals.addAll(removals);
-            newRemovals.add(contentProvider.getPendingNode());
-            removals = newRemovals;
-            hasPendingNode = false;
-        }
-        if (!additions.isEmpty()) {
-            contentProvider.add(element, additions);
-        }
-        if (!removals.isEmpty()) {
-            contentProvider.remove(element, removals, children.isEmpty() && !hasPendingNode);
-        }
-        
-        updateStale();
-    }
-
-    public void handleStale(StaleEvent staleEvent) {
-        TreeViewer viewer = this.contentProvider.getViewer();
-        if (viewer != null) {
-            Control control = viewer.getControl();
-            if (control != null) {
-                if (control.isDisposed()) {
-                    // If the widgetry was disposed without notifying the content provider, then
-                    // dispose the content provider now and stop processing events.
-                    contentProvider.dispose();
-                    return;
-                }
-            }
-        }
-        
-        boolean shouldHavePendingNode = children.isEmpty() && children.isStale();
-        
-        // Check if we should add the pending node
-        if (shouldHavePendingNode && !hasPendingNode) {
-            hasPendingNode = shouldHavePendingNode;
-            contentProvider.add(element, Collections.singleton(contentProvider.getPendingNode()));
-        }
-        
-        // Check if we should remove the pending node
-        if (!shouldHavePendingNode && hasPendingNode) {
-            hasPendingNode = shouldHavePendingNode;
-            contentProvider.remove(element, Collections.singleton(contentProvider.getPendingNode()), true);
-        }
-        
-        updateStale();
-    }
-
-    /**
-     * @return TODO
-     */
-    public Object getElement() {
-        return element;
-    }
-
-    /**
-     * 
-     */
-    public void prefetch() {
-        TreeViewer viewer = this.contentProvider.getViewer();
-        if (viewer != null) {
-            Control control = viewer.getControl();
-            if (control != null) {
-                if (control.isDisposed()) {
-                    // If the widgetry has been disposed, then avoid sending anything
-                    // to the viewer.
-                    return;
-                }
-            }
-        }
-        
-        Set children = getChildren();
-        if (!children.isEmpty()) {
-            contentProvider.add(element, children);
-        } else {
-            // We need to remove the + sign, and adding/removing elements won't do the trick
-            contentProvider.getViewer().refresh(element);
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/UnorderedTreeContentProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/UnorderedTreeContentProvider.java
deleted file mode 100644
index 627b60b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/UnorderedTreeContentProvider.java
+++ /dev/null
@@ -1,531 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Xenos, IBM - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.viewers;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.set.AbstractObservableSet;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.internal.databinding.observable.tree.IUnorderedTreeProvider;
-import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableSetTreeContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ITreePathContentProvider;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * NON-API - Generic tree content provider to be used with an AbstractTreeViewer based on a IUnorderedTreeProvider.
- * @since 1.1
- * @deprecated Use {@link ObservableSetTreeContentProvider} or
- * {@link ObservableListTreeContentProvider} instead.
- */
-public class UnorderedTreeContentProvider implements ITreeContentProvider, ITreePathContentProvider {
-
-    private HashMap mapElementToTreeNode = new HashMap();
-    private LinkedList enqueuedPrefetches = new LinkedList();
-    private IParentProvider rootParentProvider = null;
-    private boolean useTreePaths = false;
-    
-    class KnownElementsSet extends AbstractObservableSet {
-        
-        protected KnownElementsSet() {
-            super(); 
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.internal.databinding.provisional.observable.set.AbstractObservableSet#getWrappedSet()
-         */
-        protected Set getWrappedSet() {
-            return mapElementToTreeNode.keySet();
-        }
-        
-        void doFireDiff(Set added, Set removed) {
-            fireSetChange(Diffs.createSetDiff(added, removed));
-        }
-        
-        public void fireSetChange(SetDiff diff) {
-        	super.fireSetChange(diff);
-        }
-
-        void doFireStale(boolean isStale) {
-            if (isStale) {
-                fireStale();
-            } else {
-                fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, Collections.EMPTY_SET));
-            }
-        }
-        
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.internal.databinding.provisional.observable.set.IObservableSet#getElementType()
-         */
-        public Object getElementType() {
-            return new Object();
-        }
-    }
-    
-    KnownElementsSet elements = new KnownElementsSet();
-    
-    private ITreeViewerListener expandListener = new ITreeViewerListener() {
-        public void treeCollapsed(TreeExpansionEvent event) {
-        }
-
-        public void treeExpanded(TreeExpansionEvent event) {
-        }
-    };
-
-    private IUnorderedTreeProvider provider;
-    private Object pendingNode;
-
-    private int avoidViewerUpdates;
-
-    private TreeViewer treeViewer;
-
-    private int staleCount = 0;
-    private boolean useRefresh;
-    private int maxPrefetches = 0;
-
-    /**
-     * Constructs a content provider that will render the given tree in a TreeViewer. 
-     * 
-     * @param provider IObservableTree that provides the contents of the tree
-     * @param pendingNode element to insert whenever a node is being fetched in the background
-     * @param useRefresh true = notify the viewer of changes by calling refresh(...), false =
-     *        notify the viewer of changes by calling add(...) and remove(...). Using false
-     *        is more efficient, but may not work with TreeViewer subclasses. 
-     */
-    public UnorderedTreeContentProvider(IUnorderedTreeProvider provider, 
-            Object pendingNode, boolean useRefresh) {
-        this.provider = provider;
-        this.pendingNode = pendingNode;
-        this.useRefresh = useRefresh;
-    }
- 
-    /**
-     * Sets whether this content provider should add/remove elements using
-     * TreePaths (true) or elements (false).
-     * 
-     * <p></p>
-     * <p>When using elements:</p>
-     * 
-     * <ul>
-     * <li>Cycles are permitted (elements can be their own ancestor)</li>
-     * <li>Addition, removal, and refresh are slightly faster</li>
-     * <li>It is not possible to have more than one content provider per tree</li>
-     * <li>The setRootPath(...) method is ignored</li>
-     * </ul>
-     * 
-     * <p></p>
-     * <p>When using TreePaths:</p>
-     * 
-     * <ul>
-     * <li>Cycles are not permitted (elements cannot be their own parent)</li>
-     * <li>Addition, removal, and refresh are slightly slower</li>
-     * <li>It is possible to use more than one content provider in the same tree</li>
-     * <li>The setRootPath(...) method can be used to direct the output to a particular
-     *     subtree</li>
-     * </ul>
-     * 
-     * @param usePaths
-     */
-    public void useTreePaths(boolean usePaths) {
-        this.useTreePaths = usePaths;
-    }
-    
-    /**
-     * @param rootParentProvider
-     */
-    public void setRootPath(IParentProvider rootParentProvider) {
-    	this.rootParentProvider = rootParentProvider;
-    }
-    
-    /**
-     * @param maxPrefetches
-     */
-    public void setMaxPrefetches(int maxPrefetches) {
-        this.maxPrefetches = maxPrefetches; 
-    }
-    
-    /* package */ IObservableSet createChildSet(Object element) {
-        return provider.createChildSet(element);
-    }
-
-    /* package */ void remove(Object element, Set removals, boolean lastElement) {
-        if (removals.isEmpty()) {
-            return;
-        }
-        if (avoidViewerUpdates == 0) {
-            if (lastElement || useRefresh) {
-                doRefresh(element);
-            } else {
-                if (useTreePaths) {
-                    List toRemove = new ArrayList();
-                    TreePath[] parents = getParents(element);
-                    for (int i = 0; i < parents.length; i++) {
-                        TreePath parent = parents[i];
-
-                        for (Iterator iter = removals.iterator(); iter.hasNext();) {
-                            Object elementToRemove = iter.next();
-                            
-                            toRemove.add(parent.createChildPath(element).createChildPath(elementToRemove));
-                        }
-                    }
-                    
-                    treeViewer.remove(toRemove.toArray(new TreePath[toRemove.size()]));
-                } else {
-                    treeViewer.remove(element, removals.toArray());
-                }
-            }
-            for (Iterator iter = removals.iterator(); iter.hasNext();) {
-                Object next = iter.next();
-                
-                TreeNode nextNode = (TreeNode)mapElementToTreeNode.get(next);
-                if (nextNode != null) {
-                    nextNode.removeParent(element);
-                    removeIfUnused(nextNode);
-                }
-            }
-        }
-    }
-
-    /* package */ void add(Object element, Set additions) {
-        if (additions.isEmpty()) {
-            return;
-        }
-        if (avoidViewerUpdates == 0) {
-            // Handle new parents
-            addParent(element, additions);
-            if (useRefresh) {
-                doRefresh(element);
-            } else {
-                if (useTreePaths) {
-                    TreePath[] parents = getParents(element);
-                    for (int i = 0; i < parents.length; i++) {
-                        TreePath parent = parents[i];
-                        
-                        treeViewer.add(parent.createChildPath(element), additions.toArray());
-                    }
-                } else {
-                    treeViewer.add(element, additions.toArray());
-                }
-            }
-        }
-    }
-
-    private void doRefresh(Object element) {
-        treeViewer.refresh(element);
-    }
-    
-    /**
-     * Ensures that the given set of children have the given parent as 
-     * one of their parents.
-     *  
-     * @param parent
-     * @param children
-     */
-    private void addParent(Object parent, Set children) {
-        for (Iterator iter = children.iterator(); iter.hasNext();) {
-            Object next = iter.next();
-            
-            TreeNode nextNode = getNode(next);
-            nextNode.addParent(parent);
-        }
-    }
-
-    /**
-     * @return saouesnth
-     */
-    public final Object getPendingNode() {
-        return pendingNode;
-    }
-    
-    /**
-     * @param parent
-     * @return aueosnht
-     */
-    public IObservableSet getChildrenSet(Object parent) {
-        IObservableSet result = getNode(parent).getChildrenSet();
-        
-        return result;
-    }
-    
-    public void dispose() {
-        if (treeViewer != null) {
-            try {
-                avoidViewerUpdates++;
-                enqueuedPrefetches.clear();
-                Object[] keys = mapElementToTreeNode.keySet().toArray();
-    
-                for (int i = 0; i < keys.length; i++) {
-                    Object key = keys[i];
-    
-                    TreeNode result = (TreeNode)mapElementToTreeNode.get(key);
-                    if (result != null) {
-                        result.dispose();
-                    }
-                }
-                setViewer(null);
-            } finally {
-                avoidViewerUpdates--;
-            }
-        }
-    }
-    
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-        // This should only ever be called for a single viewer
-        setViewer(viewer);
-        
-        if (oldInput != null && newInput != null && oldInput.equals(newInput)) {
-            return;
-        }
-        
-        try {
-            avoidViewerUpdates++;
-            TreeNode oldNode = (TreeNode)mapElementToTreeNode.get(oldInput);
-            if (oldNode != null) {
-                removeIfUnused(oldNode);
-            }
-        } finally {
-            avoidViewerUpdates--;
-        }
-    }
-    
-    private void removeIfUnused(TreeNode toRemove) {
-        //TreeNode result = (TreeNode)mapElementToTreeNode.get(element);
-        Object element = toRemove.getElement();
-        if (toRemove.getParent() == null) {
-            mapElementToTreeNode.remove(element);
-            elements.doFireDiff(Collections.EMPTY_SET, Collections.singleton(element));
-            toRemove.dispose();
-        }
-    }
-
-    private void setViewer(Viewer viewer) {
-        if (viewer != null && !(viewer instanceof TreeViewer)) {
-            throw new IllegalArgumentException("This content provider can only be used with TreeViewers"); //$NON-NLS-1$
-        }
-        TreeViewer newTreeViewer = (TreeViewer) viewer;
-        
-        if (newTreeViewer != treeViewer) {
-            if (treeViewer != null) {
-                treeViewer.removeTreeListener(expandListener);
-            }
-            
-            this.treeViewer = newTreeViewer;
-            if (newTreeViewer != null) {
-                newTreeViewer.addTreeListener(expandListener);
-            }
-        }
-    }
-
-    public Object[] getChildren(Object parentElement) {
-        Set result = getNode(parentElement).getChildren();
-        
-        addParent(parentElement, result);
-        
-        return result.toArray();
-    }
-
-    private TreeNode getNode(Object parentElement) {
-        TreeNode result = (TreeNode)mapElementToTreeNode.get(parentElement);
-        if (result == null) {
-            result = new TreeNode(parentElement, this);
-            mapElementToTreeNode.put(parentElement, result);
-            elements.fireSetChange(Diffs.createSetDiff(Collections.singleton(parentElement), 
-                    Collections.EMPTY_SET));
-        }
-        return result;
-    }
-
-    public Object getParent(Object element) {
-        Object result = getNode(element).getParent();
-        if (result == null && rootParentProvider != null) {
-            result = rootParentProvider.getParent(element);
-        }
-        return result;
-    }
-
-    public boolean hasChildren(Object element) {
-        return getNode(element).shouldShowPlus();
-    }
-
-    public Object[] getElements(Object inputElement) {
-        return getChildren(inputElement);
-    }
-    
-    /**
-     * @return aouesnth
-     */
-    public IObservableSet getKnownElements() {
-        return elements;
-    }
-    
-    /* package */ void changeStale(int staleDelta) {
-        staleCount += staleDelta;
-        processPrefetches();
-        elements.setStale(staleCount != 0);
-    }
-
-    /**
-     * @return aoueesnth      
-     */
-    public TreeViewer getViewer() {
-        return treeViewer;
-    }
-
-    /**
-     * @param element
-     * @return aoeusnth
-     */
-    public boolean isDirty(Object element) {
-        return false;
-    }
-
-    /* package */ void enqueuePrefetch(TreeNode node) {
-        if (maxPrefetches > 0 || maxPrefetches == -1) {
-            if (staleCount == 0) {
-                // Call node.getChildren()... this will cause us to start listening to the 
-                // node and will trigger prefetching. Don't call prefetch since this method
-                // is intended to be called inside getters (which will simply return the
-                // fetched nodes) and prefetch() is intended to be called inside an asyncExec,
-                // which will notify the viewer directly of the newly discovered nodes.
-                node.getChildren();
-            } else {
-                enqueuedPrefetches.add(node);
-                while (maxPrefetches >= 0 && enqueuedPrefetches.size() > maxPrefetches) {
-                    enqueuedPrefetches.removeFirst();
-                }
-            }
-        }
-    }
-
-    private void processPrefetches() {
-        while (staleCount == 0 && !enqueuedPrefetches.isEmpty()) {
-            TreeNode next = (TreeNode)enqueuedPrefetches.removeLast();
-            
-            // Note that we don't remove nodes from the prefetch queue when they are disposed,
-            // so we may encounter disposed nodes at this time. 
-            if (!next.isDisposed()) {
-                next.prefetch();
-            }
-        }
-    }
-
-    public Object[] getChildren(TreePath parentPath) {
-        return getChildren(parentPath.getLastSegment());
-    }
-
-    public TreePath[] getParents(Object element) {
-        // Compute all paths that do not contain cycles
-    	/**
-    	 * List of Lists
-    	 */
-        List parentPaths = computeParents(element, new HashSet());
-        
-        /**
-         * List of TreePath
-         */
-        List result = new ArrayList();
-       
-        for (Iterator iterator = parentPaths.iterator(); iterator.hasNext();) {
-			List nextPath = (List) iterator.next();
-			            
-            LinkedList resultPath = new LinkedList();
-            resultPath.addAll(nextPath);
-        	Object nextParent = resultPath.isEmpty() ? element : resultPath.getFirst();
-            for(;nextParent != null;) {
-            	if (rootParentProvider != null) {
-            		nextParent = rootParentProvider.getParent(nextParent);
-                    if (nextParent != null) {
-                        resultPath.addFirst(nextParent);
-                    }
-            	} else {
-            		nextParent = null;
-            	}
-            }
-            
-            result.add(new TreePath(resultPath.toArray()));
-        }
-        
-        if (result.isEmpty() && rootParentProvider != null) {
-            Object nextParent = rootParentProvider.getParent(element);
-            if (nextParent != null) {
-                LinkedList resultPath = new LinkedList();
-                while (nextParent != null) {
-                    resultPath.addFirst(nextParent);
-                    nextParent = rootParentProvider.getParent(nextParent);
-                }
-                
-                result.add(new TreePath(resultPath.toArray()));
-            }
-            
-        }
-        
-        return (TreePath[]) result.toArray(new TreePath[result.size()]);
-    }
-    
-    /**
-     * 
-     * @param node
-     * @param toIgnore
-     * @return a list of Lists, indicating all known paths to the given node
-     */
-    private List computeParents(Object node, HashSet toIgnore) {
-        List result = new ArrayList();
-        boolean containedNode = toIgnore.add(node);
-        
-        TreeNode tn = getNode(node);
-        
-        HashSet parents = new HashSet();
-        parents.addAll(tn.getParents());
-        parents.removeAll(toIgnore);
-        if (parents.isEmpty()) {
-            ArrayList newPath = new ArrayList();
-            result.add(newPath);
-        } else {
-        	for (Iterator iterator = parents.iterator(); iterator.hasNext();) {
-				Object parent = iterator.next();
-				
-				List parentPaths = computeParents(parent, toIgnore);
-
-				for (Iterator iterator2 = parentPaths.iterator(); iterator2
-						.hasNext();) {
-					List parentPath = (List) iterator2.next();
-					
-                    parentPath.add(parent);
-                    result.add(parentPath);
-                }
-			}
-        }
-        
-        if (containedNode) {
-            toIgnore.remove(node);
-        }
-        return result;
-    }
-
-    public boolean hasChildren(TreePath path) {
-        return hasChildren(path.getLastSegment());
-    }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/ViewerLabelProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/ViewerLabelProvider.java
deleted file mode 100644
index bfc1a56..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/viewers/ViewerLabelProvider.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 223123
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.provisional.viewers;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.IViewerLabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.ViewerLabel;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * NON-API - Generic viewer label provider.
- * @since 1.1
- *
- */
-public class ViewerLabelProvider implements IViewerLabelProvider,
-		ILabelProvider {
-
-	private List listeners = new ArrayList();
-
-	/**
-	 * Subclasses should override this method. They should not call the base
-	 * class implementation.
-	 */
-	public void updateLabel(ViewerLabel label, Object element) {
-		label.setText(element.toString());
-	}
-
-	protected final void fireChangeEvent(Collection changes) {
-		final LabelProviderChangedEvent event = new LabelProviderChangedEvent(
-				this, changes.toArray());
-		ILabelProviderListener[] listenerArray = (ILabelProviderListener[]) listeners
-				.toArray(new ILabelProviderListener[listeners.size()]);
-		for (int i = 0; i < listenerArray.length; i++) {
-			ILabelProviderListener listener = listenerArray[i];
-			try {
-				listener.labelProviderChanged(event);
-			} catch (Exception e) {
-				Policy.getLog().log(
-						new Status(IStatus.ERROR, Policy.JFACE_DATABINDING, e
-								.getLocalizedMessage(), e));
-			}
-		}
-	}
-
-	public final Image getImage(Object element) {
-		ViewerLabel label = new ViewerLabel("", null); //$NON-NLS-1$
-		updateLabel(label, element);
-		return label.getImage();
-	}
-
-	public final String getText(Object element) {
-		ViewerLabel label = new ViewerLabel("", null); //$NON-NLS-1$
-		updateLabel(label, element);
-		return label.getText();
-	}
-
-	public void addListener(ILabelProviderListener listener) {
-		listeners.add(listener);
-	}
-
-	public void dispose() {
-		listeners.clear();
-	}
-
-	public final boolean isLabelProperty(Object element, String property) {
-		return true;
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		listeners.remove(listener);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ButtonObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ButtonObservableValue.java
deleted file mode 100644
index 5b2d789..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ButtonObservableValue.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * @since 1.0
- * 
- */
-public class ButtonObservableValue extends AbstractSWTObservableValue {
-
-	private final Button button;
-
-	private boolean selectionValue;
-
-	private Listener updateListener = new Listener() {
-		public void handleEvent(Event event) {
-			boolean oldSelectionValue = selectionValue;
-			selectionValue = button.getSelection();
-						
-			notifyIfChanged(oldSelectionValue, selectionValue);
-		}
-	};
-
-	/**
-	 * @param button
-	 */
-	public ButtonObservableValue(Button button) {
-		super(button);
-		this.button = button;
-		init();
-	}
-	
-	/**
-	 * @param realm
-	 * @param button
-	 */
-	public ButtonObservableValue(Realm realm, Button button) {
-		super(realm, button);
-		this.button = button;
-		init();
-	}
-	
-	private void init() {
-		button.addListener(SWT.Selection, updateListener);
-		button.addListener(SWT.DefaultSelection, updateListener);		
-	}
-
-	public void doSetValue(final Object value) {
-		boolean oldSelectionValue = selectionValue;
-		selectionValue = value == null ? false : ((Boolean) value)
-				.booleanValue();
-		
-		button.setSelection(selectionValue);
-		notifyIfChanged(oldSelectionValue, selectionValue);
-	}
-
-	public Object doGetValue() {
-		return button.getSelection() ? Boolean.TRUE : Boolean.FALSE;
-	}
-
-	public Object getValueType() {
-		return Boolean.TYPE;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-
-		if (!button.isDisposed()) {
-			button.removeListener(SWT.Selection, updateListener);
-			button.removeListener(SWT.DefaultSelection, updateListener);
-		}
-	}
-
-	/**
-	 * Notifies consumers with a value change event only if a change occurred.
-	 * 
-	 * @param oldValue
-	 * @param newValue
-	 */
-	private void notifyIfChanged(boolean oldValue, boolean newValue) {
-		if (oldValue != newValue) {
-			fireValueChange(Diffs.createValueDiff(oldValue ? Boolean.TRUE : Boolean.FALSE,
-					newValue ? Boolean.TRUE : Boolean.FALSE));
-		}		
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboObservableList.java
deleted file mode 100644
index b38baea..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboObservableList.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.custom.CCombo;
-
-/**
- * @since 3.2
- * 
- */
-public class CComboObservableList extends SWTObservableList {
-
-	private final CCombo ccombo;
-
-	/**
-	 * @param ccombo
-	 */
-	public CComboObservableList(CCombo ccombo) {
-		super(SWTObservables.getRealm(ccombo.getDisplay()));
-		this.ccombo = ccombo;
-	}
-
-	protected int getItemCount() {
-		return ccombo.getItemCount();
-	}
-
-	protected void setItems(String[] newItems) {
-		ccombo.setItems(newItems);
-	}
-
-	protected String[] getItems() {
-		return ccombo.getItems();
-	}
-
-	protected String getItem(int index) {
-		return ccombo.getItem(index);
-	}
-
-	protected void setItem(int index, String string) {
-		ccombo.setItem(index, string);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboObservableValue.java
deleted file mode 100644
index 7edd132..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboObservableValue.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *     Matthew Hall - bug 118516
- *     Eric Rizzo - bug 134884
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-
-/**
- * @since 3.2
- * 
- */
-public class CComboObservableValue extends AbstractSWTObservableValue {
-
-	/**
-	 * 
-	 */
-
-	private final CCombo ccombo;
-
-	private final String attribute;
-
-	private boolean updating = false;
-
-	private String currentValue;
-
-	private ModifyListener modifyListener;
-
-	/**
-	 * @param ccombo
-	 * @param attribute
-	 */
-	public CComboObservableValue(CCombo ccombo, String attribute) {
-		super(ccombo);
-		this.ccombo = ccombo;
-		this.attribute = attribute;
-		init();
-	}
-
-	/**
-	 * @param realm
-	 * @param ccombo
-	 * @param attribute
-	 */
-	public CComboObservableValue(Realm realm, CCombo ccombo, String attribute) {
-		super(realm, ccombo);
-		this.ccombo = ccombo;
-		this.attribute = attribute;
-		init();
-	}
-	
-	private void init() {		
-		if (attribute.equals(SWTProperties.SELECTION)
-				|| attribute.equals(SWTProperties.TEXT)) {
-			this.currentValue = ccombo.getText();
-			modifyListener = new ModifyListener() {
-
-				public void modifyText(ModifyEvent e) {
-					if (!updating) {
-						String oldValue = currentValue;
-						currentValue = CComboObservableValue.this.ccombo
-								.getText();
-						
-						notifyIfChanged(oldValue, currentValue);
-					}
-				}
-			};
-			ccombo.addModifyListener(modifyListener);
-		} else
-			throw new IllegalArgumentException();
-	}
-
-	public void doSetValue(final Object value) {
-		String oldValue = ccombo.getText();
-		try {
-			updating = true;
-			if (attribute.equals(SWTProperties.TEXT)) {
-				String stringValue = value != null ? value.toString() : ""; //$NON-NLS-1$
-				ccombo.setText(stringValue);
-			} else if (attribute.equals(SWTProperties.SELECTION)) {
-				String items[] = ccombo.getItems();
-				int index = -1;
-				if (value == null) {
-					ccombo.select(-1);
-				} else if (items != null) {
-					for (int i = 0; i < items.length; i++) {
-						if (value.equals(items[i])) {
-							index = i;
-							break;
-						}
-					}
-					if (index == -1) {
-						ccombo.setText((String) value);
-					} else {
-						ccombo.select(index); // -1 will not "unselect"
-					}
-				}
-			}
-		} finally {
-			updating = false;
-			currentValue = ccombo.getText();
-		}
-		
-		notifyIfChanged(oldValue, currentValue);
-	}
-
-	public Object doGetValue() {
-		if (attribute.equals(SWTProperties.TEXT))
-			return ccombo.getText();
-
-		Assert.isTrue(attribute.equals(SWTProperties.SELECTION),
-				"unexpected attribute: " + attribute); //$NON-NLS-1$
-		// The problem with a ccombo, is that it changes the text and
-		// fires before it update its selection index
-		return ccombo.getText();
-	}
-
-	public Object getValueType() {
-		Assert.isTrue(attribute.equals(SWTProperties.TEXT)
-				|| attribute.equals(SWTProperties.SELECTION),
-				"unexpected attribute: " + attribute); //$NON-NLS-1$
-		return String.class;
-	}
-
-	/**
-	 * @return attribute being observed
-	 */
-	public String getAttribute() {
-		return attribute;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-
-		if (modifyListener != null && !ccombo.isDisposed()) {
-			ccombo.removeModifyListener(modifyListener);
-		}
-	}
-	
-	private void notifyIfChanged(String oldValue, String newValue) {
-		if (!oldValue.equals(newValue)) {
-			fireValueChange(Diffs.createValueDiff(oldValue, ccombo.getText()));			
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboSingleSelectionObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboSingleSelectionObservableValue.java
deleted file mode 100644
index d10ad42..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CComboSingleSelectionObservableValue.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-
-/**
- * @since 1.0
- *
- */
-public class CComboSingleSelectionObservableValue extends
-		SingleSelectionObservableValue {
-
-	private SelectionListener selectionListener;
-
-	/**
-	 * @param combo
-	 */
-	public CComboSingleSelectionObservableValue(CCombo combo) {
-		super(combo);
-	}
-	
-	/**
-	 * @param realm
-	 * @param combo
-	 */
-	public CComboSingleSelectionObservableValue(Realm realm, CCombo combo) {
-		super(realm, combo);
-	}
-
-	private CCombo getCCombo() {
-		return (CCombo) getWidget();
-	}
-
-	protected void doAddSelectionListener(final Runnable runnable) {
-		selectionListener = new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				runnable.run();
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				runnable.run();
-			}
-		};
-		getCCombo().addSelectionListener(selectionListener);
-	}
-
-	protected int doGetSelectionIndex() {
-		return getCCombo().getSelectionIndex();
-	}
-
-	protected void doSetSelectionIndex(int index) {
-		getCCombo().setText(getCCombo().getItem(index));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-		if (selectionListener != null && !getCCombo().isDisposed()) {
-			getCCombo().removeSelectionListener(selectionListener);
-		}
-
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CLabelObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CLabelObservableValue.java
deleted file mode 100644
index 106e07a..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/CLabelObservableValue.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.custom.CLabel;
-
-/**
- * @since 1.0
- * 
- */
-public class CLabelObservableValue extends AbstractSWTObservableValue {
-
-	private final CLabel label;
-
-	/**
-	 * @param label
-	 */
-	public CLabelObservableValue(CLabel label) {
-		super(label);
-		this.label = label;
-	}
-	
-	/**
-	 * @param realm
-	 * @param label
-	 */
-	public CLabelObservableValue(Realm realm, CLabel label) {
-		super(realm, label);
-		this.label = label;
-	}
-
-	public void doSetValue(final Object value) {
-		String oldValue = label.getText();
-		String newValue = value == null ? "" : value.toString();  //$NON-NLS-1$
-		label.setText(newValue);
-
-		if (!newValue.equals(oldValue)) {
-			fireValueChange(Diffs.createValueDiff(oldValue, newValue));
-		}
-	}
-
-	public Object doGetValue() {
-		return label.getText();
-	}
-
-	public Object getValueType() {
-		return String.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboObservableList.java
deleted file mode 100644
index 8bccc48..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboObservableList.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * @since 3.2
- * 
- */
-public class ComboObservableList extends SWTObservableList {
-
-	private final Combo combo;
-
-	/**
-	 * @param combo
-	 */
-	public ComboObservableList(Combo combo) {
-		super(SWTObservables.getRealm(combo.getDisplay()));
-		this.combo = combo;
-	}
-
-	protected int getItemCount() {
-		return combo.getItemCount();
-	}
-
-	protected void setItems(String[] newItems) {
-		combo.setItems(newItems);
-	}
-
-	protected String[] getItems() {
-		return combo.getItems();
-	}
-
-	protected String getItem(int index) {
-		return combo.getItem(index);
-	}
-
-	protected void setItem(int index, String string) {
-		combo.setItem(index, string);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboObservableValue.java
deleted file mode 100644
index 885501b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboObservableValue.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * @since 3.2
- * 
- */
-public class ComboObservableValue extends AbstractSWTObservableValue {
-
-	private final Combo combo;
-	private final String attribute;
-	private boolean updating = false;
-	private String currentValue;
-	private ModifyListener modifyListener;
-
-	/**
-	 * @param combo
-	 * @param attribute
-	 */
-	public ComboObservableValue(Combo combo, String attribute) {
-		super(combo);
-		this.combo = combo;
-		this.attribute = attribute;
-		init();
-	}
-		
-	/**
-	 * @param realm
-	 * @param combo
-	 * @param attribute
-	 */
-	public ComboObservableValue(Realm realm, Combo combo, String attribute) {
-		super(realm, combo);
-		this.combo = combo;
-		this.attribute = attribute;
-		init();
-	}
-	
-	private void init() {		
-		if (attribute.equals(SWTProperties.SELECTION)
-				|| attribute.equals(SWTProperties.TEXT)) {
-			this.currentValue = combo.getText();
-			modifyListener = new ModifyListener() {
-
-				public void modifyText(ModifyEvent e) {
-					if (!updating) {
-						String oldValue = currentValue;
-						currentValue = ComboObservableValue.this.combo
-								.getText();
-						
-						notifyIfChanged(oldValue, currentValue);
-					}
-				}
-			};
-			combo.addModifyListener(modifyListener);
-		} else
-			throw new IllegalArgumentException();
-	}
-
-	public void doSetValue(final Object value) {
-		String oldValue = combo.getText();
-		try {
-			updating = true;
-			if (attribute.equals(SWTProperties.TEXT)) {
-				String stringValue = value != null ? value.toString() : ""; //$NON-NLS-1$
-				combo.setText(stringValue);
-			} else if (attribute.equals(SWTProperties.SELECTION)) {
-				String items[] = combo.getItems();
-				int index = -1;
-				if (items != null && value != null) {
-					for (int i = 0; i < items.length; i++) {
-						if (value.equals(items[i])) {
-							index = i;
-							break;
-						}
-					}
-					if (index == -1) {
-						combo.setText((String) value);
-					} else {
-						combo.select(index); // -1 will not "unselect"
-					}
-				}
-			}
-		} finally {
-			updating = false;
-			currentValue = combo.getText();
-		}
-		
-		notifyIfChanged(oldValue, currentValue);
-	}
-
-	public Object doGetValue() {
-		if (attribute.equals(SWTProperties.TEXT))
-			return combo.getText();
-
-		Assert.isTrue(attribute.equals(SWTProperties.SELECTION),
-				"unexpected attribute: " + attribute); //$NON-NLS-1$
-		// The problem with a ccombo, is that it changes the text and
-		// fires before it update its selection index
-		return combo.getText();
-	}
-
-	public Object getValueType() {
-		Assert.isTrue(attribute.equals(SWTProperties.TEXT)
-				|| attribute.equals(SWTProperties.SELECTION),
-				"unexpected attribute: " + attribute); //$NON-NLS-1$
-		return String.class;
-	}
-
-	/**
-	 * @return attribute being observed
-	 */
-	public String getAttribute() {
-		return attribute;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-
-		if (modifyListener != null && !combo.isDisposed()) {
-			combo.removeModifyListener(modifyListener);
-		}
-	}
-	
-	private void notifyIfChanged(String oldValue, String newValue) {
-		if (!oldValue.equals(newValue)) {
-			fireValueChange(Diffs.createValueDiff(oldValue, newValue));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboSingleSelectionObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboSingleSelectionObservableValue.java
deleted file mode 100644
index 922bfc2..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ComboSingleSelectionObservableValue.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bugs 198903, 198904
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * @since 1.0
- *
- */
-public class ComboSingleSelectionObservableValue extends
-		SingleSelectionObservableValue {
-
-	private SelectionListener selectionListener;
-
-	/**
-	 * @param combo
-	 */
-	public ComboSingleSelectionObservableValue(Combo combo) {
-		super(combo);
-	}
-
-	private Combo getCombo() {
-		return (Combo) getWidget();
-	}
-
-	protected void doAddSelectionListener(final Runnable runnable) {
-		selectionListener = new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				runnable.run();
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				runnable.run();
-			}
-		};
-		getCombo().addSelectionListener(selectionListener);
-	}
-
-	protected int doGetSelectionIndex() {
-		return getCombo().getSelectionIndex();
-	}
-
-	protected void doSetSelectionIndex(int index) {
-		getCombo().select(index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-		if (selectionListener != null && !getCombo().isDisposed()) {
-			getCombo().removeSelectionListener(selectionListener);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ControlObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ControlObservableValue.java
deleted file mode 100644
index 11d6d4b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ControlObservableValue.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Matt Carter - bug 170668
- *     Brad Reynolds - bug 170848
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @since 1.0
- * 
- */
-public class ControlObservableValue extends AbstractSWTObservableValue {
-
-	private final Control control;
-
-	private final String attribute;
-
-	private Object valueType;
-	
-	private static final Map SUPPORTED_ATTRIBUTES = new HashMap();
-	static {
-		SUPPORTED_ATTRIBUTES.put(SWTProperties.ENABLED, Boolean.TYPE);
-		SUPPORTED_ATTRIBUTES.put(SWTProperties.VISIBLE, Boolean.TYPE);
-		SUPPORTED_ATTRIBUTES.put(SWTProperties.TOOLTIP_TEXT, String.class);
-		SUPPORTED_ATTRIBUTES.put(SWTProperties.FOREGROUND, Color.class);
-		SUPPORTED_ATTRIBUTES.put(SWTProperties.BACKGROUND, Color.class);
-		SUPPORTED_ATTRIBUTES.put(SWTProperties.FONT, Font.class);
-	}
-	
-	/**
-	 * @param control
-	 * @param attribute
-	 */
-	public ControlObservableValue(Control control, String attribute) {
-		super(control);
-		this.control = control;
-		this.attribute = attribute;
-		if (SUPPORTED_ATTRIBUTES.keySet().contains(attribute)) {
-			this.valueType = SUPPORTED_ATTRIBUTES.get(attribute); 
-		} else {
-			throw new IllegalArgumentException();
-		}
-	}
-
-	public void doSetValue(Object value) {
-		Object oldValue = doGetValue();
-		if (attribute.equals(SWTProperties.ENABLED)) {
-			control.setEnabled(((Boolean) value).booleanValue());
-		} else if (attribute.equals(SWTProperties.VISIBLE)) {
-			control.setVisible(((Boolean) value).booleanValue());
-		} else if (attribute.equals(SWTProperties.TOOLTIP_TEXT)) {
-			control.setToolTipText((String) value);
-		} else if (attribute.equals(SWTProperties.FOREGROUND)) {
-			control.setForeground((Color) value);
-		} else if (attribute.equals(SWTProperties.BACKGROUND)) {
-			control.setBackground((Color) value);
-		} else if (attribute.equals(SWTProperties.FONT)) {
-			control.setFont((Font) value);
-		}
-		fireValueChange(Diffs.createValueDiff(oldValue, value));
-	}
-
-	public Object doGetValue() {
-		if (attribute.equals(SWTProperties.ENABLED)) {
-			return control.getEnabled() ? Boolean.TRUE : Boolean.FALSE;
-		}
-		if (attribute.equals(SWTProperties.VISIBLE)) {
-			return control.getVisible() ? Boolean.TRUE : Boolean.FALSE;
-		}
-		if (attribute.equals(SWTProperties.TOOLTIP_TEXT)) {
-			return control.getToolTipText();			
-		}
-		if (attribute.equals(SWTProperties.FOREGROUND))	 {
-			return control.getForeground();
-		}
-		if (attribute.equals(SWTProperties.BACKGROUND)) {
-			return control.getBackground();
-		}
-		if (attribute.equals(SWTProperties.FONT)) {
-			return control.getFont();
-		}
-		
-		return null;
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/DelayedObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/DelayedObservableValue.java
deleted file mode 100644
index f328dc6..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/DelayedObservableValue.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * 		Matthew Hall - initial API and implementation (bug 180746)
- * 		Boris Bokowski, IBM - initial API and implementation
- * 		Matthew Hall - bug 212223
- *  	Will Horn - bug 215297
- *  	Matthew Hall - bug 208332
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.IVetoableValue;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.observable.value.ValueChangingEvent;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.swt.ISWTObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * {@link IObservableValue} implementation that wraps any
- * {@link ISWTObservableValue} and delays notification of value change events
- * from the wrapped observable value until a certain time has passed since the
- * last change event, or until a FocusOut event is received from the underlying
- * widget (whichever happens earlier). This class helps to delay validation
- * until the user stops typing. To notify about pending changes, a delayed
- * observable value will fire a stale event when the wrapped observable value
- * fires a change event, but this change is being delayed.
- * 
- * Note that this class will not forward {@link ValueChangingEvent} events from
- * a wrapped {@link IVetoableValue}.
- * 
- * @since 1.2
- */
-public class DelayedObservableValue extends AbstractSWTObservableValue {
-	class ValueUpdater implements Runnable {
-		private final Object oldValue;
-
-		boolean cancel = false;
-		boolean running = false;
-
-		ValueUpdater(Object oldValue) {
-			this.oldValue = oldValue;
-		}
-
-		void cancel() {
-			cancel = true;
-		}
-
-		public void run() {
-			if (!cancel)
-				try {
-					running = true;
-					internalFireValueChange(oldValue);
-				} finally {
-					running = false;
-				}
-		}
-	}
-
-	private IStaleListener staleListener = new IStaleListener() {
-		public void handleStale(StaleEvent staleEvent) {
-			if (!updating)
-				fireStale();
-		}
-	};
-
-	private IValueChangeListener valueChangeListener = new IValueChangeListener() {
-		public void handleValueChange(ValueChangeEvent event) {
-			if (!updating)
-				makeDirty();
-		}
-	};
-
-	private Listener focusOutListener = new Listener() {
-		public void handleEvent(Event event) {
-			// Force update on focus out
-			if (dirty)
-				internalFireValueChange(cachedValue);
-		}
-	};
-
-	private final int delay;
-	private ISWTObservableValue observable;
-	private Control control;
-
-	private boolean dirty = true;
-	private Object cachedValue = null;
-
-	private boolean updating = false;
-
-	private ValueUpdater updater = null;
-
-	/**
-	 * Constructs a new instance bound to the given
-	 * <code>ISWTObservableValue</code> and configured to fire change events
-	 * once there have been no value changes in the observable for
-	 * <code>delay</code> milliseconds.
-	 * 
-	 * @param delayMillis
-	 * @param observable
-	 * @throws IllegalArgumentException
-	 *             if <code>updateEventType</code> is an incorrect type.
-	 */
-	public DelayedObservableValue(int delayMillis,
-			ISWTObservableValue observable) {
-		super(observable.getRealm(), observable.getWidget());
-		this.delay = delayMillis;
-		this.observable = observable;
-
-		observable.addValueChangeListener(valueChangeListener);
-		observable.addStaleListener(staleListener);
-		Widget widget = observable.getWidget();
-		if (widget instanceof Control) {
-			control = (Control) widget;
-			control.addListener(SWT.FocusOut, focusOutListener);
-		}
-
-		cachedValue = doGetValue();
-	}
-
-	protected Object doGetValue() {
-		if (dirty) {
-			cachedValue = observable.getValue();
-			dirty = false;
-
-			if (updater != null && !updater.running) {
-				fireValueChange(Diffs.createValueDiff(updater.oldValue,
-						cachedValue));
-				cancelScheduledUpdate();
-			}
-		}
-		return cachedValue;
-	}
-
-	protected void doSetValue(Object value) {
-		updating = true;
-		try {
-			// Principle of least surprise: setValue overrides any pending
-			// update from observable.
-			dirty = false;
-			cancelScheduledUpdate();
-
-			Object oldValue = cachedValue;
-			observable.setValue(value);
-			// Bug 215297 - target observable could veto or override value
-			// passed to setValue(). Make sure we cache whatever is set.
-			cachedValue = observable.getValue();
-
-			if (!Util.equals(oldValue, cachedValue))
-				fireValueChange(Diffs.createValueDiff(oldValue, cachedValue));
-		} finally {
-			updating = false;
-		}
-	}
-
-	public boolean isStale() {
-		ObservableTracker.getterCalled(this);
-		return (dirty && updater != null) || observable.isStale();
-	}
-
-	/**
-	 * Returns the type of the value from {@link #doGetValue()}, i.e.
-	 * String.class
-	 * 
-	 * @see org.eclipse.core.databinding.observable.value.IObservableValue#getValueType()
-	 */
-	public Object getValueType() {
-		return observable.getValueType();
-	}
-
-	public void dispose() {
-		cancelScheduledUpdate();
-		if (observable != null) {
-			observable.dispose();
-			observable.removeValueChangeListener(valueChangeListener);
-			observable.removeStaleListener(staleListener);
-			observable = null;
-		}
-		if (control != null) {
-			control.removeListener(SWT.FocusOut, focusOutListener);
-			control = null;
-		}
-		super.dispose();
-	}
-
-	private void makeDirty() {
-		if (!dirty) {
-			dirty = true;
-			fireStale();
-		}
-		cancelScheduledUpdate(); // if any
-		scheduleUpdate();
-	}
-
-	private void cancelScheduledUpdate() {
-		if (updater != null) {
-			updater.cancel();
-			updater = null;
-		}
-	}
-
-	private void scheduleUpdate() {
-		updater = new ValueUpdater(cachedValue);
-		observable.getWidget().getDisplay().timerExec(delay, updater);
-	}
-
-	private void internalFireValueChange(final Object oldValue) {
-		cancelScheduledUpdate();
-		fireValueChange(new ValueDiff() {
-			public Object getOldValue() {
-				return oldValue;
-			}
-
-			public Object getNewValue() {
-				return getValue();
-			}
-		});
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/LabelObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/LabelObservableValue.java
deleted file mode 100644
index 8dc7915..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/LabelObservableValue.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * @since 3.3
- * 
- */
-public class LabelObservableValue extends AbstractSWTObservableValue {
-
-	private final Label label;
-
-	/**
-	 * @param label
-	 */
-	public LabelObservableValue(Label label) {
-		super(label);
-		this.label = label;
-	}
-	
-	/**
-	 * @param realm
-	 * @param label
-	 */
-	public LabelObservableValue(Realm realm, Label label) {
-		super(realm, label);
-		this.label = label;
-	}
-
-	public void doSetValue(final Object value) {
-		String oldValue = label.getText();
-		String newValue = value == null ? "" : value.toString(); //$NON-NLS-1$
-		label.setText(newValue);
-		
-		if (!newValue.equals(oldValue)) {
-			fireValueChange(Diffs.createValueDiff(oldValue, newValue));
-		}
-	}
-
-	public Object doGetValue() {
-		return label.getText();
-	}
-
-	public Object getValueType() {
-		return String.class;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListObservableList.java
deleted file mode 100644
index c6537f7..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListObservableList.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.List;
-
-/**
- * @since 3.2
- * 
- */
-public class ListObservableList extends SWTObservableList {
-
-	private final List list;
-
-	/**
-	 * @param list
-	 */
-	public ListObservableList(List list) {
-		super(SWTObservables.getRealm(list.getDisplay()));
-		this.list = list;
-	}
-
-	protected int getItemCount() {
-		return list.getItemCount();
-	}
-
-	protected void setItems(String[] newItems) {
-		list.setItems(newItems);
-	}
-
-	protected String[] getItems() {
-		return list.getItems();
-	}
-
-	protected String getItem(int index) {
-		return list.getItem(index);
-	}
-
-	protected void setItem(int index, String string) {
-		list.setItem(index, string);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListObservableValue.java
deleted file mode 100644
index 7a00004..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListObservableValue.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * @since 3.2
- * 
- */
-public class ListObservableValue extends AbstractSWTObservableValue {
-
-	private final List list;
-
-	private boolean updating = false;
-
-	private String currentValue;
-
-	private Listener listener;
-
-	/**
-	 * @param list
-	 */
-	public ListObservableValue(List list) {
-		super(list);
-		this.list = list;
-		this.currentValue = (String) doGetValue();
-
-		if ((list.getStyle() & SWT.MULTI) > 0)
-			throw new IllegalArgumentException(
-					"SWT.SINGLE support only for a List selection"); //$NON-NLS-1$
-
-		listener = new Listener() {
-
-			public void handleEvent(Event event) {
-				if (!updating) {
-					Object oldValue = currentValue;
-					currentValue = (String) doGetValue();
-					fireValueChange(Diffs.createValueDiff(oldValue,
-							currentValue));
-				}
-			}
-
-		};
-		list.addListener(SWT.Selection, listener);
-	}
-
-	public void doSetValue(Object value) {
-		String oldValue = null;
-		if (list.getSelection() != null && list.getSelection().length > 0)
-			oldValue = list.getSelection()[0];
-		try {
-			updating = true;
-			String items[] = list.getItems();
-			int index = -1;
-			if (items != null && value != null) {
-				for (int i = 0; i < items.length; i++) {
-					if (value.equals(items[i])) {
-						index = i;
-						break;
-					}
-				}
-				list.select(index); // -1 will not "unselect"
-			}
-			currentValue = (String) value;
-		} finally {
-			updating = false;
-		}
-		fireValueChange(Diffs.createValueDiff(oldValue, value));
-	}
-
-	public Object doGetValue() {
-		int index = list.getSelectionIndex();
-		if (index >= 0)
-			return list.getItem(index);
-		return null;
-	}
-
-	public Object getValueType() {
-		return String.class;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-		if (listener != null && !list.isDisposed()) {
-			list.removeListener(SWT.Selection, listener);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListSingleSelectionObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListSingleSelectionObservableValue.java
deleted file mode 100644
index 05332de..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ListSingleSelectionObservableValue.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.List;
-
-/**
- * @since 1.0
- * 
- */
-public class ListSingleSelectionObservableValue extends
-		SingleSelectionObservableValue {
-
-	private SelectionListener selectionListener;
-
-	/**
-	 * @param combo
-	 */
-	public ListSingleSelectionObservableValue(List combo) {
-		super(combo);
-	}
-
-	private List getList() {
-		return (List) getWidget();
-	}
-
-	protected void doAddSelectionListener(final Runnable runnable) {
-		selectionListener = new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				runnable.run();
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				runnable.run();
-			}
-		};
-		getList().addSelectionListener(selectionListener);
-	}
-
-	protected int doGetSelectionIndex() {
-		return getList().getSelectionIndex();
-	}
-
-	protected void doSetSelectionIndex(int index) {
-		getList().setSelection(index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-		if (selectionListener != null && !getList().isDisposed()) {
-			getList().removeSelectionListener(selectionListener);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SWTObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SWTObservableList.java
deleted file mode 100644
index 499f74e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SWTObservableList.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 208858
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.databinding.BindingException;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.AbstractObservableList;
-
-/**
- * Abstract base class of CComboObservableList, ComboObservableList, and
- * ListObservableList.
- * 
- * @since 3.2
- * 
- */
-public abstract class SWTObservableList extends AbstractObservableList {
-
-	/**
-	 * 
-	 */
-	public SWTObservableList() {
-		super();
-	}
-
-	/**
-	 * @param realm
-	 */
-	public SWTObservableList(Realm realm) {
-		super(realm);
-	}
-
-	public void add(int index, Object element) {
-		int size = doGetSize();
-		if (index < 0 || index > size)
-			index = size;
-		String[] newItems = new String[size + 1];
-		System.arraycopy(getItems(), 0, newItems, 0, index);
-		newItems[index] = (String) element;
-		System.arraycopy(getItems(), index, newItems, index + 1, size - index);
-		setItems(newItems);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				true, element)));
-	}
-
-	public int doGetSize() {
-		return getItemCount();
-	}
-
-	public Object get(int index) {
-		getterCalled();
-		return getItem(index);
-	}
-
-	public Object getElementType() {
-		return String.class;
-	}
-
-	/**
-	 * @param index
-	 * @return the item at the given index
-	 */
-	protected abstract String getItem(int index);
-
-	/**
-	 * @return the item count
-	 */
-	protected abstract int getItemCount();
-
-	/**
-	 * @return the items
-	 */
-	protected abstract String[] getItems();
-
-	private void getterCalled() {
-		ObservableTracker.getterCalled(this);
-	}
-
-	public Object remove(int index) {
-		getterCalled();
-		int size = doGetSize();
-		if (index < 0 || index > size - 1)
-			throw new BindingException(
-					"Request to remove an element out of the collection bounds"); //$NON-NLS-1$
-
-		String[] newItems = new String[size - 1];
-		String oldElement = getItem(index);
-		if (newItems.length > 0) {
-			System.arraycopy(getItems(), 0, newItems, 0, index);
-			if (size - 1 > index) {
-				System.arraycopy(getItems(), index + 1, newItems, index, size
-						- index - 1);
-			}
-		}
-		setItems(newItems);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement)));
-		return oldElement;
-	}
-
-	public Object set(int index, Object element) {
-		String oldElement = getItem(index);
-		setItem(index, (String) element);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(index,
-				false, oldElement), Diffs.createListDiffEntry(index, true,
-				element)));
-		return oldElement;
-	}
-
-	public Object move(int oldIndex, int newIndex) {
-		checkRealm();
-		if (oldIndex == newIndex)
-			return get(oldIndex);
-		int size = doGetSize();
-		if (oldIndex < 0 || oldIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"oldIndex: " + oldIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-		if (newIndex < 0 || newIndex >= size)
-			throw new IndexOutOfBoundsException(
-					"newIndex: " + newIndex + ", size:" + size); //$NON-NLS-1$ //$NON-NLS-2$
-
-		String[] items = getItems();
-		String[] newItems = new String[size];
-		String element = items[oldIndex];
-		if (newItems.length > 0) {
-			System.arraycopy(items, 0, newItems, 0, size);
-			if (oldIndex < newIndex) {
-				System.arraycopy(items, oldIndex + 1, newItems, oldIndex,
-						newIndex - oldIndex);
-			} else {
-				System.arraycopy(items, newIndex, newItems, newIndex + 1,
-						oldIndex - newIndex);
-			}
-			newItems[newIndex] = element;
-		}
-		setItems(newItems);
-		fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(oldIndex,
-				false, element), Diffs.createListDiffEntry(newIndex, true,
-				element)));
-		return element;
-	}
-
-	public boolean removeAll(Collection c) {
-		checkRealm();
-		List oldItems = Arrays.asList(getItems());
-		List newItems = new ArrayList(oldItems);
-		boolean removedAll = newItems.removeAll(c);
-		if (removedAll) {
-			setItems((String[]) newItems.toArray(new String[newItems.size()]));
-			fireListChange(Diffs.computeListDiff(oldItems, newItems));
-		}
-		return removedAll;
-	}
-
-	public boolean retainAll(Collection c) {
-		checkRealm();
-		List oldItems = Arrays.asList(getItems());
-		List newItems = new ArrayList(oldItems);
-		boolean retainedAll = newItems.retainAll(c);
-		if (retainedAll) {
-			setItems((String[]) newItems.toArray(new String[newItems.size()]));
-			fireListChange(Diffs.computeListDiff(oldItems, newItems));
-		}
-		return retainedAll;
-	}
-
-	/**
-	 * @param index
-	 * @param string
-	 */
-	protected abstract void setItem(int index, String string);
-
-	/**
-	 * @param newItems
-	 */
-	protected abstract void setItems(String[] newItems);
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SWTProperties.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SWTProperties.java
deleted file mode 100644
index 5c0e8e2..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SWTProperties.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matt Carter - bug 170668
- *     Brad Reynolds - bug 170848
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-/**
- * Constants used to describe properties of SWT controls.
- * 
- * @since 1.0
- *
- */
-public interface SWTProperties {
-
-	/**
-	 * Applies to Control
-	 */
-	public static final String ENABLED = "enabled"; //$NON-NLS-1$
-	/**
-	 * Applies to Control
-	 */
-	public static final String VISIBLE = "visible"; //$NON-NLS-1$
-	/**
-	 * Applies to Control
-	 */
-	public static final String TOOLTIP_TEXT = "tooltip"; //$NON-NLS-1$	
-	/**
-	 * Applies to
-	 */
-	public static final String ITEMS = "items"; //$NON-NLS-1$
-	/**
-	 * Applies to Spinner
-	 */
-	public static final String MAX = "max"; //$NON-NLS-1$
-	/**
-	 * Applies to Spinner
-	 */
-	public static final String MIN = "min"; //$NON-NLS-1$
-	/**
-	 * Applies to Spinner, Button
-	 */
-	public static final String SELECTION = "selection"; //$NON-NLS-1$
-	/**
-	 * Applies to Spinner, Button
-	 */
-	public static final String SELECTION_INDEX = "index"; //$NON-NLS-1$
-	/**
-	 * Applies to Text, Label, Combo
-	 */
-	public static final String TEXT = "text"; //$NON-NLS-1$
-	
-	/**
-	 * Applies to Label, CLabel.
-	 */
-	public static final String IMAGE = "image"; //$NON-NLS-1$
-	/**
-	 * Applies to Control
-	 */
-	public static final String FOREGROUND = "foreground"; //$NON-NLS-1$
-	/**
-	 * Applies to Control
-	 */
-	public static final String BACKGROUND = "background"; //$NON-NLS-1$
-	/**
-	 * Applies to Control
-	 */
-	public static final String FONT = "font"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ScaleObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ScaleObservableValue.java
deleted file mode 100644
index 8424662..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ScaleObservableValue.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Peter Centgraf - bug 175763
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Scale;
-
-/**
- * @since 1.0
- * 
- */
-public class ScaleObservableValue extends AbstractSWTObservableValue {
-
-	private final Scale scale;
-
-	private final String attribute;
-
-	private boolean updating = false;
-
-	private int currentSelection;
-	
-	private SelectionListener listener;
-
-	/**
-	 * @param scale
-	 * @param attribute
-	 */
-	public ScaleObservableValue(Scale scale, String attribute) {
-		super(scale);
-		this.scale = scale;
-		this.attribute = attribute;
-		init();
-	}
-	
-	/**
-	 * @param realm
-	 * @param scale
-	 * @param attribute
-	 */
-	public ScaleObservableValue(Realm realm, Scale scale, String attribute) {
-		super(realm, scale);
-		this.scale = scale;
-		this.attribute = attribute;
-		init();
-	}
-	
-	private void init() {		
-		if (attribute.equals(SWTProperties.SELECTION)) {
-			currentSelection = scale.getSelection();
-			scale.addSelectionListener(listener = new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (!updating) {
-						int newSelection = ScaleObservableValue.this.scale
-						.getSelection();
-						notifyIfChanged(currentSelection, newSelection);
-						currentSelection = newSelection;
-					}
-				}
-			});
-		} else if (!attribute.equals(SWTProperties.MIN)
-				&& !attribute.equals(SWTProperties.MAX)) {
-			throw new IllegalArgumentException(
-					"Attribute name not valid: " + attribute); //$NON-NLS-1$
-		}
-	}
-
-	public void doSetValue(final Object value) {
-		int oldValue;
-		int newValue;
-		try {
-			updating = true;
-			newValue = ((Integer) value).intValue();
-			if (attribute.equals(SWTProperties.SELECTION)) {
-				oldValue = scale.getSelection();
-				scale.setSelection(newValue);
-				currentSelection = newValue;
-			} else if (attribute.equals(SWTProperties.MIN)) {
-				oldValue = scale.getMinimum();
-				scale.setMinimum(newValue);
-			} else if (attribute.equals(SWTProperties.MAX)) {
-				oldValue = scale.getMaximum();
-				scale.setMaximum(newValue);
-			} else {
-				Assert.isTrue(false, "invalid attribute name:" + attribute); //$NON-NLS-1$
-				return;
-			}
-			
-			notifyIfChanged(oldValue, newValue);
-		} finally {
-			updating = false;
-		}
-	}
-
-	public Object doGetValue() {
-		int value = 0;
-		if (attribute.equals(SWTProperties.SELECTION)) {
-			value = scale.getSelection();
-		} else if (attribute.equals(SWTProperties.MIN)) {
-			value = scale.getMinimum();
-		} else if (attribute.equals(SWTProperties.MAX)) {
-			value = scale.getMaximum();
-		}
-		return new Integer(value);
-	}
-
-	public Object getValueType() {
-		return Integer.TYPE;
-	}
-
-	/**
-	 * @return attribute being observed
-	 */
-	public String getAttribute() {
-		return attribute;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-		
-		if (listener != null && !scale.isDisposed()) {
-			scale.removeSelectionListener(listener);
-		}
-		listener = null;
-	}
-	
-	private void notifyIfChanged(int oldValue, int newValue) {
-		if (oldValue != newValue) {
-			fireValueChange(Diffs.createValueDiff(new Integer(oldValue),
-					new Integer(newValue)));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ShellObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ShellObservableValue.java
deleted file mode 100644
index a38091e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/ShellObservableValue.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 207844)
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 212235
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * An {@link IObservableValue} that tracks the text of a Shell.
- * 
- * @since 1.2
- */
-public class ShellObservableValue extends AbstractSWTObservableValue {
-
-	private final Shell shell;
-
-	/**
-	 * Constructs a ShellObservableValue which tracks the text of the given
-	 * Shell.
-	 * 
-	 * @param shell
-	 *            the shell to track
-	 */
-	public ShellObservableValue(Shell shell) {
-		super(shell);
-		this.shell = shell;
-	}
-
-	/**
-	 * Constructs a ShellObservableValue belonging to the given realm, which
-	 * tracks the text of the given shell.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed observable
-	 * @param shell
-	 *            the shell to track
-	 */
-	public ShellObservableValue(Realm realm, Shell shell) {
-		super(realm, shell);
-		this.shell = shell;
-	}
-
-	protected void doSetValue(final Object value) {
-		String oldValue = shell.getText();
-		String newValue = value == null ? "" : value.toString(); //$NON-NLS-1$
-		shell.setText(newValue);
-
-		if (!newValue.equals(oldValue)) {
-			fireValueChange(Diffs.createValueDiff(oldValue, newValue));
-		}
-	}
-
-	protected Object doGetValue() {
-		return shell.getText();
-	}
-
-	public Object getValueType() {
-		return String.class;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SingleSelectionObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SingleSelectionObservableValue.java
deleted file mode 100644
index 1f69137..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SingleSelectionObservableValue.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @since 1.0
- * 
- */
-abstract public class SingleSelectionObservableValue extends
-		AbstractSWTObservableValue {
-
-	private boolean updating = false;
-
-	private int currentSelection;
-
-	/**
-	 * @param control
-	 *            the control
-	 */
-	public SingleSelectionObservableValue(Control control) {
-		super(control);
-		init();
-	}
-	
-	/**
-	 * @param realm
-	 * @param control
-	 */
-	public SingleSelectionObservableValue(Realm realm, Control control) {
-		super(realm, control);
-		init();
-	}
-	
-	private void init() {		
-		currentSelection = doGetSelectionIndex();
-		doAddSelectionListener(new Runnable(){
-			public void run() {
-				if (!updating) {
-					int newSelection = doGetSelectionIndex();
-					notifyIfChanged(currentSelection, newSelection);
-					currentSelection = newSelection;
-				}
-			}
-		});
-	}
-
-	/**
-	 * @param runnable
-	 */
-	protected abstract void doAddSelectionListener(Runnable runnable);
-
-	public void doSetValue(Object value) {
-		try {
-			updating = true;
-			int intValue = ((Integer) value).intValue();
-			doSetSelectionIndex(intValue);
-			notifyIfChanged(currentSelection, intValue);
-			currentSelection = intValue;
-		} finally {
-			updating = false;
-		}
-	}
-
-	/**
-	 * @param intValue
-	 *            the selection index
-	 */
-	protected abstract void doSetSelectionIndex(int intValue);
-
-	public Object doGetValue() {
-		return new Integer(doGetSelectionIndex());
-	}
-
-	/**
-	 * @return the selection index
-	 */
-	protected abstract int doGetSelectionIndex();
-
-	public Object getValueType() {
-		return Integer.TYPE;
-	}
-
-	private void notifyIfChanged(int oldValue, int newValue) {
-		if (oldValue != newValue) {
-			fireValueChange(Diffs.createValueDiff(new Integer(
-					oldValue), new Integer(newValue)));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SpinnerObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SpinnerObservableValue.java
deleted file mode 100644
index 89c34b9..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/SpinnerObservableValue.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @since 1.0
- * 
- */
-public class SpinnerObservableValue extends AbstractSWTObservableValue {
-
-	private final Spinner spinner;
-
-	private final String attribute;
-
-	private boolean updating = false;
-
-	private int currentSelection;
-
-	private ModifyListener modifyListener;
-
-	/**
-	 * @param spinner
-	 * @param attribute
-	 */
-	public SpinnerObservableValue(Spinner spinner, String attribute) {
-		super(spinner);
-		this.spinner = spinner;
-		this.attribute = attribute;
-		init();
-	}
-	
-	/**
-	 * @param realm
-	 * @param spinner
-	 * @param attribute
-	 */
-	public SpinnerObservableValue(Realm realm, Spinner spinner, String attribute) {
-		super(realm, spinner);
-		this.spinner = spinner;
-		this.attribute = attribute;
-		init();
-	}
-	
-	private void init() {		
-		if (attribute.equals(SWTProperties.SELECTION)) {
-			currentSelection = spinner.getSelection();
-			modifyListener = new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					if (!updating) {
-						int newSelection = SpinnerObservableValue.this.spinner
-						.getSelection();
-						notifyIfChanged(currentSelection, newSelection);
-						currentSelection = newSelection;
-					}
-				}
-			};
-			spinner.addModifyListener(modifyListener);
-		} else if (!attribute.equals(SWTProperties.MIN)
-				&& !attribute.equals(SWTProperties.MAX)) {
-			throw new IllegalArgumentException(
-					"Attribute name not valid: " + attribute); //$NON-NLS-1$
-		}
-	}
-
-	public void doSetValue(final Object value) {
-		int oldValue;
-		int newValue;
-		try {
-			updating = true;
-			newValue = ((Integer) value).intValue();
-			if (attribute.equals(SWTProperties.SELECTION)) {
-				oldValue = spinner.getSelection();
-				spinner.setSelection(newValue);
-				currentSelection = newValue;
-			} else if (attribute.equals(SWTProperties.MIN)) {
-				oldValue = spinner.getMinimum();
-				spinner.setMinimum(newValue);
-			} else if (attribute.equals(SWTProperties.MAX)) {
-				oldValue = spinner.getMaximum();
-				spinner.setMaximum(newValue);
-			} else {
-				Assert.isTrue(false, "invalid attribute name:" + attribute); //$NON-NLS-1$
-				return;
-			}
-			notifyIfChanged(oldValue, newValue);
-		} finally {
-			updating = false;
-		}
-	}
-
-	public Object doGetValue() {
-		int value = 0;
-		if (attribute.equals(SWTProperties.SELECTION)) {
-			value = spinner.getSelection();
-		} else if (attribute.equals(SWTProperties.MIN)) {
-			value = spinner.getMinimum();
-		} else if (attribute.equals(SWTProperties.MAX)) {
-			value = spinner.getMaximum();
-		}
-		return new Integer(value);
-	}
-
-	public Object getValueType() {
-		return Integer.TYPE;
-	}
-
-	/**
-	 * @return attribute being observed
-	 */
-	public String getAttribute() {
-		return attribute;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-		if (modifyListener != null && !spinner.isDisposed()) {
-			spinner.removeModifyListener(modifyListener);
-		}
-	}
-	
-	private void notifyIfChanged(int oldValue, int newValue) {
-		if (oldValue != newValue) {
-			fireValueChange(Diffs.createValueDiff(new Integer(oldValue),
-					new Integer(newValue)));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TableSingleSelectionObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TableSingleSelectionObservableValue.java
deleted file mode 100644
index dd7d12c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TableSingleSelectionObservableValue.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Table;
-
-/**
- * @since 1.0
- * 
- */
-public class TableSingleSelectionObservableValue extends
-		SingleSelectionObservableValue {
-
-	private SelectionListener selectionListener;
-
-	/**
-	 * @param table
-	 */
-	public TableSingleSelectionObservableValue(Table table) {
-		super(table);
-	}
-	
-	/**
-	 * @param realm
-	 * @param table
-	 */
-	public TableSingleSelectionObservableValue(Realm realm, Table table) {
-		super(realm, table);
-	}
-
-	private Table getTable() {
-		return (Table) getWidget();
-	}
-
-	protected void doAddSelectionListener(final Runnable runnable) {
-		selectionListener = new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				runnable.run();
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				runnable.run();
-			}
-		};
-		getTable().addSelectionListener(selectionListener);
-	}
-
-	protected int doGetSelectionIndex() {
-		return getTable().getSelectionIndex();
-	}
-
-	protected void doSetSelectionIndex(int index) {
-		getTable().setSelection(index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		super.dispose();
-		if (selectionListener != null && !getTable().isDisposed()) {
-			getTable().removeSelectionListener(selectionListener);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TextEditableObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TextEditableObservableValue.java
deleted file mode 100644
index 3457c0a..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TextEditableObservableValue.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Observable value for the editable property of a Text.
- * 
- * @since 1.1
- */
-public class TextEditableObservableValue extends AbstractSWTObservableValue {
-	private Text text;
-	
-	/**
-	 * @param text
-	 */
-	public TextEditableObservableValue(Text text) {
-		super(text);	
-		this.text = text;
-	}
-	
-	/**
-	 * @param realm
-	 * @param text
-	 */
-	public TextEditableObservableValue(Realm realm, Text text) {
-		super(realm, text);
-		this.text = text;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doGetValue()
-	 */
-	protected Object doGetValue() {
-		return (text.getEditable()) ? Boolean.TRUE : Boolean.FALSE;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.observable.value.IObservableValue#getValueType()
-	 */
-	public Object getValueType() {
-		return Boolean.TYPE;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object value) {
-		if (value == null) {
-			throw new IllegalArgumentException("Parameter value was null."); //$NON-NLS-1$
-		}
-		
-		Boolean oldValue = new Boolean(text.getEditable());
-		Boolean newValue = (Boolean) value;
-		
-		text.setEditable(newValue.booleanValue());
-		
-		if (!oldValue.equals(newValue)) {
-			fireValueChange(Diffs.createValueDiff(oldValue, newValue));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TextObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TextObservableValue.java
deleted file mode 100644
index dcc516c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/swt/TextObservableValue.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds (bug 135446)
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTVetoableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * {@link IObservable} implementation that wraps a {@link Text} widget. The time
- * at which listeners should be notified about changes to the text is specified
- * on construction.
- * 
- * <dl>
- * <dt>Events:</dt>
- * <dd> If the update event type (specified on construction) is
- * <code>SWT.Modify</code> a value change event will be fired on every key
- * stroke. If the update event type is <code>SWT.FocusOut</code> a value
- * change event will be fired on focus out. When in either mode if the user is
- * entering text and presses [Escape] the value will be reverted back to the
- * last value set using doSetValue(). Regardless of the update event type a
- * value changing event will fire on verify to enable vetoing of changes.</dd>
- * </dl>
- * 
- * @since 1.0
- */
-public class TextObservableValue extends AbstractSWTVetoableValue {
-
-	/**
-	 * {@link Text} widget that this is being observed.
-	 */
-	private final Text text;
-
-	/**
-	 * Flag to track when the model is updating the widget. When
-	 * <code>true</code> the handlers for the SWT events should not process
-	 * the event as this would cause an infinite loop.
-	 */
-	private boolean updating = false;
-
-	/**
-	 * SWT event that on firing this observable will fire change events to its
-	 * listeners.
-	 */
-	private final int updateEventType;
-
-	/**
-	 * Valid types for the {@link #updateEventType}.
-	 */
-	private static final int[] validUpdateEventTypes = new int[] { SWT.Modify,
-			SWT.FocusOut, SWT.None };
-
-	/**
-	 * Previous value of the Text.
-	 */
-	private String oldValue;
-
-	private Listener updateListener = new Listener() {
-		public void handleEvent(Event event) {
-			if (!updating) {
-				String newValue = text.getText();
-
-				if (!newValue.equals(oldValue)) {
-					fireValueChange(Diffs.createValueDiff(oldValue, newValue));					
-					oldValue = newValue;
-				}
-			}
-		}
-	};
-
-	private VerifyListener verifyListener;
-
-	/**
-	 * Constructs a new instance bound to the given <code>text</code> widget
-	 * and configured to fire change events to its listeners at the time of the
-	 * <code>updateEventType</code>.
-	 * 
-	 * @param text
-	 * @param updateEventType
-	 *            SWT event constant as to what SWT event to update the model in
-	 *            response to. Appropriate values are: <code>SWT.Modify</code>,
-	 *            <code>SWT.FocusOut</code>, <code>SWT.None</code>.
-	 * @throws IllegalArgumentException
-	 *             if <code>updateEventType</code> is an incorrect type.
-	 */
-	public TextObservableValue(final Text text, int updateEventType) {
-		this(SWTObservables.getRealm(text.getDisplay()), text, updateEventType);
-	}
-	
-	/**
-	 * Constructs a new instance.
-	 * 
-	 * @param realm can not be <code>null</code>
-	 * @param text
-	 * @param updateEventType
-	 */
-	public TextObservableValue(final Realm realm, Text text, int updateEventType) {
-		super(realm, text);
-		
-		boolean eventValid = false;
-		for (int i = 0; !eventValid && i < validUpdateEventTypes.length; i++) {
-			eventValid = (updateEventType == validUpdateEventTypes[i]);
-		}
-		if (!eventValid) {
-			throw new IllegalArgumentException(
-					"UpdateEventType [" + updateEventType + "] is not supported."); //$NON-NLS-1$//$NON-NLS-2$
-		}
-		this.text = text;
-		this.updateEventType = updateEventType;
-		if (updateEventType != SWT.None) {
-			text.addListener(updateEventType, updateListener);
-		}
-		
-		oldValue = text.getText();
-		
-		verifyListener = new VerifyListener() {
-			public void verifyText(VerifyEvent e) {
-				if (!updating) {
-					String currentText = TextObservableValue.this.text
-							.getText();
-					String newText = currentText.substring(0, e.start) + e.text
-							+ currentText.substring(e.end);
-					if (!fireValueChanging(Diffs.createValueDiff(currentText,
-							newText))) {
-						e.doit = false;
-					}
-				}
-			}
-		};
-		text.addVerifyListener(verifyListener);
-	}
-
-	/**
-	 * Sets the bound {@link Text Text's} text to the passed <code>value</code>.
-	 * 
-	 * @param value
-	 *            new value, String expected
-	 * @see org.eclipse.core.databinding.observable.value.AbstractVetoableValue#doSetApprovedValue(java.lang.Object)
-	 * @throws ClassCastException
-	 *             if the value is anything other than a String
-	 */
-	protected void doSetApprovedValue(final Object value) {
-		try {
-			updating = true;
-			text.setText(value == null ? "" : value.toString()); //$NON-NLS-1$
-			oldValue = text.getText();
-		} finally {
-			updating = false;
-		}
-	}
-
-	/**
-	 * Returns the current value of the {@link Text}.
-	 * 
-	 * @see org.eclipse.core.databinding.observable.value.AbstractVetoableValue#doGetValue()
-	 */
-	public Object doGetValue() {
-		return oldValue = text.getText();
-	}
-
-	/**
-	 * Returns the type of the value from {@link #doGetValue()}, i.e.
-	 * String.class
-	 * 
-	 * @see org.eclipse.core.databinding.observable.value.IObservableValue#getValueType()
-	 */
-	public Object getValueType() {
-		return String.class;
-	}
-
-	public void dispose() {
-		if (!text.isDisposed()) {
-			if (updateEventType != SWT.None) {
-				text.removeListener(updateEventType, updateListener);
-			}
-			text.removeVerifyListener(verifyListener);
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/CheckableCheckedElementsObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/CheckableCheckedElementsObservableSet.java
deleted file mode 100644
index da84d94..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/CheckableCheckedElementsObservableSet.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 124684)
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.AbstractObservableSet;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ICheckable;
-
-/**
- * 
- * @since 1.2
- */
-public class CheckableCheckedElementsObservableSet extends
-		AbstractObservableSet {
-	private ICheckable checkable;
-	private Set wrappedSet;
-	private Object elementType;
-	private ICheckStateListener listener;
-
-	/**
-	 * Constructs a new instance on the given realm and checkable.
-	 * 
-	 * @param realm
-	 *            the observable's realm
-	 * @param checkable
-	 *            the ICheckable to track
-	 * @param elementType
-	 *            type of elements in the set
-	 */
-	public CheckableCheckedElementsObservableSet(Realm realm,
-			ICheckable checkable, Object elementType) {
-		this(realm, checkable, elementType, new HashSet());
-	}
-
-	/**
-	 * Constructs a new instance of the given realm, and checkable,
-	 * 
-	 * @param realm
-	 *            the observable's realm
-	 * @param checkable
-	 *            the ICheckable to track
-	 * @param elementType
-	 *            type of elements in the set
-	 * @param wrappedSet
-	 *            the set being wrapped
-	 */
-	public CheckableCheckedElementsObservableSet(Realm realm,
-			ICheckable checkable, Object elementType, final Set wrappedSet) {
-		super(realm);
-		Assert.isNotNull(checkable, "Checkable cannot be null"); //$NON-NLS-1$
-		Assert.isNotNull(wrappedSet, "Wrapped set cannot be null"); //$NON-NLS-1$
-		this.checkable = checkable;
-		this.wrappedSet = wrappedSet;
-		this.elementType = elementType;
-
-		listener = new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				Object element = event.getElement();
-				if (event.getChecked()) {
-					if (wrappedSet.add(element))
-						fireSetChange(Diffs.createSetDiff(Collections
-								.singleton(element), Collections.EMPTY_SET));
-				} else {
-					if (wrappedSet.remove(element))
-						fireSetChange(Diffs.createSetDiff(
-								Collections.EMPTY_SET, Collections
-										.singleton(element)));
-				}
-			}
-		};
-		checkable.addCheckStateListener(listener);
-	}
-
-	protected Set getWrappedSet() {
-		return wrappedSet;
-	}
-
-	Set createDiffSet() {
-		return new HashSet();
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		boolean added = wrappedSet.add(o);
-		if (added) {
-			checkable.setChecked(o, true);
-			fireSetChange(Diffs.createSetDiff(Collections.singleton(o),
-					Collections.EMPTY_SET));
-		}
-		return added;
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		boolean removed = wrappedSet.remove(o);
-		if (removed) {
-			checkable.setChecked(o, false);
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET,
-					Collections.singleton(o)));
-		}
-		return removed;
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		Set additions = createDiffSet();
-		for (Iterator iterator = c.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (wrappedSet.add(element)) {
-				checkable.setChecked(element, true);
-				additions.add(element);
-			}
-		}
-		boolean changed = !additions.isEmpty();
-		if (changed)
-			fireSetChange(Diffs.createSetDiff(additions, Collections.EMPTY_SET));
-		return changed;
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		Set removals = createDiffSet();
-		for (Iterator iterator = c.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (wrappedSet.remove(element)) {
-				checkable.setChecked(element, false);
-				removals.add(element);
-			}
-		}
-		boolean changed = !removals.isEmpty();
-		if (changed)
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removals));
-		return changed;
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-
-		// To ensure that elements are compared correctly, e.g. ViewerElementSet
-		Set toRetain = createDiffSet();
-		toRetain.addAll(c);
-
-		Set removals = createDiffSet();
-		for (Iterator iterator = wrappedSet.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (!toRetain.contains(element)) {
-				iterator.remove();
-				checkable.setChecked(element, false);
-				removals.add(element);
-			}
-		}
-		boolean changed = !removals.isEmpty();
-		if (changed)
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removals));
-		return changed;
-	}
-
-	public void clear() {
-		removeAll(wrappedSet);
-	}
-
-	public Iterator iterator() {
-		getterCalled();
-		final Iterator wrappedIterator = wrappedSet.iterator();
-		return new Iterator() {
-			private Object last = null;
-
-			public boolean hasNext() {
-				getterCalled();
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				getterCalled();
-				return last = wrappedIterator.next();
-			}
-
-			public void remove() {
-				getterCalled();
-				wrappedIterator.remove();
-				checkable.setChecked(last, false);
-				fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET,
-						Collections.singleton(last)));
-			}
-		};
-	}
-
-	public synchronized void dispose() {
-		if (checkable != null) {
-			checkable.removeCheckStateListener(listener);
-			checkable = null;
-			listener = null;
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/CheckboxViewerCheckedElementsObservableSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/CheckboxViewerCheckedElementsObservableSet.java
deleted file mode 100644
index eba454c..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/CheckboxViewerCheckedElementsObservableSet.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 124684)
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import java.util.Arrays;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.viewers.IViewerObservableSet;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * An observable set that tracks the checked elements in a CheckboxTableViewer
- * or CheckboxTreeViewer
- * 
- * @since 1.2
- */
-public class CheckboxViewerCheckedElementsObservableSet extends
-		CheckableCheckedElementsObservableSet implements IViewerObservableSet {
-	private StructuredViewer viewer;
-
-	/**
-	 * Constructs a new instance on the given realm and checkable.
-	 * 
-	 * @param realm
-	 *            the observable's realm
-	 * @param viewer
-	 *            the CheckboxTableViewer viewer to track.
-	 * @param elementType
-	 *            type of elements in the set
-	 */
-	public CheckboxViewerCheckedElementsObservableSet(Realm realm,
-			CheckboxTableViewer viewer, Object elementType) {
-		super(realm, viewer, elementType, createElementSet(viewer));
-		this.viewer = viewer;
-	}
-
-	/**
-	 * Constructs a new instance on the given realm and checkable.
-	 * 
-	 * @param realm
-	 *            the observable's realm
-	 * @param viewer
-	 *            the CheckboxTreeViewer viewer to track.
-	 * @param elementType
-	 *            type of elements in the set
-	 */
-	public CheckboxViewerCheckedElementsObservableSet(Realm realm,
-			CheckboxTreeViewer viewer, Object elementType) {
-		super(realm, viewer, elementType, createElementSet(viewer));
-		this.viewer = viewer;
-	}
-
-	Set createDiffSet() {
-		return ViewerElementSet.withComparer(viewer.getComparer());
-	}
-
-	private static Set createElementSet(CheckboxTableViewer viewer) {
-		Set set = ViewerElementSet.withComparer(viewer.getComparer());
-		set.addAll(Arrays.asList(viewer.getCheckedElements()));
-		return set;
-	}
-
-	private static Set createElementSet(CheckboxTreeViewer viewer) {
-		Set set = ViewerElementSet.withComparer(viewer.getComparer());
-		set.addAll(Arrays.asList(viewer.getCheckedElements()));
-		return set;
-	}
-
-	public Viewer getViewer() {
-		return viewer;
-	}
-
-	public synchronized void dispose() {
-		viewer = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/LeafNodesSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/LeafNodesSet.java
deleted file mode 100644
index 4b4b140..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/LeafNodesSet.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.viewers;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.AbstractObservableSet;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.internal.databinding.observable.tree.IUnorderedTreeProvider;
-import org.eclipse.core.internal.databinding.observable.tree.TreePath;
-
-/**
- * This set consists of all leaf nodes from the given tree (that is, all nodes
- * for which ITreeProvider.createChildSet returns null).
- */
-public class LeafNodesSet extends AbstractObservableSet {
-
-	private HashSet leafNodes = new HashSet();
-
-	private HashMap mapElementsOntoNodeInfo = new HashMap();
-
-	private IUnorderedTreeProvider tree;
-
-	private Object input;
-
-	private int staleCount = 0;
-
-	private class NodeInfo implements IStaleListener, ISetChangeListener {
-		// Number of times the element occurs in the tree
-		private int count;
-
-		// Element
-		private TreePath treePath;
-
-		// Children set (or null if this is a leaf node)
-		IObservableSet children;
-
-		private boolean wasStale = false;
-
-		/**
-		 * @param treePath
-		 */
-		public NodeInfo(TreePath treePath) {
-			this.treePath = treePath;
-			children = tree.createChildSet(this.treePath);
-			if (children != null) {
-				children.addStaleListener(this);
-				children.addSetChangeListener(this);
-			}
-			count = 1;
-		}
-
-		public void handleSetChange(SetChangeEvent event) {
-			processDiff(treePath, event.diff);
-		}
-
-		public void handleStale(StaleEvent event) {
-			if (wasStale != children.isStale()) {
-				if (wasStale) {
-					staleCount--;
-				} else {
-					staleCount++;
-				}
-				wasStale = !wasStale;
-			}
-			setStale(staleCount > 0);
-		}
-
-		/**
-		 * 
-		 */
-		public void dispose() {
-			if (children != null) {
-				children.dispose();
-				children = null;
-				if (wasStale) {
-					staleCount--;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Creates a set that will contain the leaf nodes from the given tree
-	 * 
-	 * @param tree
-	 *            tree whose leaf nodes will be computed
-	 */
-	public LeafNodesSet(IUnorderedTreeProvider tree) {
-		this(null, tree);
-	}
-
-	/**
-	 * Creates a set that will contain the leaf nodes from the given tree, and
-	 * sets the root of the tree to the given element.
-	 * 
-	 * @param initialInput
-	 *            root of the tree
-	 * @param tree
-	 *            tree whose leaf nodes will be computed
-	 */
-	public LeafNodesSet(Object initialInput, IUnorderedTreeProvider tree) {
-		super(tree.getRealm());
-		this.tree = tree;
-		if (initialInput != null) {
-			setInput(initialInput);
-		}
-	}
-
-	private void processDiff(TreePath treePath, SetDiff diff) {
-		Set removals = new HashSet();
-		HashSet additions = new HashSet();
-
-		for (Iterator iter = diff.getRemovals().iterator(); iter.hasNext();) {
-			Object next = iter.next();
-
-			elementRemoved(treePath.createChildPath(next), removals);
-		}
-
-		for (Iterator iter = diff.getAdditions().iterator(); iter.hasNext();) {
-			Object next = iter.next();
-
-			elementDiscovered(treePath.createChildPath(next), additions);
-		}
-
-		HashSet newRemovals = new HashSet();
-		newRemovals.addAll(removals);
-		newRemovals.removeAll(additions);
-
-		HashSet newAdditions = new HashSet();
-		newAdditions.addAll(additions);
-		newAdditions.removeAll(removals);
-
-		leafNodes.addAll(newAdditions);
-		leafNodes.removeAll(newRemovals);
-
-		if (!newAdditions.isEmpty() || !newRemovals.isEmpty()) {
-			setStale(staleCount > 0);
-			fireSetChange(Diffs.createSetDiff(newAdditions, newRemovals));
-		}
-	}
-
-	/**
-	 * Sets the root of the tree to the given element.
-	 * 
-	 * @param input
-	 *            new root of the tree
-	 */
-	public void setInput(Object input) {
-		Set removals = Collections.EMPTY_SET;
-		Set additions = Collections.EMPTY_SET;
-		if (this.input != null) {
-			removals = Collections.singleton(this.input);
-		} else if (input != null) {
-			additions = Collections.singleton(input);
-		}
-		this.input = input;
-		processDiff(TreePath.EMPTY, Diffs.createSetDiff(additions, removals));
-	}
-
-	/**
-	 * Called when an element is removed from the tree. The given HashSet will
-	 * be filled in with all removed leaf nodes.
-	 * 
-	 * @param treePath
-	 * @param removals
-	 */
-	private void elementRemoved(TreePath treePath, Set removals) {
-		NodeInfo newNode = (NodeInfo) mapElementsOntoNodeInfo.get(treePath);
-
-		if (newNode != null) {
-			newNode = new NodeInfo(treePath);
-			newNode.count--;
-			if (newNode.count == 0) {
-				mapElementsOntoNodeInfo.remove(treePath);
-				if (newNode.children != null) {
-					for (Iterator iter = newNode.children.iterator(); iter
-							.hasNext();) {
-						Object next = iter.next();
-
-						elementRemoved(treePath.createChildPath(next), removals);
-					}
-					newNode.children.dispose();
-				} else {
-					removals.add(treePath);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Called when a new element is discovered in the tree. The given HashSet
-	 * will be filled in with all newly discovered leaf nodes.
-	 * 
-	 * @param treePath
-	 * @param additions
-	 */
-	private void elementDiscovered(TreePath treePath, HashSet additions) {
-		NodeInfo newNode = (NodeInfo) mapElementsOntoNodeInfo.get(treePath);
-
-		if (newNode == null) {
-			newNode = new NodeInfo(treePath);
-			mapElementsOntoNodeInfo.put(treePath, newNode);
-			if (newNode.children != null) {
-				for (Iterator iter = newNode.children.iterator(); iter
-						.hasNext();) {
-					Object next = iter.next();
-
-					elementDiscovered(treePath.createChildPath(next), additions);
-				}
-			} else {
-				additions.add(treePath);
-			}
-		} else {
-			// If this node was already known, increment the reference count.
-			newNode.count++;
-		}
-	}
-
-	protected Set getWrappedSet() {
-		return leafNodes;
-	}
-
-	public Object getElementType() {
-		return Object.class;
-	}
-
-	public void dispose() {
-		for (Iterator iter = mapElementsOntoNodeInfo.values().iterator(); iter
-				.hasNext();) {
-			NodeInfo next = (NodeInfo) iter.next();
-
-			if (next.children != null) {
-				next.dispose();
-			}
-		}
-
-		mapElementsOntoNodeInfo.clear();
-		leafNodes.clear();
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ListViewerUpdater.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ListViewerUpdater.java
deleted file mode 100644
index 015669d..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ListViewerUpdater.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- *     Matthew Hall - bug 226765
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.jface.viewers.AbstractListViewer;
-
-/**
- * NON-API - A {@link ViewerUpdater} that updates {@link AbstractListViewer}
- * instances.
- * 
- * @since 1.2
- */
-class ListViewerUpdater extends ViewerUpdater {
-	private AbstractListViewer viewer;
-
-	ListViewerUpdater(AbstractListViewer viewer) {
-		super(viewer);
-		this.viewer = viewer;
-	}
-
-	public void insert(Object element, int position) {
-		viewer.insert(element, position);
-	}
-
-	public void remove(Object element, int position) {
-		viewer.remove(element);
-	}
-
-	public void add(Object[] elements) {
-		viewer.add(elements);
-	}
-
-	public void remove(Object[] elements) {
-		viewer.remove(elements);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionContentProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionContentProvider.java
deleted file mode 100644
index 7daec15..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionContentProvider.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- *     Matthew Hall - bug 226765
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.viewers.AbstractListViewer;
-import org.eclipse.jface.viewers.AbstractTableViewer;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * NON-API - Abstract base class for content providers where the viewer input is
- * expected to be an {@link IObservableCollection}.
- * 
- * @since 1.2
- */
-public abstract class ObservableCollectionContentProvider implements
-		IStructuredContentProvider {
-	private IObservableValue viewerObservable;
-
-	/**
-	 * Element comparer used by the viewer (may be null).
-	 */
-	protected IElementComparer comparer;
-
-	/**
-	 * Interface for sending updates to the viewer.
-	 */
-	protected ViewerUpdater viewerUpdater;
-
-	/**
-	 * Observable set of all elements known to the content provider. Subclasses
-	 * must add new elements to this set <b>before</b> adding them to the
-	 * viewer, and must remove old elements from this set <b>after</b> removing
-	 * them from the viewer.
-	 */
-	protected IObservableSet knownElements;
-
-	private IObservableSet unmodifiableKnownElements;
-	private IObservableCollection observableCollection;
-
-	/**
-	 * Constructs an ObservableCollectionContentProvider
-	 */
-	protected ObservableCollectionContentProvider() {
-		final Realm realm = SWTObservables.getRealm(Display.getDefault());
-		viewerObservable = new WritableValue(realm);
-		viewerUpdater = null;
-
-		// Known elements is a detail set of viewerObservable, so that when we
-		// get the viewer instance we can swap in a set that uses its
-		// IElementComparer, if any.
-		IObservableFactory knownElementsFactory = new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				IElementComparer comparer = null;
-				if (target instanceof StructuredViewer)
-					comparer = ((StructuredViewer) target).getComparer();
-				return ObservableViewerElementSet.withComparer(realm, null,
-						comparer);
-			}
-		};
-		knownElements = MasterDetailObservables.detailSet(viewerObservable,
-				knownElementsFactory, null);
-		unmodifiableKnownElements = Observables
-				.unmodifiableObservableSet(knownElements);
-
-		observableCollection = null;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		if (observableCollection == null)
-			return new Object[0];
-		return observableCollection.toArray();
-	}
-
-	public void dispose() {
-		if (observableCollection != null)
-			removeCollectionChangeListener(observableCollection);
-
-		if (viewerObservable != null) {
-			viewerObservable.setValue(null);
-			viewerObservable.dispose();
-			viewerObservable = null;
-		}
-		viewerUpdater = null;
-		knownElements = null;
-		unmodifiableKnownElements = null;
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		setViewer(viewer);
-		setInput(newInput);
-	}
-
-	private void setViewer(Viewer viewer) {
-		viewerUpdater = createViewerUpdater(viewer);
-		comparer = getElementComparer(viewer);
-		viewerObservable.setValue(viewer); // (clears knownElements)
-	}
-
-	private static IElementComparer getElementComparer(Viewer viewer) {
-		if (viewer instanceof StructuredViewer)
-			return ((StructuredViewer) viewer).getComparer();
-		return null;
-	}
-
-	ViewerUpdater createViewerUpdater(Viewer viewer) {
-		if (viewer instanceof AbstractListViewer)
-			return new ListViewerUpdater((AbstractListViewer) viewer);
-		if (viewer instanceof AbstractTableViewer)
-			return new TableViewerUpdater((AbstractTableViewer) viewer);
-		throw new IllegalArgumentException(
-				"This content provider only works with AbstractTableViewer or AbstractListViewer"); //$NON-NLS-1$
-	}
-
-	void setInput(Object input) {
-		if (observableCollection != null) {
-			removeCollectionChangeListener(observableCollection);
-			observableCollection = null;
-		}
-
-		if (input != null) {
-			checkInput(input);
-			Assert.isTrue(input instanceof IObservableCollection,
-					"Input must be an IObservableCollection"); //$NON-NLS-1$
-			observableCollection = (IObservableCollection) input;
-			addCollectionChangeListener(observableCollection);
-			knownElements.addAll(observableCollection);
-		}
-	}
-
-	/**
-	 * Throws an exception if the input is not the correct type.
-	 * 
-	 * @param input
-	 *            the input to check
-	 */
-	protected abstract void checkInput(Object input);
-
-	/**
-	 * Register for change event notification from the given collection.
-	 * 
-	 * @param collection
-	 *            observable collection to listen to
-	 */
-	protected abstract void addCollectionChangeListener(
-			IObservableCollection collection);
-
-	/**
-	 * Deregisters from change events notification on the given collection.
-	 * 
-	 * @param collection
-	 *            observable collection to stop listening to
-	 */
-	protected abstract void removeCollectionChangeListener(
-			IObservableCollection collection);
-
-	/**
-	 * Returns whether the viewer is disposed. Collection change listeners in
-	 * subclasses should verify that the viewer is not disposed before sending
-	 * any updates to the {@link ViewerUpdater viewer updater}.
-	 * 
-	 * @return whether the viewer is disposed.
-	 */
-	protected final boolean isViewerDisposed() {
-		Viewer viewer = (Viewer) viewerObservable.getValue();
-		return viewer == null || viewer.getControl() == null
-				|| viewer.getControl().isDisposed();
-	}
-
-	/**
-	 * Returns the set of elements known to this content provider. Label
-	 * providers may track this set if they need to be notified about additions
-	 * before the viewer sees the added element, and notified about removals
-	 * after the element was removed from the viewer. This is intended for use
-	 * by label providers, as it will always return the items that need labels.
-	 * 
-	 * @return unmodifiable observable set of items that will need labels
-	 */
-	public IObservableSet getKnownElements() {
-		return unmodifiableKnownElements;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionTreeContentProvider.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionTreeContentProvider.java
deleted file mode 100644
index 37bb1c9..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionTreeContentProvider.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 207858)
- *     Matthew Hall - bugs 226765, 239015
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.IObservablesListener;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.TreeStructureAdvisor;
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * NON-API - Abstract base class for {@link ITreeContentProvider}s which use an
- * {@link IObservableFactory observable collection factory} to provide the
- * elements of a tree. Each observable collection obtained from the factory is
- * observed such that changes in the collection are reflected in the viewer.
- * 
- * @since 1.2
- */
-public abstract class ObservableCollectionTreeContentProvider implements
-		ITreeContentProvider {
-	private Realm realm;
-
-	private IObservableValue viewerObservable;
-
-	/**
-	 * Interfaces for sending updates to the viewer.
-	 */
-	protected TreeViewerUpdater viewerUpdater;
-
-	/**
-	 * Element comparer used by the viewer (may be null).
-	 */
-	protected IElementComparer comparer;
-
-	private IObservableSet knownElements;
-	private IObservableSet unmodifiableKnownElements;
-
-	private IObservableFactory /* <IObservableCollection> */collectionFactory;
-
-	private Map /* <Object element, TreeNode node> */elementNodes;
-
-	private TreeStructureAdvisor structureAdvisor;
-
-	/**
-	 * Constructs an ObservableCollectionTreeContentProvider using the given
-	 * parent provider and collection factory.
-	 * 
-	 * @param collectionFactory
-	 *            observable factory that produces an IObservableList of
-	 *            children for a given parent element.
-	 * @param structureAdvisor
-	 */
-	protected ObservableCollectionTreeContentProvider(
-			IObservableFactory collectionFactory,
-			TreeStructureAdvisor structureAdvisor) {
-		this.structureAdvisor = structureAdvisor;
-		realm = SWTObservables.getRealm(Display.getDefault());
-		viewerObservable = new WritableValue(realm);
-		viewerUpdater = null;
-
-		// Known elements is a detail set of viewerObservable, so that when we
-		// get the viewer instance we can swap in a set that uses its
-		// IElementComparer, if any.
-		IObservableFactory knownElementsFactory = new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return ObservableViewerElementSet.withComparer(realm, null,
-						getElementComparer((Viewer) target));
-			}
-		};
-		knownElements = MasterDetailObservables.detailSet(viewerObservable,
-				knownElementsFactory, null);
-		unmodifiableKnownElements = Observables
-				.unmodifiableObservableSet(knownElements);
-
-		Assert
-				.isNotNull(collectionFactory,
-						"Collection factory cannot be null"); //$NON-NLS-1$
-		this.collectionFactory = collectionFactory;
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (elementNodes != null && !elementNodes.isEmpty()) {
-			// Ensure we flush any observable collection listeners
-			TreeNode[] oldNodes = new TreeNode[elementNodes.size()];
-			elementNodes.values().toArray(oldNodes);
-			for (int i = 0; i < oldNodes.length; i++)
-				oldNodes[i].dispose();
-			elementNodes.clear();
-			elementNodes = null;
-		}
-
-		setViewer(viewer);
-	}
-
-	private void setViewer(Viewer viewer) {
-		viewerUpdater = createViewerUpdater(viewer);
-		comparer = getElementComparer(viewer);
-		elementNodes = ViewerElementMap.withComparer(comparer);
-		viewerObservable.setValue(viewer); // (clears knownElements)
-	}
-
-	private static IElementComparer getElementComparer(Viewer viewer) {
-		if (viewer instanceof StructuredViewer)
-			return ((StructuredViewer) viewer).getComparer();
-		return null;
-	}
-
-	private static TreeViewerUpdater createViewerUpdater(Viewer viewer) {
-		if (viewer instanceof AbstractTreeViewer)
-			return new TreeViewerUpdater((AbstractTreeViewer) viewer);
-		throw new IllegalArgumentException(
-				"This content provider only works with AbstractTreeViewer"); //$NON-NLS-1$
-	}
-
-	public Object getParent(Object element) {
-		if (structureAdvisor != null) {
-			Object parentFromAdvisor = structureAdvisor.getParent(element);
-			if (parentFromAdvisor != null) {
-				return parentFromAdvisor;
-			}
-		}
-		TreeNode node = getExistingNode(element);
-		if (node != null)
-			return node.getParent();
-		return null;
-	}
-
-	public Object[] getElements(Object input) {
-		return getChildren(input, true);
-	}
-
-	public Object[] getChildren(Object element) {
-		return getChildren(element, false);
-	}
-
-	private Object[] getChildren(Object element, boolean input) {
-		Object[] children = getOrCreateNode(element, input).getChildren();
-		for (int i = 0; i < children.length; i++)
-			getOrCreateNode(children[i], false).addParent(element);
-		return children;
-	}
-
-	public boolean hasChildren(Object element) {
-		if (structureAdvisor != null) {
-			Boolean hasChildren = structureAdvisor.hasChildren(element);
-			if (hasChildren != null) {
-				return hasChildren.booleanValue();
-			}
-		}
-		return getOrCreateNode(element, false).hasChildren();
-	}
-
-	protected TreeNode getOrCreateNode(Object element) {
-		return getOrCreateNode(element, false);
-	}
-
-	private TreeNode getOrCreateNode(Object element, boolean input) {
-		TreeNode node = getExistingNode(element);
-		if (node == null) {
-			node = new TreeNode(element);
-			elementNodes.put(element, node);
-		}
-		// In case the input element is also a visible node in the tree.
-		if (!input)
-			knownElements.add(element);
-		return node;
-	}
-
-	protected TreeNode getExistingNode(Object element) {
-		TreeNode node = (TreeNode) elementNodes.get(element);
-		return node;
-	}
-
-	protected boolean isViewerDisposed() {
-		Viewer viewer = (Viewer) viewerObservable.getValue();
-		return viewer == null || viewer.getControl() == null
-				|| viewer.getControl().isDisposed();
-	}
-
-	public void dispose() {
-		if (elementNodes != null) {
-			if (!elementNodes.isEmpty()) {
-				TreeNode[] nodes = new TreeNode[elementNodes.size()];
-				elementNodes.values().toArray(nodes);
-				for (int i = 0; i < nodes.length; i++) {
-					nodes[i].dispose();
-				}
-				elementNodes.clear();
-			}
-			elementNodes = null;
-		}
-		if (viewerObservable != null) {
-			viewerObservable.setValue(null);
-			viewerObservable.dispose();
-			viewerObservable = null;
-		}
-		viewerUpdater = null;
-		comparer = null;
-		knownElements = null;
-		unmodifiableKnownElements = null;
-		collectionFactory = null;
-	}
-
-	/**
-	 * Returns the set of elements known to this content provider. Label
-	 * providers may track this set if they need to be notified about additions
-	 * before the viewer sees the added element, and notified about removals
-	 * after the element was removed from the viewer. This is intended for use
-	 * by label providers, as it will always return the items that need labels.
-	 * 
-	 * @return unmodifiable observable set of items that will need labels
-	 */
-	public IObservableSet getKnownElements() {
-		return unmodifiableKnownElements;
-	}
-
-	/**
-	 * Returns a listener which, when a collection change event is received,
-	 * updates the tree viewer through the {@link #viewerUpdater} field, and
-	 * maintains the adds and removes parents from the appropriate tree nodes.
-	 * 
-	 * @param parentElement
-	 *            the element that is the parent element of all elements in the
-	 *            observable collection.
-	 * @return a listener which updates the viewer when change events occur.
-	 */
-	protected abstract IObservablesListener createCollectionChangeListener(
-			Object parentElement);
-
-	/**
-	 * Registers the change listener to receive change events for the specified
-	 * observable collection.
-	 * 
-	 * @param collection
-	 *            the collection to observe for changes
-	 * @param listener
-	 *            the listener that will receive collection change events.
-	 */
-	protected abstract void addCollectionChangeListener(
-			IObservableCollection collection, IObservablesListener listener);
-
-	/**
-	 * Unregisters the change listener from receving change events for the
-	 * specified observable collection.
-	 * 
-	 * @param collection
-	 *            the collection to stop observing.
-	 * @param listener
-	 *            the listener to remove
-	 */
-	protected abstract void removeCollectionChangeListener(
-			IObservableCollection collection, IObservablesListener listener);
-
-	protected final class TreeNode {
-		private Object element;
-
-		private Object parent;
-		private Set parentSet;
-
-		private IObservableCollection children;
-
-		private IObservablesListener listener;
-
-		TreeNode(Object element) {
-			Assert.isNotNull(element, "element cannot be null"); //$NON-NLS-1$
-			this.element = element;
-		}
-
-		Object getElement() {
-			return element;
-		}
-
-		private boolean equal(Object left, Object right) {
-			if (comparer == null)
-				return Util.equals(left, right);
-			return comparer.equals(left, right);
-		}
-
-		public void addParent(Object newParent) {
-			if (parent == null) {
-				parent = newParent;
-			} else if (!equal(parent, newParent)) {
-				if (parentSet == null) {
-					parentSet = ViewerElementSet.withComparer(comparer);
-					parentSet.add(parent);
-				}
-				parentSet.add(newParent);
-			}
-		}
-
-		public void removeParent(Object oldParent) {
-			if (parentSet != null)
-				parentSet.remove(oldParent);
-
-			if (equal(parent, oldParent)) {
-				if (parentSet == null || parentSet.isEmpty()) {
-					parent = null;
-				} else {
-					Iterator iterator = parentSet.iterator();
-					parent = iterator.next();
-					iterator.remove();
-				}
-			}
-
-			if (parentSet != null && parentSet.isEmpty())
-				parentSet = null;
-
-			if (parent == null) {
-				dispose();
-			}
-		}
-
-		private Object getParent() {
-			return parent;
-		}
-
-		private void initChildren() {
-			if (children == null) {
-				children = (IObservableCollection) collectionFactory
-						.createObservable(element);
-				if (children == null) {
-					listener = null;
-					children = Observables.emptyObservableSet(realm);
-				} else {
-					Assert
-							.isTrue(Util.equals(realm, children.getRealm()),
-									"Children observable collection must be on the Display realm"); //$NON-NLS-1$
-					listener = createCollectionChangeListener(element);
-					addCollectionChangeListener(children, listener);
-				}
-			}
-		}
-
-		boolean hasChildren() {
-			initChildren();
-			return !children.isEmpty();
-		}
-
-		Object[] getChildren() {
-			initChildren();
-			return children.toArray();
-		}
-
-		private void dispose() {
-			if (element != null) {
-				elementNodes.remove(element);
-				knownElements.remove(element);
-			}
-			if (children != null) {
-				for (Iterator iterator = children.iterator(); iterator
-						.hasNext();) {
-					TreeNode child = getExistingNode(iterator.next());
-					if (child != null)
-						child.removeParent(element);
-				}
-				if (listener != null)
-					removeCollectionChangeListener(children, listener);
-				children.dispose();
-				children = null;
-			}
-			element = null;
-			parent = null;
-			if (parentSet != null) {
-				parentSet.clear();
-				parentSet = null;
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableViewerElementSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableViewerElementSet.java
deleted file mode 100644
index 2f8b197..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableViewerElementSet.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- *     Matthew Hall - bug 230267
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.AbstractObservableSet;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.StructuredViewer;
-
-/**
- * An {@link IObservableSet} of elements in a {@link StructuredViewer}.
- * Elements of the set are compared using an {@link IElementComparer} instead of
- * {@link #equals(Object)}.
- * <p>
- * This class is <i>not</i> a strict implementation the {@link IObservableSet}
- * interface. It intentionally violates the {@link Set} contract, which requires
- * the use of {@link #equals(Object)} when comparing elements. This class is
- * designed for use with {@link StructuredViewer} which uses
- * {@link IElementComparer} for element comparisons.
- * 
- * 
- * @since 1.2
- */
-public class ObservableViewerElementSet extends AbstractObservableSet {
-	private Set wrappedSet;
-	private Object elementType;
-	private IElementComparer comparer;
-
-	/**
-	 * Constructs an ObservableViewerElementSet on the given {@link Realm} which
-	 * uses the given {@link IElementComparer} to compare elements.
-	 * 
-	 * @param realm
-	 *            the realm of the constructed set.
-	 * @param elementType
-	 *            the element type of the constructed set.
-	 * @param comparer
-	 *            the {@link IElementComparer} used to compare elements.
-	 */
-	public ObservableViewerElementSet(Realm realm, Object elementType,
-			IElementComparer comparer) {
-		super(realm);
-
-		Assert.isNotNull(comparer);
-		this.wrappedSet = new ViewerElementSet(comparer);
-		this.elementType = elementType;
-		this.comparer = comparer;
-	}
-
-	protected Set getWrappedSet() {
-		return wrappedSet;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	public Iterator iterator() {
-		getterCalled();
-		final Iterator wrappedIterator = wrappedSet.iterator();
-		return new Iterator() {
-			Object last;
-
-			public boolean hasNext() {
-				getterCalled();
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				getterCalled();
-				return last = wrappedIterator.next();
-			}
-
-			public void remove() {
-				getterCalled();
-				wrappedIterator.remove();
-				fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET,
-						Collections.singleton(last)));
-			}
-		};
-	}
-
-	public boolean add(Object o) {
-		getterCalled();
-		boolean changed = wrappedSet.add(o);
-		if (changed)
-			fireSetChange(Diffs.createSetDiff(Collections.singleton(o),
-					Collections.EMPTY_SET));
-		return changed;
-	}
-
-	public boolean addAll(Collection c) {
-		getterCalled();
-		Set additions = new ViewerElementSet(comparer);
-		for (Iterator iterator = c.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (wrappedSet.add(element))
-				additions.add(element);
-		}
-		boolean changed = !additions.isEmpty();
-		if (changed)
-			fireSetChange(Diffs.createSetDiff(additions, Collections.EMPTY_SET));
-		return changed;
-	}
-
-	public boolean remove(Object o) {
-		getterCalled();
-		boolean changed = wrappedSet.remove(o);
-		if (changed)
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET,
-					Collections.singleton(o)));
-		return changed;
-	}
-
-	public boolean removeAll(Collection c) {
-		getterCalled();
-		Set removals = new ViewerElementSet(comparer);
-		for (Iterator iterator = c.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (wrappedSet.remove(element))
-				removals.add(element);
-		}
-		boolean changed = !removals.isEmpty();
-		if (changed)
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removals));
-		return changed;
-	}
-
-	public boolean retainAll(Collection c) {
-		getterCalled();
-		Set removals = new ViewerElementSet(comparer);
-		Object[] toRetain = c.toArray();
-		outer: for (Iterator iterator = wrappedSet.iterator(); iterator
-				.hasNext();) {
-			Object element = iterator.next();
-			// Cannot rely on c.contains(element) because we must compare
-			// elements using IElementComparer.
-			for (int i = 0; i < toRetain.length; i++) {
-				if (comparer.equals(element, toRetain[i]))
-					continue outer;
-			}
-			iterator.remove();
-			removals.add(element);
-		}
-		boolean changed = !removals.isEmpty();
-		if (changed)
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removals));
-		return changed;
-	}
-
-	public void clear() {
-		getterCalled();
-		if (!wrappedSet.isEmpty()) {
-			Set removals = wrappedSet;
-			wrappedSet = new ViewerElementSet(comparer);
-			fireSetChange(Diffs.createSetDiff(Collections.EMPTY_SET, removals));
-		}
-	}
-
-	/**
-	 * Returns an {@link IObservableSet} for holding viewer elements, using the
-	 * given {@link IElementComparer} for comparisons.
-	 * 
-	 * @param realm
-	 *            the realm of the returned observable
-	 * @param elementType
-	 *            the element type of the returned set
-	 * @param comparer
-	 *            the element comparer to use in element comparisons (may be
-	 *            null). If null, the returned set will compare elements
-	 *            according to the standard contract for {@link Set} interface
-	 *            contract.
-	 * @return a Set for holding viewer elements, using the given
-	 *         {@link IElementComparer} for comparisons.
-	 */
-	public static IObservableSet withComparer(Realm realm, Object elementType,
-			IElementComparer comparer) {
-		if (comparer == null)
-			return new WritableSet(realm, Collections.EMPTY_SET, elementType);
-		return new ObservableViewerElementSet(realm, elementType, comparer);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderMultipleSelectionObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderMultipleSelectionObservableList.java
deleted file mode 100644
index d067ed9..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderMultipleSelectionObservableList.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Peter Centgraf and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Peter Centgraf - initial API and implementation, bug 124683
- *     Boris Bokowski, IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.databinding.viewers;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.WritableList;
-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;
-
-/**
- * Observes multiple-selection of an {@link ISelectionProvider}.
- * 
- * @since 1.2
- */
-public class SelectionProviderMultipleSelectionObservableList extends
-		WritableList {
-
-	protected ISelectionProvider selectionProvider;
-	protected boolean handlingSelection;
-	protected boolean updating;
-	protected SelectionListener selectionListener = new SelectionListener();
-
-	class SelectionListener implements ISelectionChangedListener {
-		public void selectionChanged(SelectionChangedEvent event) {
-			if (updating) {
-				return;
-			}
-			handlingSelection = true;
-			try {
-				updateWrappedList(new ArrayList(getSelectionList(event.getSelection())));
-			} finally {
-				handlingSelection = false;
-			}
-		}
-	}
-
-	/**
-	 * Create a new observable list based on the current selection of the given
-	 * selection provider. Assumes that the selection provider provides
-	 * structured selections.
-	 * 
-	 * @param realm
-	 * @param selectionProvider
-	 * @param elementType
-	 */
-	public SelectionProviderMultipleSelectionObservableList(Realm realm,
-			ISelectionProvider selectionProvider, Object elementType) {
-		super(realm, new ArrayList(getSelectionList(selectionProvider)), elementType);
-		this.selectionProvider = selectionProvider;
-		selectionProvider.addSelectionChangedListener(selectionListener);
-	}
-
-	protected void fireListChange(ListDiff diff) {
-		if (handlingSelection) {
-			super.fireListChange(diff);
-		} else {
-			// this is a bit of a hack - we are changing the diff to match the order
-			// of elements returned by the selection provider after we've set the
-			// selection.
-			updating = true;
-			try {
-				List oldList = getSelectionList(selectionProvider);
-				selectionProvider
-						.setSelection(new StructuredSelection(wrappedList));
-				wrappedList = new ArrayList(getSelectionList(selectionProvider));
-				super.fireListChange(Diffs.computeListDiff(oldList, wrappedList));
-			} finally {
-				updating = false;
-			}
-		}
-	}
-
-	protected static List getSelectionList(ISelectionProvider selectionProvider) {
-		if (selectionProvider == null) {
-			throw new IllegalArgumentException();
-		}
-		return getSelectionList(selectionProvider.getSelection());
-	}
-
-	protected static List getSelectionList(ISelection sel) {
-		if (sel instanceof IStructuredSelection) {
-			return ((IStructuredSelection) sel).toList();
-		}
-		return Collections.EMPTY_LIST;
-	}
-
-	public synchronized void dispose() {
-		selectionProvider.removeSelectionChangedListener(selectionListener);
-		selectionProvider = null;
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderSingleSelectionObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderSingleSelectionObservableValue.java
deleted file mode 100644
index 4ecc6b5..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/SelectionProviderSingleSelectionObservableValue.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 137877
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 147515
- *     Ashley Cambrell - bug 198906
- *******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.jface.util.Util;
-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;
-
-/**
- * Observes single selection of an <code>ISelectionProvider</code>.
- *
- * @since 1.1
- */
-public class SelectionProviderSingleSelectionObservableValue extends
-		AbstractObservableValue {
-
-	private final ISelectionProvider selectionProvider;
-
-	private boolean updating = false;
-
-	private Object currentSelection;
-
-	private ISelectionChangedListener selectionChangedListener;
-
-	/**
-	 * Constructs a new instance associated with the provided
-	 * <code>selectionProvider</code>. In order to initialize itself properly
-	 * the constructor invokes {@link #doGetValue()}. This could be dangerous
-	 * for subclasses, see {@link #doGetValue()} for an explanation.
-	 *
-	 * @param realm
-	 *
-	 * @param selectionProvider
-	 * @see #doGetValue()
-	 */
-	public SelectionProviderSingleSelectionObservableValue(Realm realm,
-			ISelectionProvider selectionProvider) {
-		super(realm);
-		if (selectionProvider == null) {
-			throw new IllegalArgumentException(
-					"The 'selectionProvider' parameter is null."); //$NON-NLS-1$
-		}
-
-		this.selectionProvider = selectionProvider;
-		this.currentSelection = doGetValue();
-
-		selectionChangedListener = new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				if (!updating) {
-					Object oldSelection = currentSelection;
-					currentSelection = doGetValue();
-					fireValueChange(Diffs.createValueDiff(oldSelection,
-							currentSelection));
-				}
-			}
-		};
-		selectionProvider.addSelectionChangedListener(selectionChangedListener);
-	}
-
-	/**
-	 * Sets the selection to the provided <code>value</code>. Value change
-	 * events are fired after selection is set in the selection provider.
-	 *
-	 * @param value
-	 *            object to set as selected, <code>null</code> if wanting to
-	 *            remove selection
-	 */
-	public void doSetValue(final Object value) {
-		try {
-			updating = true;
-
-			Object oldSelection = currentSelection;
-			selectionProvider
-					.setSelection(value == null ? StructuredSelection.EMPTY
-							: new StructuredSelection(value));
-			currentSelection = doGetValue();
-			if (!Util.equals(oldSelection, currentSelection)) {
-				fireValueChange(Diffs.createValueDiff(oldSelection,
-						currentSelection));
-			}
-		} finally {
-			updating = false;
-		}
-	}
-
-	/**
-	 * Retrieves the current selection.
-	 * <p>
-	 * If a subclass overrides this method it must not depend upon the subclass
-	 * to have been fully initialized before this method is invoked.
-	 * <code>doGetValue()</code> is invoked by the
-	 * {@link #SelectionProviderSingleSelectionObservableValue(Realm, ISelectionProvider) constructor}
-	 * which means the subclass's constructor will not have fully executed
-	 * before this method is invoked.
-	 * </p>
-	 *
-	 * @return selection will be an instance of
-	 *         <code>IStructuredSelection</code> if a selection exists,
-	 *         <code>null</code> if no selection
-	 * @see #SelectionProviderSingleSelectionObservableValue(Realm,
-	 *      ISelectionProvider)
-	 */
-	protected Object doGetValue() {
-		ISelection selection = selectionProvider.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection sel = (IStructuredSelection) selection;
-			return sel.getFirstElement();
-		}
-
-		return null;
-	}
-
-	public Object getValueType() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#dispose()
-	 */
-	public synchronized void dispose() {
-		selectionProvider
-				.removeSelectionChangedListener(selectionChangedListener);
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TableViewerUpdater.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TableViewerUpdater.java
deleted file mode 100644
index ebc08f5..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TableViewerUpdater.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- *     Matthew Hall - bug 226765
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.jface.viewers.AbstractTableViewer;
-
-/**
- * NON-API - A {@link ViewerUpdater} that updates {@link AbstractTableViewer}
- * instances.
- * 
- * @since 1.2
- */
-class TableViewerUpdater extends ViewerUpdater {
-	private AbstractTableViewer viewer;
-
-	TableViewerUpdater(AbstractTableViewer viewer) {
-		super(viewer);
-		this.viewer = viewer;
-	}
-
-	public void insert(Object element, int position) {
-		viewer.insert(element, position);
-	}
-
-	public void remove(Object element, int position) {
-		viewer.remove(element);
-	}
-
-	public void replace(Object oldElement, Object newElement, int position) {
-		if (viewer.getComparator() == null && viewer.getFilters().length == 0)
-			viewer.replace(newElement, position);
-		else {
-			super.replace(oldElement, newElement, position);
-		}
-	}
-
-	public void add(Object[] elements) {
-		viewer.add(elements);
-	}
-
-	public void remove(Object[] elements) {
-		viewer.remove(elements);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TreeViewerUpdater.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TreeViewerUpdater.java
deleted file mode 100644
index f206fdf..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TreeViewerUpdater.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 207858)
- *     Matthew Hall - bug 226765
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewer;
-
-/**
- * NON-API - An interface for sending updates to an {@link AbstractTreeViewer}.
- * 
- * @since 1.2
- */
-public class TreeViewerUpdater {
-	private final AbstractTreeViewer viewer;
-	private final TreeViewer treeViewer;
-
-	/**
-	 * Constructs an ITreeViewerUpdater for updating the given viewer.
-	 * 
-	 * @param viewer
-	 *            the viewer that will be updated
-	 */
-	public TreeViewerUpdater(AbstractTreeViewer viewer) {
-		this.viewer = viewer;
-		if (viewer instanceof TreeViewer)
-			treeViewer = (TreeViewer) viewer;
-		else
-			treeViewer = null;
-	}
-
-	/**
-	 * Insert the element into the viewer as a child of the specified parent
-	 * element, at the specified position.
-	 * 
-	 * @param parent
-	 *            the parent of the element being inserted
-	 * @param element
-	 *            the element to insert
-	 * @param position
-	 *            the position where the element is inserted
-	 */
-	public void insert(Object parent, Object element, int position) {
-		viewer.insert(parent, element, position);
-	}
-
-	/**
-	 * Replaces the specified element whenever it appears as a child of the
-	 * specified parent element, at the given position with the new element.
-	 * 
-	 * @param parent
-	 *            the parent of the element being replaced
-	 * @param oldElement
-	 *            the element being replaced
-	 * @param newElement
-	 *            the element that replaces <code>oldElement</code>
-	 * @param position
-	 *            the position of the element being replaced.
-	 */
-	public void replace(Object parent, Object oldElement, Object newElement,
-			int position) {
-		if (treeViewer != null && viewer.getComparator() == null
-				&& viewer.getFilters().length == 0) {
-			treeViewer.replace(parent, position, newElement);
-		} else {
-			remove(parent, oldElement, position);
-			insert(parent, newElement, position);
-		}
-	}
-
-	/**
-	 * Moves the specified element from the specified old position to the
-	 * specified new position, whenever it appears as a child of the specified
-	 * parent element. No action is taken if the viewer has a sorter or
-	 * filter(s).
-	 * 
-	 * @param parent
-	 *            the parent of the element being moved
-	 * @param element
-	 *            the element being moved
-	 * @param oldPosition
-	 *            the position of the element before it is moved
-	 * @param newPosition
-	 *            the position of the element after it is moved
-	 */
-	public void move(Object parent, Object element, int oldPosition,
-			int newPosition) {
-		if (viewer.getComparator() == null && viewer.getFilters().length == 0) {
-
-			ITreeSelection selection = (ITreeSelection) viewer.getSelection();
-
-			remove(parent, element, oldPosition);
-			insert(parent, element, newPosition);
-
-			// Preserve selection
-			if (!selection.isEmpty()) {
-				// If the moved element is selected (or an ancestor of a
-				// selected element), restore the selection.
-				IElementComparer comparer = viewer.getComparer();
-				TreePath[] paths = selection.getPaths();
-				outer: for (int i = 0; i < paths.length; i++) {
-					TreePath path = paths[i];
-					for (int j = 0; j < path.getSegmentCount(); j++) {
-						Object pathElement = path.getSegment(j);
-						if (comparer == null ? Util
-								.equals(element, pathElement) : comparer
-								.equals(element, pathElement)) {
-							viewer.setSelection(selection);
-							break outer;
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Removes the element from the from whenever it appears as a child of the
-	 * specified parent element, at the specified position.
-	 * 
-	 * @param parent
-	 *            the parent of the element being removed
-	 * @param element
-	 *            the element to remove
-	 * @param position
-	 *            the position where the element is located
-	 */
-	public void remove(Object parent, Object element, int position) {
-		if (treeViewer != null && viewer.getComparator() == null
-				&& viewer.getFilters().length == 0) {
-			// Only TreeViewer has a remove-by-index method.  
-			treeViewer.remove(parent, position);
-		} else {
-			viewer.remove(parent, new Object[] { element });
-		}
-	}
-
-	/**
-	 * Add the elements into the viewer as children of the specified parent
-	 * element.
-	 * 
-	 * @param parent
-	 *            the parent of the element being inserted
-	 * @param elements
-	 *            the elements to insert
-	 */
-	public void add(Object parent, Object[] elements) {
-		viewer.add(parent, elements);
-	}
-
-	/**
-	 * Remove the elements from the viewer wherever they appear as children of
-	 * the specified parent element.
-	 * 
-	 * @param parent
-	 *            the parent of the elements being removed
-	 * @param elements
-	 *            the elements to remove
-	 */
-	public void remove(Object parent, Object[] elements) {
-		viewer.remove(parent, elements);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementMap.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementMap.java
deleted file mode 100644
index 6a8a03b..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementMap.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- *     Matthew Hall - bug 228125
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import java.lang.reflect.Array;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.StructuredViewer;
-
-/**
- * A {@link Map} whose keys are elements in a {@link StructuredViewer}. The
- * keys in the map are compared using an {@link IElementComparer} instead of
- * {@link #equals(Object)}.
- * <p>
- * This class is <i>not</i> a strict implementation the {@link Map} interface.
- * It intentionally violates the {@link Map} contract, which requires the use of
- * {@link #equals(Object)} when comparing keys. This class is designed for use
- * with {@link StructuredViewer} which uses {@link IElementComparer} for element
- * comparisons.
- * 
- * @since 1.2
- */
-public class ViewerElementMap implements Map { 
-	private Map wrappedMap;
-	private IElementComparer comparer;
-
-	/**
-	 * Constructs a ViewerElementMap using the given {@link IElementComparer}.
-	 * 
-	 * @param comparer
-	 *            the {@link IElementComparer} used for comparing keys.
-	 */
-	public ViewerElementMap(IElementComparer comparer) {
-		Assert.isNotNull(comparer);
-		this.wrappedMap = new HashMap();
-		this.comparer = comparer;
-	}
-
-	/**
-	 * Constructs a ViewerElementMap containing all the entries in the specified
-	 * map.
-	 * 
-	 * @param map
-	 *            the map whose entries are to be added to this map.
-	 * @param comparer
-	 *            the {@link IElementComparer} used for comparing keys.
-	 */
-	public ViewerElementMap(Map map, IElementComparer comparer) {
-		this(comparer);
-		Assert.isNotNull(map);
-		putAll(map);
-	}
-
-	public void clear() {
-		wrappedMap.clear();
-	}
-
-	public boolean containsKey(Object key) {
-		return wrappedMap.containsKey(new ViewerElementWrapper(key, comparer));
-	}
-
-	public boolean containsValue(Object value) {
-		return wrappedMap.containsValue(value);
-	}
-
-	public Set entrySet() {
-		final Set wrappedEntrySet = wrappedMap.entrySet();
-		return new Set() {
-			public boolean add(Object o) {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean addAll(Collection c) {
-				throw new UnsupportedOperationException();
-			}
-
-			public void clear() {
-				wrappedEntrySet.clear();
-			}
-
-			public boolean contains(Object o) {
-				for (Iterator iterator = iterator(); iterator.hasNext();)
-					if (iterator.next().equals(o))
-						return true;
-				return false;
-			}
-
-			public boolean containsAll(Collection c) {
-				for (Iterator iterator = c.iterator(); iterator.hasNext();)
-					if (!contains(iterator.next()))
-						return false;
-				return true;
-			}
-
-			public boolean isEmpty() {
-				return wrappedEntrySet.isEmpty();
-			}
-
-			public Iterator iterator() {
-				final Iterator wrappedIterator = wrappedEntrySet.iterator();
-				return new Iterator() {
-					public boolean hasNext() {
-						return wrappedIterator.hasNext();
-					}
-
-					public Object next() {
-						final Map.Entry wrappedEntry = (Map.Entry) wrappedIterator
-								.next();
-						return new Map.Entry() {
-							public Object getKey() {
-								return ((ViewerElementWrapper) wrappedEntry.getKey())
-										.unwrap();
-							}
-
-							public Object getValue() {
-								return wrappedEntry.getValue();
-							}
-
-							public Object setValue(Object value) {
-								return wrappedEntry.setValue(value);
-							}
-
-							public boolean equals(Object obj) {
-								if (obj == this)
-									return true;
-								if (obj == null || !(obj instanceof Map.Entry))
-									return false;
-								Map.Entry that = (Map.Entry) obj;
-								return comparer.equals(this.getKey(), that
-										.getKey())
-										&& Util.equals(this.getValue(), that
-												.getValue());
-							}
-
-							public int hashCode() {
-								return wrappedEntry.hashCode();
-							}
-						};
-					}
-
-					public void remove() {
-						wrappedIterator.remove();
-					}
-				};
-			}
-
-			public boolean remove(Object o) {
-				final Map.Entry unwrappedEntry = (Map.Entry) o;
-				final ViewerElementWrapper wrappedKey = new ViewerElementWrapper(
-						unwrappedEntry.getKey(), comparer);
-				Map.Entry wrappedEntry = new Map.Entry() {
-					public Object getKey() {
-						return wrappedKey;
-					}
-
-					public Object getValue() {
-						return unwrappedEntry.getValue();
-					}
-
-					public Object setValue(Object value) {
-						throw new UnsupportedOperationException();
-					}
-
-					public boolean equals(Object obj) {
-						if (obj == this)
-							return true;
-						if (obj == null || !(obj instanceof Map.Entry))
-							return false;
-						Map.Entry that = (Map.Entry) obj;
-						return Util.equals(wrappedKey, that.getKey())
-								&& Util
-										.equals(this.getValue(), that
-												.getValue());
-					}
-
-					public int hashCode() {
-						return wrappedKey.hashCode()
-								^ (getValue() == null ? 0 : getValue()
-										.hashCode());
-					}
-				};
-				return wrappedEntrySet.remove(wrappedEntry);
-			}
-
-			public boolean removeAll(Collection c) {
-				boolean changed = false;
-				for (Iterator iterator = c.iterator(); iterator.hasNext();)
-					changed |= remove(iterator.next());
-				return changed;
-			}
-
-			public boolean retainAll(Collection c) {
-				boolean changed = false;
-				Object[] toRetain = c.toArray();
-				outer: for (Iterator iterator = iterator(); iterator.hasNext();) {
-					Object entry = iterator.next();
-					for (int i = 0; i < toRetain.length; i++)
-						if (entry.equals(toRetain[i]))
-							continue outer;
-					iterator.remove();
-					changed = true;
-				}
-				return changed;
-			}
-
-			public int size() {
-				return wrappedEntrySet.size();
-			}
-
-			public Object[] toArray() {
-				return toArray(new Object[size()]);
-			}
-
-			public Object[] toArray(Object[] a) {
-				int size = size();
-				if (a.length < size) {
-					a = (Object[]) Array.newInstance(a.getClass()
-							.getComponentType(), size);
-				}
-				int i = 0;
-				for (Iterator iterator = iterator(); iterator.hasNext();) {
-					a[i] = iterator.next();
-					i++;
-				}
-				return a;
-			}
-
-			public boolean equals(Object obj) {
-				if (obj == this)
-					return true;
-				if (obj == null || !(obj instanceof Set))
-					return false;
-				Set that = (Set) obj;
-				return this.size() == that.size() && containsAll(that);
-			}
-
-			public int hashCode() {
-				return wrappedEntrySet.hashCode();
-			}
-		};
-	}
-
-	public Object get(Object key) {
-		return wrappedMap.get(new ViewerElementWrapper(key, comparer));
-	}
-
-	public boolean isEmpty() {
-		return wrappedMap.isEmpty();
-	}
-
-	public Set keySet() {
-		final Set wrappedKeySet = wrappedMap.keySet();
-		return new Set() {
-			public boolean add(Object o) {
-				throw new UnsupportedOperationException();
-			}
-
-			public boolean addAll(Collection c) {
-				throw new UnsupportedOperationException();
-			}
-
-			public void clear() {
-				wrappedKeySet.clear();
-			}
-
-			public boolean contains(Object o) {
-				return wrappedKeySet.contains(new ViewerElementWrapper(o, comparer));
-			}
-
-			public boolean containsAll(Collection c) {
-				for (Iterator iterator = c.iterator(); iterator.hasNext();)
-					if (!wrappedKeySet.contains(new ViewerElementWrapper(iterator.next(), comparer)))
-						return false;
-				return true;
-			}
-
-			public boolean isEmpty() {
-				return wrappedKeySet.isEmpty();
-			}
-
-			public Iterator iterator() {
-				final Iterator wrappedIterator = wrappedKeySet.iterator();
-				return new Iterator() {
-					public boolean hasNext() {
-						return wrappedIterator.hasNext();
-					}
-
-					public Object next() {
-						return ((ViewerElementWrapper) wrappedIterator.next()).unwrap();
-					}
-
-					public void remove() {
-						wrappedIterator.remove();
-					}
-				};
-			}
-
-			public boolean remove(Object o) {
-				return wrappedKeySet.remove(new ViewerElementWrapper(o, comparer));
-			}
-
-			public boolean removeAll(Collection c) {
-				boolean changed = false;
-				for (Iterator iterator = c.iterator(); iterator.hasNext();)
-					changed |= wrappedKeySet
-							.remove(new ViewerElementWrapper(iterator.next(), comparer));
-				return changed;
-			}
-
-			public boolean retainAll(Collection c) {
-				boolean changed = false;
-				Object[] toRetain = c.toArray();
-				outer: for (Iterator iterator = iterator(); iterator.hasNext();) {
-					Object element = iterator.next();
-					for (int i = 0; i < toRetain.length; i++)
-						if (comparer.equals(element, toRetain[i]))
-							continue outer;
-					// element not contained in collection, remove.
-					remove(element);
-					changed = true;
-				}
-				return changed;
-			}
-
-			public int size() {
-				return wrappedKeySet.size();
-			}
-
-			public Object[] toArray() {
-				return toArray(new Object[wrappedKeySet.size()]);
-			}
-
-			public Object[] toArray(Object[] a) {
-				int size = wrappedKeySet.size();
-				ViewerElementWrapper[] wrappedArray = (ViewerElementWrapper[]) wrappedKeySet
-						.toArray(new ViewerElementWrapper[size]);
-				Object[] result = a;
-				if (a.length < size) {
-					result = (Object[]) Array.newInstance(a.getClass()
-							.getComponentType(), size);
-				}
-				for (int i = 0; i < size; i++)
-					result[i] = wrappedArray[i].unwrap();
-				return result;
-			}
-
-			public boolean equals(Object obj) {
-				if (obj == this)
-					return true;
-				if (obj == null || !(obj instanceof Set))
-					return false;
-				Set that = (Set) obj;
-				return this.size() == that.size() && containsAll(that);
-			}
-
-			public int hashCode() {
-				return wrappedKeySet.hashCode();
-			}
-		};
-	}
-
-	public Object put(Object key, Object value) {
-		return wrappedMap.put(new ViewerElementWrapper(key, comparer), value);
-	}
-
-	public void putAll(Map other) {
-		for (Iterator iterator = other.entrySet().iterator(); iterator
-				.hasNext();) {
-			Map.Entry entry = (Map.Entry) iterator.next();
-			wrappedMap.put(new ViewerElementWrapper(entry.getKey(), comparer), entry.getValue());
-		}
-	}
-
-	public Object remove(Object key) {
-		return wrappedMap.remove(new ViewerElementWrapper(key, comparer));
-	}
-
-	public int size() {
-		return wrappedMap.size();
-	}
-
-	public Collection values() {
-		return wrappedMap.values();
-	}
-
-	public boolean equals(Object obj) {
-		if (obj == this)
-			return true;
-		if (obj == null || !(obj instanceof Map))
-			return false;
-		Map that = (Map) obj;
-		return this.entrySet().equals(that.entrySet());
-	}
-
-	public int hashCode() {
-		return wrappedMap.hashCode();
-	}
-
-	/**
-	 * Returns a Map for mapping viewer elements as keys to values, using the
-	 * given {@link IElementComparer} for key comparisons.
-	 * 
-	 * @param comparer
-	 *            the element comparer to use in key comparisons. If null, the
-	 *            returned map will compare keys according to the standard
-	 *            contract for {@link Map} interface contract.
-	 * @return a Map for mapping viewer elements as keys to values, using the
-	 *         given {@link IElementComparer} for key comparisons.
-	 */
-	public static Map withComparer(IElementComparer comparer) {
-		if (comparer == null)
-			return new HashMap();
-		return new ViewerElementMap(comparer);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementSet.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementSet.java
deleted file mode 100644
index b9a0b1e..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementSet.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- *     Matthew Hall - bug 124684
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import java.lang.reflect.Array;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.StructuredViewer;
-
-/**
- * A {@link Set} of elements in a {@link StructuredViewer}. Elements of the set
- * are compared using an {@link IElementComparer} instead of
- * {@link #equals(Object)}.
- * <p>
- * This class is <i>not</i> a strict implementation the {@link Set} interface.
- * It intentionally violates the {@link Set} contract, which requires the use of
- * {@link #equals(Object)} when comparing elements. This class is designed for
- * use with {@link StructuredViewer} which uses {@link IElementComparer} for
- * element comparisons.
- * 
- * @since 1.2
- */
-public class ViewerElementSet implements Set {
-	private final Set wrappedSet;
-	private final IElementComparer comparer;
-
-	/**
-	 * Constructs a ViewerElementSet using the given {@link IElementComparer}.
-	 * 
-	 * @param comparer
-	 *            the {@link IElementComparer} used for comparing elements.
-	 */
-	public ViewerElementSet(IElementComparer comparer) {
-		Assert.isNotNull(comparer);
-		this.wrappedSet = new HashSet();
-		this.comparer = comparer;
-	}
-
-	/**
-	 * Constructs a ViewerElementSet containing all the elements in the
-	 * specified collection.
-	 * 
-	 * @param collection
-	 *            the collection whose elements are to be added to this set.
-	 * @param comparer
-	 *            the {@link IElementComparer} used for comparing elements.
-	 */
-	public ViewerElementSet(Collection collection, IElementComparer comparer) {
-		this(comparer);
-		addAll(collection);
-	}
-
-	public boolean add(Object o) {
-		return wrappedSet.add(new ViewerElementWrapper(o, comparer));
-	}
-
-	public boolean addAll(Collection c) {
-		boolean changed = false;
-		for (Iterator iterator = c.iterator(); iterator.hasNext();)
-			changed |= wrappedSet.add(new ViewerElementWrapper(iterator.next(),
-					comparer));
-		return changed;
-	}
-
-	public void clear() {
-		wrappedSet.clear();
-	}
-
-	public boolean contains(Object o) {
-		return wrappedSet.contains(new ViewerElementWrapper(o, comparer));
-	}
-
-	public boolean containsAll(Collection c) {
-		for (Iterator iterator = c.iterator(); iterator.hasNext();)
-			if (!wrappedSet.contains(new ViewerElementWrapper(iterator.next(),
-					comparer)))
-				return false;
-		return true;
-	}
-
-	public boolean isEmpty() {
-		return wrappedSet.isEmpty();
-	}
-
-	public Iterator iterator() {
-		final Iterator wrappedIterator = wrappedSet.iterator();
-		return new Iterator() {
-			public boolean hasNext() {
-				return wrappedIterator.hasNext();
-			}
-
-			public Object next() {
-				return ((ViewerElementWrapper) wrappedIterator.next()).unwrap();
-			}
-
-			public void remove() {
-				wrappedIterator.remove();
-			}
-		};
-	}
-
-	public boolean remove(Object o) {
-		return wrappedSet.remove(new ViewerElementWrapper(o, comparer));
-	}
-
-	public boolean removeAll(Collection c) {
-		boolean changed = false;
-		for (Iterator iterator = c.iterator(); iterator.hasNext();)
-			changed |= remove(iterator.next());
-		return changed;
-	}
-
-	public boolean retainAll(Collection c) {
-		// Have to do this the slow way to ensure correct comparisons. i.e.
-		// cannot delegate to c.contains(it) since we can't be sure will
-		// compare elements the way we want.
-		boolean changed = false;
-		Object[] retainAll = c.toArray();
-		outer: for (Iterator iterator = iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			for (int i = 0; i < retainAll.length; i++) {
-				if (comparer.equals(element, retainAll[i])) {
-					continue outer;
-				}
-			}
-			iterator.remove();
-			changed = true;
-		}
-		return changed;
-	}
-
-	public int size() {
-		return wrappedSet.size();
-	}
-
-	public Object[] toArray() {
-		return toArray(new Object[wrappedSet.size()]);
-	}
-
-	public Object[] toArray(Object[] a) {
-		int size = wrappedSet.size();
-		ViewerElementWrapper[] wrappedArray = (ViewerElementWrapper[]) wrappedSet
-				.toArray(new ViewerElementWrapper[size]);
-		Object[] result = a;
-		if (a.length < size) {
-			result = (Object[]) Array.newInstance(a.getClass()
-					.getComponentType(), size);
-		}
-		for (int i = 0; i < size; i++)
-			result[i] = wrappedArray[i].unwrap();
-		return result;
-	}
-
-	public boolean equals(Object obj) {
-		if (obj == this)
-			return true;
-		if (!(obj instanceof Set))
-			return false;
-		Set that = (Set) obj;
-		return size() == that.size() && containsAll(that);
-	}
-
-	public int hashCode() {
-		int hash = 0;
-		for (Iterator iterator = iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			hash += element == null ? 0 : element.hashCode();
-		}
-		return hash;
-	}
-
-	/**
-	 * Returns a Set for holding viewer elements, using the given
-	 * {@link IElementComparer} for comparisons.
-	 * 
-	 * @param comparer
-	 *            the element comparer to use in element comparisons. If null,
-	 *            the returned set will compare elements according to the
-	 *            standard contract for {@link Set} interface contract.
-	 * @return a Set for holding viewer elements, using the given
-	 *         {@link IElementComparer} for comparisons.
-	 */
-	public static Set withComparer(IElementComparer comparer) {
-		if (comparer == null)
-			return new HashSet();
-		return new ViewerElementSet(comparer);
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementWrapper.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementWrapper.java
deleted file mode 100644
index c2645ae..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerElementWrapper.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.jface.viewers.IElementComparer;
-
-/**
- * A wrapper class for viewer elements, which uses an {@link IElementComparer}
- * for computing {@link Object#equals(Object) equality} and
- * {@link Object#hashCode() hashes}.
- * 
- * @since 1.2
- */
-public class ViewerElementWrapper {
-	private final Object element;
-	private final IElementComparer comparer;
-
-	/**
-	 * Constructs a ViewerElementWrapper wrapping the given element
-	 * 
-	 * @param element
-	 *            the element being wrapped
-	 * @param comparer
-	 *            the comparer to use for computing equality and hash codes.
-	 */
-	public ViewerElementWrapper(Object element, IElementComparer comparer) {
-		if (comparer == null)
-			throw new NullPointerException();
-		this.element = element;
-		this.comparer = comparer;
-	}
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof ViewerElementWrapper)) {
-			return false;
-		}
-		return comparer.equals(element, ((ViewerElementWrapper) obj).element);
-	}
-
-	public int hashCode() {
-		return comparer.hashCode(element);
-	}
-
-	Object unwrap() {
-		return element;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerInputObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerInputObservableValue.java
deleted file mode 100644
index 1a9ee02..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerInputObservableValue.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 206839)
- *******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Observes the input of a <code>Viewer</code>.
- * <p>
- * This observer is blind to changes in the viewer's input unless its
- * {@link #setValue(Object)} method is called directly.
- * 
- * @since 1.2
- */
-public class ViewerInputObservableValue extends AbstractObservableValue {
-
-  private final Viewer viewer;
-
-  /**
-   * Constructs a new instance associated with the provided <code>viewer</code>.
-   * 
-   * @param realm
-   * @param viewer
-   */
-  public ViewerInputObservableValue( Realm realm, Viewer viewer ) {
-    super( realm );
-    if ( viewer == null ) {
-      throw new IllegalArgumentException( "The 'viewer' parameter is null." ); //$NON-NLS-1$
-    }
-
-    this.viewer = viewer;
-  }
-
-  /**
-   * Sets the input to the provided <code>value</code>. Value change events are
-   * fired after input is set in the viewer.
-   * 
-   * @param value object to set as input
-   */
-  protected void doSetValue( final Object value ) {
-    Object oldValue = doGetValue();
-    viewer.setInput( value );
-    if ( !Util.equals( oldValue, value ) ) {
-      fireValueChange( Diffs.createValueDiff( oldValue, value ) );
-    }
-  }
-
-  /**
-   * Retrieves the current input.
-   * 
-   * @return the current input
-   */
-  protected Object doGetValue() {
-    return viewer.getInput();
-  }
-
-  public Object getValueType() {
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerMultipleSelectionObservableList.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerMultipleSelectionObservableList.java
deleted file mode 100644
index 2dafff2..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerMultipleSelectionObservableList.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 137877
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 147515
- *     Ashley Cambrell - bug 198906
- *******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.viewers.IViewerObservableList;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Observes single selection of a <code>Viewer</code>.
- * 
- * @since 1.2
- */
-public class ViewerMultipleSelectionObservableList extends
-		SelectionProviderMultipleSelectionObservableList implements
-		IViewerObservableList {
-
-	private Viewer viewer;
-
-	/**
-	 * @param realm
-	 * @param viewer
-	 * @param elementType
-	 */
-	public ViewerMultipleSelectionObservableList(Realm realm, Viewer viewer,
-			Object elementType) {
-		super(realm, viewer, elementType);
-		this.viewer = viewer;
-	}
-
-	public Viewer getViewer() {
-		return viewer;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerSingleSelectionObservableValue.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerSingleSelectionObservableValue.java
deleted file mode 100644
index 648e369..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerSingleSelectionObservableValue.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 137877
- *     Brad Reynolds - bug 164653
- *     Brad Reynolds - bug 147515
- *     Ashley Cambrell - bug 198906
- *******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.viewers.IViewerObservableValue;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Observes single selection of a <code>Viewer</code>.
- * 
- * @since 1.2
- */
-public class ViewerSingleSelectionObservableValue extends
-		SelectionProviderSingleSelectionObservableValue implements
-		IViewerObservableValue {
-
-	private Viewer viewer;
-
-	/**
-	 * @param realm
-	 * @param viewer
-	 */
-	public ViewerSingleSelectionObservableValue(Realm realm, Viewer viewer) {
-		super(realm, viewer);
-		this.viewer = viewer;
-	}
-
-	public Viewer getViewer() {
-		return viewer;
-	}
-}
diff --git a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerUpdater.java b/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerUpdater.java
deleted file mode 100644
index 0977ae2..0000000
--- a/bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ViewerUpdater.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 226765)
- ******************************************************************************/
-
-package org.eclipse.jface.internal.databinding.viewers;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-
-/**
- * NON-API - An interface for updating a viewer's elements.
- * 
- * @since 1.2
- */
-public abstract class ViewerUpdater {
-	private final StructuredViewer viewer;
-
-	/**
-	 * Constructs a ViewerUpdater for updating the specified viewer.
-	 * 
-	 * @param viewer
-	 *            the viewer which will be updated through this instance.
-	 */
-	protected ViewerUpdater(StructuredViewer viewer) {
-		this.viewer = viewer;
-	}
-
-	/**
-	 * Insert the element into the viewer at the specified position.
-	 * 
-	 * @param element
-	 *            the element to add
-	 * @param position
-	 *            the position of the element
-	 */
-	public abstract void insert(Object element, int position);
-
-	/**
-	 * Remove the element from the viewer
-	 * 
-	 * @param element
-	 *            the element to remove
-	 * @param position
-	 *            the position of the element
-	 */
-	public abstract void remove(Object element, int position);
-
-	/**
-	 * Replace the specified element at the given position with the new element.
-	 * 
-	 * @param oldElement
-	 *            the element being replaced
-	 * @param newElement
-	 *            the element that replaces <code>oldElement</code>
-	 * @param position
-	 *            the position of the element being replaced.
-	 */
-	public void replace(Object oldElement, Object newElement, int position) {
-		remove(oldElement, position);
-		insert(newElement, position);
-	}
-
-	/**
-	 * Moves the specified element from the specified old position to the
-	 * specified new position. No action is taken if the viewer has a sorter or
-	 * filter(s).
-	 * 
-	 * @param element
-	 *            the element being moved
-	 * @param oldPosition
-	 *            the position of the element before it is moved
-	 * @param newPosition
-	 *            the position of the element after it is moved
-	 */
-	public void move(Object element, int oldPosition, int newPosition) {
-		if (viewer.getComparator() == null && viewer.getFilters().length == 0) {
-			IStructuredSelection selection = (IStructuredSelection) viewer
-					.getSelection();
-
-			remove(element, oldPosition);
-			insert(element, newPosition);
-
-			// Preserve selection
-			if (!selection.isEmpty()) {
-				IElementComparer comparer = viewer.getComparer();
-				Object[] selectedElements = selection.toArray();
-				for (int i = 0; i < selectedElements.length; i++) {
-					if (comparer == null ? Util.equals(element,
-							selectedElements[i]) : comparer.equals(element,
-							selectedElements[i])) {
-						viewer.setSelection(selection);
-						break;
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Adds the elements to the viewer.
-	 * 
-	 * @param elements
-	 *            the elements to add
-	 */
-	public abstract void add(Object[] elements);
-
-	/**
-	 * Removes the elements from the viewer
-	 * 
-	 * @param elements
-	 *            the elements to remove
-	 */
-	public abstract void remove(Object[] elements);
-}
diff --git a/bundles/org.eclipse.ui.browser/.classpath b/bundles/org.eclipse.ui.browser/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.browser/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.browser/.cvsignore b/bundles/org.eclipse.ui.browser/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.ui.browser/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/.options b/bundles/org.eclipse.ui.browser/.options
deleted file mode 100644
index 3481178..0000000
--- a/bundles/org.eclipse.ui.browser/.options
+++ /dev/null
@@ -1,4 +0,0 @@
-# Debugging options for the org.eclipse.ui.browser plugin.
-
-# Turn on debugging for the org.eclipse.ui.browser plugin.
-org.eclipse.ui.browser/debug=false
diff --git a/bundles/org.eclipse.ui.browser/.project b/bundles/org.eclipse.ui.browser/.project
deleted file mode 100644
index 417d64a..0000000
--- a/bundles/org.eclipse.ui.browser/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.browser</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.ui.browser/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 849eb8b..0000000
--- a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Mar 31 17:23:30 EST 2005
-eclipse.preferences.version=1
-encoding//src/org/eclipse/ui/internal/browser/Messages.properties=8859_1
diff --git a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 786358a..0000000
--- a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,24 +0,0 @@
-#Tue May 09 14:44:18 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9571ac6..0000000
--- a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Apr 18 11:27:52 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
diff --git a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF
deleted file mode 100644
index 9c9976c..0000000
--- a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.browser; singleton:=true
-Bundle-Version: 3.2.201.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
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.ui.browser/about.html b/bundles/org.eclipse.ui.browser/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.browser/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/build.properties b/bundles/org.eclipse.ui.browser/build.properties
deleted file mode 100644
index f301c6e..0000000
--- a/bundles/org.eclipse.ui.browser/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = icons/,\
-               .options,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               .,\
-               META-INF/
-src.includes = about.html,\
-               schema/
-source.. = src/
-output.. = bin/
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_backward.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_backward.gif
deleted file mode 100644
index 740e8ca..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_backward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_forward.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_forward.gif
deleted file mode 100644
index 1956789..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_forward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_go.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_go.gif
deleted file mode 100644
index d6b3bdc..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_go.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_home.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_home.gif
deleted file mode 100644
index 77efb69..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_home.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_print.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_print.gif
deleted file mode 100644
index 0c213c3..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_print.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_refresh.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_refresh.gif
deleted file mode 100644
index 3ca04d0..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_stop.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_stop.gif
deleted file mode 100644
index 1543a11..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_stop.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_backward.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_backward.gif
deleted file mode 100644
index 82b0e87..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_backward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_forward.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_forward.gif
deleted file mode 100644
index 3f3e5eb..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_forward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_go.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_go.gif
deleted file mode 100644
index 6df73de..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_go.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_home.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_home.gif
deleted file mode 100644
index 4d5d56e..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_home.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_print.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_print.gif
deleted file mode 100644
index 5150ba0..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_print.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_refresh.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_refresh.gif
deleted file mode 100644
index b248482..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_stop.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_stop.gif
deleted file mode 100644
index 4345d57..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_stop.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/synced.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/synced.gif
deleted file mode 100644
index 4f6e43a..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_backward.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_backward.gif
deleted file mode 100644
index 740e8ca..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_backward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_forward.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_forward.gif
deleted file mode 100644
index 1956789..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_forward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_go.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_go.gif
deleted file mode 100644
index d6b3bdc..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_go.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_home.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_home.gif
deleted file mode 100644
index 77efb69..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_home.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_print.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_print.gif
deleted file mode 100644
index 0c213c3..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_print.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_refresh.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_refresh.gif
deleted file mode 100644
index 3ca04d0..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_stop.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_stop.gif
deleted file mode 100644
index 1543a11..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_stop.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/synced.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/synced.gif
deleted file mode 100644
index 870934b..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/1.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/1.gif
deleted file mode 100644
index c7f06ad..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/10.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/10.gif
deleted file mode 100644
index 6c5e636..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/10.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/11.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/11.gif
deleted file mode 100644
index fcfd068..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/11.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/12.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/12.gif
deleted file mode 100644
index 354d703..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/12.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/13.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/13.gif
deleted file mode 100644
index b107a73..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/13.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/2.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/2.gif
deleted file mode 100644
index 5b4d065..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/3.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/3.gif
deleted file mode 100644
index 040e21b..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/4.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/4.gif
deleted file mode 100644
index 554a737..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/5.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/5.gif
deleted file mode 100644
index a929896..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/6.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/6.gif
deleted file mode 100644
index 402849d..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/7.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/7.gif
deleted file mode 100644
index 06c2ff3..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/7.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/8.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/8.gif
deleted file mode 100644
index 0aa9c48..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/8.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/9.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/9.gif
deleted file mode 100644
index 658fc65..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/9.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/external_browser.gif b/bundles/org.eclipse.ui.browser/icons/obj16/external_browser.gif
deleted file mode 100644
index de1f948..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/external_browser.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/internal_browser.gif b/bundles/org.eclipse.ui.browser/icons/obj16/internal_browser.gif
deleted file mode 100644
index 229c391..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/internal_browser.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/plugin.properties b/bundles/org.eclipse.ui.browser/plugin.properties
deleted file mode 100644
index 8b21ac5..0000000
--- a/bundles/org.eclipse.ui.browser/plugin.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name=Browser Support
-Plugin.providerName=Eclipse.org
-
-browser_extension_point_name=Web Browser
-
-viewWebBrowserTitle=Internal Web Browser
-viewWebBrowserSupportTitle= Web Browser
-preferenceWebBrowserTitle=Web Browser
-preferenceKeywords=HTML Firefox Mozilla Netscape Internet Opera Safari
-
-
-command.openBrowser.name=Open Browser
-command.openBrowser.description=Opens the default web browser.
-commandParameter.openBrowser.url.name=URL
-commandParameter.openBrowser.browserId.name=Browser Id
-commandParameter.openBrowser.name.name=Browser Name
-commandParameter.openBrowser.tooltip.name=Browser Tooltip
-
-browserInternetExplorer=Internet Explorer
-browserNetscape4=Netscape Communicator v4.x
-browserNetscape7=Netscape v7.x
-browserNetscape=Netscape
-browserMozilla=Mozilla
-browserOpera=Opera
-browserKonqueror=Konqueror
-browserGaleon=Galeon
-browserFirefox=Firefox
-browserCamino=Camino
diff --git a/bundles/org.eclipse.ui.browser/plugin.xml b/bundles/org.eclipse.ui.browser/plugin.xml
deleted file mode 100644
index e370ec4..0000000
--- a/bundles/org.eclipse.ui.browser/plugin.xml
+++ /dev/null
@@ -1,244 +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>
-   <extension
-         point="org.eclipse.ui.elementFactories">
-      <factory
-            class="org.eclipse.ui.internal.browser.WebBrowserEditorInput"
-            id="org.eclipse.ui.browser.elementFactory">
-      </factory>
-   </extension>
-
-</plugin>
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 b1729d1..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 minOccurs="0" maxOccurs="unbounded">
-            <element ref="browser"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="browser">
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="location"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the unique ID of the browser.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="factoryclass" type="string">
-            <annotation>
-               <documentation>
-                  the implementation class for the browser factory. This class must implement the &lt;samp&gt;org.eclipse.ui.browser.BrowserFactory&lt;/samp&gt; interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.help.browser.IBrowserFactory"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the browser (translatable).
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="os" type="string">
-            <annotation>
-               <documentation>
-                  comma separated list of operating systems. 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 64b9b88..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserManager.java
+++ /dev/null
@@ -1,223 +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.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();
-	}
-}
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 e16b15a..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserText.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-
-public class BrowserText {
-    private String url;
-
-    private FallbackScrolledComposite scomp;
-
-    private Label title;
-
-    private Label exTitle;
-
-    private Label text;
-
-    private Label sep;
-
-    protected Link link;
-
-    private BrowserViewer viewer;
-
-    private Button button;
-
-    private Text exception;
-
-    private boolean expanded;
-
-    private Throwable ex;
-
-    class ReflowScrolledComposite extends FallbackScrolledComposite {
-        public ReflowScrolledComposite(Composite parent, int style) {
-            super(parent, style);
-        }
-
-        public void reflow(boolean flushCache) {
-            updateWidth(this);
-            super.reflow(flushCache);
-        }
-    }
-
-    public BrowserText(Composite parent, BrowserViewer viewer, Throwable ex) {
-        this.viewer = viewer;
-        this.ex = ex;
-        Color bg = parent.getDisplay()
-                .getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-        scomp = new ReflowScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);
-        Composite client = new Composite(scomp, SWT.NULL);
-        fillContent(client, bg);
-        scomp.setContent(client);        
-        scomp.setBackground(bg);
-    }
-
-    private void fillContent(Composite parent, Color bg) {
-        GridLayout layout = new GridLayout();
-        layout.verticalSpacing = 10;
-        parent.setLayout(layout);
-        title = new Label(parent, SWT.WRAP);
-        title.setText(Messages.BrowserText_title);
-        title.setFont(JFaceResources.getHeaderFont());
-        title.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        title.setBackground(bg);
-
-        link = new Link(parent, SWT.WRAP);
-        link.setText(Messages.BrowserText_link);
-        link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        link.setToolTipText(Messages.BrowserText_tooltip);
-        link.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                BusyIndicator.showWhile(link.getDisplay(), new Runnable() {
-                    public void run() {
-                        doOpenExternal();
-                    }
-                });
-            }
-        });
-        link.setBackground(bg);
-        sep = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-        sep.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        exTitle = new Label(parent, SWT.NULL);
-        exTitle.setBackground(bg);
-        exTitle.setFont(JFaceResources.getBannerFont());
-        exTitle.setText(Messages.BrowserText_dtitle);
-        exTitle.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        text = new Label(parent, SWT.WRAP);
-        text.setText(Messages.BrowserText_text);
-        text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        text.setBackground(bg);
-        button = new Button(parent, SWT.PUSH);
-        updateButtonText();
-        button.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                toggleException();
-            }
-        });
-        exception = new Text(parent, SWT.MULTI);
-        loadExceptionText();
-        GridData gd = new GridData(GridData.FILL_BOTH);
-        gd.exclude = true;
-        exception.setLayoutData(gd);
-    }
-
-    private void loadExceptionText() {
-        StringWriter swriter = new StringWriter();
-        PrintWriter writer = new PrintWriter(swriter);
-        writer.println(ex.getMessage());
-        ex.printStackTrace(writer);
-        writer.close();
-        exception.setText(swriter.toString());
-    }
-
-    protected void toggleException() {
-        expanded = !expanded;
-        updateButtonText();
-        GridData gd = (GridData) exception.getLayoutData();
-        gd.exclude = !expanded;
-        exception.setVisible(expanded);
-        refresh();
-    }
-
-    private void updateButtonText() {
-        if (expanded)
-            button.setText(Messages.BrowserText_button_collapse);
-        else
-            button.setText(Messages.BrowserText_button_expand);
-    }
-
-    protected void updateWidth(Composite parent) {
-        Rectangle area = parent.getClientArea();
-        updateWidth(title, area.width);
-        updateWidth(text, area.width);
-        updateWidth(sep, area.width);
-        updateWidth(link, area.width);
-        updateWidth(exTitle, area.width);
-        updateWidth(exception, area.width);
-    }
-
-    private void updateWidth(Control c, int width) {
-        GridData gd = (GridData) c.getLayoutData();
-        if (gd != null)
-            gd.widthHint = width - 10;
-    }
-
-    protected void doOpenExternal() {
-        IBrowserViewerContainer container = viewer.getContainer();
-        if (container != null)
-            container.openInExternalBrowser(url);
-    }
-
-    public Control getControl() {
-        return scomp;
-    }
-
-    public boolean setUrl(String url) {
-        this.url = url;
-        return true;
-    }
-
-    public void setFocus() {
-        link.setFocus();
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void refresh() {
-        scomp.reflow(true);
-    }
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java
deleted file mode 100644
index 7262f74..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java
+++ /dev/null
@@ -1,953 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM Corporation - Initial API and implementation
- *    Jacek Pospychala - jacek.pospychala@pl.ibm.com - fix for bug 224887
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.CloseWindowListener;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.browser.LocationListener;
-import org.eclipse.swt.browser.OpenWindowListener;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.ProgressListener;
-import org.eclipse.swt.browser.StatusTextEvent;
-import org.eclipse.swt.browser.StatusTextListener;
-import org.eclipse.swt.browser.TitleEvent;
-import org.eclipse.swt.browser.TitleListener;
-import org.eclipse.swt.browser.VisibilityWindowListener;
-import org.eclipse.swt.browser.WindowEvent;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * A Web browser widget. It extends the Eclipse SWT Browser widget by adding an
- * optional toolbar complete with a URL combo box, history, back & forward, and
- * refresh buttons.
- * <p>
- * Use the style bits to choose which toolbars are available within the browser
- * composite. You can access the embedded SWT Browser directly using the
- * getBrowser() method.
- * </p>
- * <p>
- * Additional capabilities are available when used as the internal Web browser,
- * including status text and progress on the Eclipse window's status line, or
- * moving the toolbar capabilities up into the main toolbar.
- * </p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>LOCATION_BAR, BUTTON_BAR</dd>
- * <dt><b>Events:</b></dt>
- * <dd>None</dd>
- * </dl>
- * 
- * @since 1.0
- */
-public class BrowserViewer extends Composite {
-    /**
-     * Style parameter (value 1) indicating that the URL and Go button will be
-     * on the local toolbar.
-     */
-    public static final int LOCATION_BAR = 1 << 1;
-
-    /**
-     * Style parameter (value 2) indicating that the toolbar will be available
-     * on the web browser. This style parameter cannot be used without the
-     * LOCATION_BAR style.
-     */
-    public static final int BUTTON_BAR = 1 << 2;
-	 
-	 protected static final String PROPERTY_TITLE = "title"; //$NON-NLS-1$
-
-    private static final int MAX_HISTORY = 50;
-
-    public Clipboard clipboard;
-
-    public Combo combo;
-
-    protected boolean showToolbar;
-
-    protected boolean showURLbar;
-
-    protected ToolItem back;
-
-    protected ToolItem forward;
-
-    protected BusyIndicator busy;
-
-    protected boolean loading;
-
-    protected static java.util.List history;
-
-    protected Browser browser;
-    
-    protected BrowserText text;
-
-    protected boolean newWindow;
-
-    protected IBrowserViewerContainer container;
-
-    protected String title;
-
-    protected int progressWorked = 0;
-	 
-	 protected List propertyListeners;
-
-    /**
-     * Under development - do not use
-     */
-    public static interface ILocationListener {
-        public void locationChanged(String url);
-
-        public void historyChanged(String[] history2);
-    }
-
-    public ILocationListener locationListener;
-
-    /**
-     * Under development - do not use
-     */
-    public static interface IBackNextListener {
-        public void updateBackNextBusy();
-    }
-
-    public IBackNextListener backNextListener;
-
-    /**
-     * Creates a new Web browser given its parent and a style value describing
-     * its behavior and appearance.
-     * <p>
-     * The style value is either one of the style constants defined in the class
-     * header or class <code>SWT</code> which is applicable to instances of
-     * this class, or must be built by <em>bitwise OR</em>'ing together (that
-     * is, using the <code>int</code> "|" operator) two or more of those
-     * <code>SWT</code> style constants. The class description lists the style
-     * constants that are applicable to the class. Style bits are also inherited
-     * from superclasses.
-     * </p>
-     * 
-     * @param parent
-     *            a composite control which will be the parent of the new
-     *            instance (cannot be null)
-     * @param style
-     *            the style of control to construct
-     */
-    public BrowserViewer(Composite parent, int style) {
-        super(parent, SWT.NONE);
-		  
-        if ((style & LOCATION_BAR) != 0)
-            showURLbar = true;
-
-        if ((style & BUTTON_BAR) != 0)
-            showToolbar = true;
-
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        layout.horizontalSpacing = 0;
-        layout.verticalSpacing = 0;
-        layout.numColumns = 1;
-        setLayout(layout);
-        setLayoutData(new GridData(GridData.FILL_BOTH));
-        clipboard = new Clipboard(parent.getDisplay());
-        
-        if (showToolbar || showURLbar) {
-            Composite toolbarComp = new Composite(this, SWT.NONE);
-            toolbarComp.setLayout(new ToolbarLayout());
-            toolbarComp.setLayoutData(new GridData(
-                  GridData.VERTICAL_ALIGN_BEGINNING
-                  | GridData.FILL_HORIZONTAL));
-
-            if (showToolbar)
-                createToolbar(toolbarComp);
-            
-				if (showURLbar)
-                createLocationBar(toolbarComp);
-
-				if (showToolbar | showURLbar) {
-				    busy = new BusyIndicator(toolbarComp, SWT.NONE);
-				    busy.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-				    busy.addMouseListener(new MouseListener() {
-						public void mouseDoubleClick(MouseEvent e) {
-							// ignore
-						}
-
-						public void mouseDown(MouseEvent e) {
-							setURL("http://www.eclipse.org"); //$NON-NLS-1$
-						}
-
-						public void mouseUp(MouseEvent e) {
-							// ignore
-						}
-				    });
-				}
-				PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                  ContextIds.WEB_BROWSER); 
-        }
-
-        // create a new SWT Web browser widget, checking once again to make sure
-        // we can use it in this environment
-        //if (WebBrowserUtil.canUseInternalWebBrowser())
-        try {
-            this.browser = new Browser(this, SWT.NONE);
-        }
-        catch (SWTError e) {
-            if (e.code!=SWT.ERROR_NO_HANDLES) {
-                WebBrowserUtil.openError(Messages.errorCouldNotLaunchInternalWebBrowser);
-                return;
-            }
-            text = new BrowserText(this, this, e);
-        }
-
-        if (showURLbar)
-            updateHistory();
-        if (showToolbar)
-            updateBackNextBusy();
-
-         if (browser!=null) {
-            browser.setLayoutData(new GridData(GridData.FILL_BOTH));
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(browser,
-                    ContextIds.WEB_BROWSER);
-        }
-        else
-            text.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-
-        addBrowserListeners();
-        //listen();
-    }
-
-    /**
-     * Returns the underlying SWT browser widget.
-     * 
-     * @return the underlying browser
-     */
-    public Browser getBrowser() {
-        return browser;
-    }
-
-    /**
-     * Navigate to the home URL.
-     */
-    public void home() {
-   	 browser.setText(""); //$NON-NLS-1$
-    }
-
-    /**
-     * Loads a URL.
-     * 
-     * @param url
-     *            the URL to be loaded
-     * @return true if the operation was successful and false otherwise.
-     * @exception IllegalArgumentException
-     *                <ul>
-     *                <li>ERROR_NULL_ARGUMENT - if the url is null</li>
-     *                </ul>
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_THREAD_INVALID_ACCESS when called from the
-     *                wrong thread</li>
-     *                <li>ERROR_WIDGET_DISPOSED when the widget has been
-     *                disposed</li>
-     *                </ul>
-     * @see #getURL()
-     */
-    public void setURL(String url) {
-       setURL(url, true);
-    }
-
-    protected void updateBackNextBusy() {
-        back.setEnabled(isBackEnabled());
-        forward.setEnabled(isForwardEnabled());
-        busy.setBusy(loading);
-
-        if (backNextListener != null)
-            backNextListener.updateBackNextBusy();
-    }
-
-    protected void updateLocation() {
-        if (locationListener != null)
-            locationListener.historyChanged(null);
-
-        if (locationListener != null)
-            locationListener.locationChanged(null);
-    }
-
-    /**
-     *
-     */
-    private void addBrowserListeners() {
-        if (browser==null) return;
-        // respond to ExternalBrowserInstance StatusTextEvents events by
-        // updating the status line
-        browser.addStatusTextListener(new StatusTextListener() {
-            public void changed(StatusTextEvent event) {
-					//System.out.println("status: " + event.text); //$NON-NLS-1$
-                if (container != null) {
-                    IStatusLineManager status = container.getActionBars()
-                            .getStatusLineManager();
-                    status.setMessage(event.text);
-                }
-            }
-        });
-
-        // Add listener for new window creation so that we can instead of
-        // opening a separate
-        // new window in which the session is lost, we can instead open a new
-        // window in a new
-        // shell within the browser area thereby maintaining the session.
-        browser.addOpenWindowListener(new OpenWindowListener() {
-            public void open(WindowEvent event) {
-                Shell shell2 = new Shell(getShell(), SWT.SHELL_TRIM );
-                shell2.setLayout(new FillLayout());
-                shell2.setText(Messages.viewWebBrowserTitle);
-                shell2.setImage(getShell().getImage());
-                if (event.location != null)
-                    shell2.setLocation(event.location);
-                if (event.size != null)
-                    shell2.setSize(event.size);
-					 int style = 0;
-					 if (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 && !combo.getListVisible()) {
-                        setURL(combo.getItem(combo.getSelectionIndex()));
-                    }
-                } catch (Exception e) {
-                    // ignore
-                }
-            }
-        });
-        combo.addListener(SWT.DefaultSelection, new Listener() {
-            public void handleEvent(Event e) {
-                setURL(combo.getText());
-            }
-        });
-        
-        ToolBar toolbar = new ToolBar(parent, SWT.FLAT);
-
-        ToolItem go = new ToolItem(toolbar, SWT.NONE);
-        go.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_GO));
-        go.setHotImage(ImageResource.getImage(ImageResource.IMG_CLCL_NAV_GO));
-        go.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_GO));
-        go.setToolTipText(Messages.actionWebBrowserGo);
-        go.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                setURL(combo.getText());
-            }
-        });
-		  
-		  return toolbar;
-    }
-
-    private ToolBar createToolbar(Composite parent) {
-		  ToolBar toolbar = new ToolBar(parent, SWT.FLAT);
-		  
-        // create back and forward actions
-        back = new ToolItem(toolbar, SWT.NONE);
-        back.setImage(ImageResource
-                .getImage(ImageResource.IMG_ELCL_NAV_BACKWARD));
-        back.setHotImage(ImageResource
-                .getImage(ImageResource.IMG_CLCL_NAV_BACKWARD));
-        back.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_BACKWARD));
-        back.setToolTipText(Messages.actionWebBrowserBack);
-        back.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                back();
-            }
-        });
-
-        forward = new ToolItem(toolbar, SWT.NONE);
-        forward.setImage(ImageResource
-                .getImage(ImageResource.IMG_ELCL_NAV_FORWARD));
-        forward.setHotImage(ImageResource
-                .getImage(ImageResource.IMG_CLCL_NAV_FORWARD));
-        forward.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_FORWARD));
-        forward.setToolTipText(Messages.actionWebBrowserForward);
-        forward.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                forward();
-            }
-        });
-
-        // create refresh, stop, and print actions
-        ToolItem stop = new ToolItem(toolbar, SWT.NONE);
-        stop.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_STOP));
-        stop.setHotImage(ImageResource
-                .getImage(ImageResource.IMG_CLCL_NAV_STOP));
-        stop.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_STOP));
-        stop.setToolTipText(Messages.actionWebBrowserStop);
-        stop.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                stop();
-            }
-        });
-
-        ToolItem refresh = new ToolItem(toolbar, SWT.NONE);
-        refresh.setImage(ImageResource
-                .getImage(ImageResource.IMG_ELCL_NAV_REFRESH));
-        refresh.setHotImage(ImageResource
-                .getImage(ImageResource.IMG_CLCL_NAV_REFRESH));
-        refresh.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_REFRESH));
-        refresh.setToolTipText(Messages.actionWebBrowserRefresh);
-        refresh.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                refresh();
-            }
-        });
-		  
-		  return toolbar;
-    }
-
-    /**
-     * Returns the current URL. Convenience method that calls the underlying SWT
-     * browser.
-     * 
-     * @return the current URL or an empty <code>String</code> if there is no
-     *         current URL
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_THREAD_INVALID_ACCESS when called from the
-     *                wrong thread</li>
-     *                <li>ERROR_WIDGET_DISPOSED when the widget has been
-     *                disposed</li>
-     *                </ul>
-     * @see #setURL(String)
-     */
-    public String getURL() {
-        if (browser!=null)
-            return browser.getUrl();
-        return text.getUrl();
-    }
-
-    public boolean setFocus() {
-        if (browser!=null) {
-            browser.setFocus();
-            updateHistory();
-            return true;
-        }
-        return super.setFocus();
-    }
-
-    /**
-     * Update the history list to the global/shared copy.
-     */
-    protected void updateHistory() {
-        if (combo == null)
-            return;
-
-        String temp = combo.getText();
-        if (history == null)
-            history = WebBrowserPreference.getInternalWebBrowserHistory();
-
-        String[] historyList = new String[history.size()];
-        history.toArray(historyList);
-        combo.setItems(historyList);
-
-        combo.setText(temp);
-    }
-
-    public IBrowserViewerContainer getContainer() {
-        return container;
-    }
-
-    public void setContainer(IBrowserViewerContainer container) {
-    	if (container==null && this.container!=null) {
-    		IStatusLineManager manager = this.container.getActionBars().getStatusLineManager();
-    		if (manager!=null) 
-    			manager.getProgressMonitor().done();
-    	}
-        this.container = container;
-    }
-
-    protected File file;
-    protected long timestamp;
-    protected Thread fileListenerThread;
-    protected LocationListener locationListener2;
-    protected Object syncObject = new Object();
-    
-    protected void addSynchronizationListener() {
-   	 if (fileListenerThread != null)
-   		 return;
-   	 
-   	 fileListenerThread = new Thread("Browser file synchronization") { //$NON-NLS-1$
-   		 public void run() {
-   			 while (fileListenerThread != null) {
-   				 try {
-   					 Thread.sleep(2000);
-   				 } catch (Exception e) {
-   					 // ignore
-   				 }
-   				 synchronized (syncObject) {
-						 if (file != null && file.lastModified() != timestamp) {
-	   					 timestamp = file.lastModified();
-	   					 Display.getDefault().syncExec(new Runnable() {
-	 							public void run() {
-	 								refresh();
-	 							}
-	   					 });
-						 }
-					  }
-   			 }
-   		 }
-   	 };
-   	 fileListenerThread.setDaemon(true);
-   	 fileListenerThread.setPriority(Thread.MIN_PRIORITY);
-   	 
-   	 locationListener2 = new LocationListener() {
-          public void changed(LocationEvent event) {
-         	 File temp = getFile(event.location);
-         	 if (temp != null && temp.exists()) {
-         		 synchronized (syncObject) {
-         			 file = temp;
-            		 timestamp = file.lastModified();
-					 }
-         	 } else
-         		 file = null;
-          }
-          
-          public void changing(LocationEvent event) {
-             // do nothing
-         }
-       };
-       browser.addLocationListener(locationListener2);
-       
-       File temp = getFile(browser.getUrl());
-   	 if (temp != null && temp.exists()) {
-   		file = temp;
-      	timestamp = file.lastModified();
-   	 }
-   	 fileListenerThread.start();
-    }
-
-    protected static File getFile(String location) {
-   	 if (location == null)
-   		 return null;
-   	 if (location.startsWith("file:/")) //$NON-NLS-1$
-   		 location = location.substring(6);
-   	 
-   	 return new File(location);
-    }
-
-    protected void removeSynchronizationListener() {
-   	 if (fileListenerThread == null)
-   		 return;
-   	 
-   	 fileListenerThread = null;
-   	 browser.removeLocationListener(locationListener2);
-   	 locationListener2 = null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BusyIndicator.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BusyIndicator.java
deleted file mode 100644
index 990e118..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BusyIndicator.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-/**
- * An animated image to show busy status of the Web browser.
- */
-public class BusyIndicator extends Canvas {
-	protected Image[] images;
-	protected Image image;
-
-	protected Thread busyThread;
-	protected boolean stop;
-
-	/**
-	 * BusyWidget constructor comment.
-	 * @param parent org.eclipse.swt.widgets.Composite
-	 * @param style int
-	 */
-	public BusyIndicator(Composite parent, int style) {
-		super(parent, style);
-	
-		images = ImageResource.getBusyImages();
-	
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				onPaint(event);
-			}
-		});
-	
-		image = images[0];
-	}
-	
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		return new Point(25, 25);
-	}
-	
-	/**
-	 * Creates a thread to animate the image.
-	 */
-	protected synchronized void createBusyThread() {
-		if (busyThread != null)
-			return;
-	
-		stop = false;
-		busyThread = new Thread() {
-			protected int count;
-			public void run() {
-				try {
-					count = 1;
-					while (!stop) {
-						Display.getDefault().syncExec(new Runnable() {
-							public void run() {
-								if (!stop) {
-									if (count < 13)
-										setImage(images[count]);
-									count++;
-									if (count > 12)
-										count = 1;
-								}
-							}
-						});
-						try {
-							sleep(125);
-						} catch (Exception e) {
-							// ignore
-						}
-					}
-					if (busyThread == null)
-						Display.getDefault().syncExec(new Thread() {
-							public void run() {
-								setImage(images[0]);
-							}
-						});
-				} catch (Exception e) {
-					Trace.trace(Trace.WARNING, "Busy error", e); //$NON-NLS-1$
-				}
-			}
-		};
-	
-		busyThread.setPriority(Thread.NORM_PRIORITY + 2);
-		busyThread.setDaemon(true);
-		busyThread.start();
-	}
-	
-	public void dispose() {
-		stop = true;
-		busyThread = null;
-		super.dispose();
-	}
-	
-	/**
-	 * Return the image or <code>null</code>.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Returns true if it is currently busy.
-	 *
-	 * @return boolean
-	 */
-	public boolean isBusy() {
-		return (busyThread != null);
-	}
-
-	/* 
-	 * Process the paint event
-	 */
-	protected void onPaint(PaintEvent event) {
-		Rectangle rect = getClientArea();
-		if (rect.width == 0 || rect.height == 0)
-			return;
-	
-		GC gc = event.gc;
-		if (image != null)
-			gc.drawImage(image, 2, 2);
-	}
-
-	/**
-	 * Sets the indicators busy count up (true) or down (false) one.
-	 *
-	 * @param busy boolean
-	 */
-	public synchronized void setBusy(boolean busy) {
-		if (busy) {
-			if (busyThread == null)
-				createBusyThread();
-		} else {
-			if (busyThread != null) {
-				stop = true;
-				busyThread = null;
-			}
-		}
-	}
-
-	/**
-	 * Set the image.
-	 * The value <code>null</code> clears it.
-	 */
-	public void setImage(Image image) {
-		if (image != this.image && !isDisposed()) {
-			this.image = image;
-			redraw();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ContextIds.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ContextIds.java
deleted file mode 100644
index 0a7c12e..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ContextIds.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-/**
- * Context help id constants.
- */
-public interface ContextIds {
-	public static final String PREF_BROWSER = WebBrowserUIPlugin.PLUGIN_ID + ".browser_preference_page_context"; //$NON-NLS-1$
-	public static final String PREF_BROWSER_DIALOG = WebBrowserUIPlugin.PLUGIN_ID + ".browser_preference_page_dialog_context"; //$NON-NLS-1$
-	public static final String WEB_BROWSER = WebBrowserUIPlugin.PLUGIN_ID + ".browser_context"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java
deleted file mode 100644
index a4482e9..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java
+++ /dev/null
@@ -1,195 +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$
-	static final String DEFAULT_ID_BASE = "org.eclipse.ui.defaultBrowser"; //$NON-NLS-1$
-
-	protected HashMap browserIdMap = new HashMap();
-
-	protected static DefaultBrowserSupport instance;
-
-	public DefaultBrowserSupport() {
-		// do nothing
-		instance = this;
-		BrowserManager.getInstance().addObserver(new Observer() {
-			public void update(Observable o, Object arg) {
-				// TODO I am not sure what we should do here
-				// The preferences have changed so maybe we should
-				// close the opened browsers in addition to clearing
-				// the table
-				browserIdMap.clear();
-			}
-		});
-	}
-
-	protected static DefaultBrowserSupport getInstance() {
-		return instance;
-	}
-
-	protected IWebBrowser getExistingWebBrowser(String browserId) {
-		try {
-			Object obj = browserIdMap.get(browserId);
-			IWebBrowser browser = null;
-			if (obj instanceof IWebBrowser)
-				browser = (IWebBrowser) obj;
-			else if (obj instanceof HashMap) {
-				HashMap wmap = (HashMap) obj;
-				IWorkbenchWindow window = PlatformUI.getWorkbench()
-						.getActiveWorkbenchWindow();
-				if (window != null) {
-					browser = (IWebBrowser) wmap.get(getWindowKey(window));
-				}
-			}
-			if (browser != null)
-				return browser;
-		} catch (Exception e) {
-			// ignore
-		}
-		return null;
-	}
-
-	private Integer getWindowKey(IWorkbenchWindow window) {
-		return new Integer(window.hashCode());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.browser.IWorkbenchBrowserSupport#createBrowser(int,
-	 *      java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public IWebBrowser createBrowser(int style, String browserId, String name,
-			String tooltip) throws PartInitException {
-		if (browserId == null)
-			browserId = getDefaultId();
-		IWebBrowser browser = getExistingWebBrowser(browserId);
-		if (browser != null) {
-			if (browser instanceof InternalBrowserInstance) {
-				InternalBrowserInstance instance2 = (InternalBrowserInstance) browser;
-				instance2.setName(name);
-				instance2.setTooltip(tooltip);
-			}
-			return browser;
-		}
-
-		IWebBrowser webBrowser = null;
-
-		// AS_EXTERNAL will force the external browser regardless of the user
-		// preference
-		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);
-	}
-	
-	private String getDefaultId() {
-		String id = null;
-		for (int i = 0; i < Integer.MAX_VALUE; i++) {
-			id = DEFAULT_ID_BASE + i;
-			if (browserIdMap.get(id) == null)
-				break;
-		}
-		return id;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ExternalBrowserInstance.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ExternalBrowserInstance.java
deleted file mode 100644
index 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 87f4811..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserInstance.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-
-/**
- * An instance of a running Web browser.
- */
-public abstract class InternalBrowserInstance extends AbstractWebBrowser {
-	protected int style;
-
-	protected String name;
-
-	protected String tooltip;
-
-	protected IWorkbenchPart part;
-
-	protected IPartListener listener;
-	
-	private Integer windowKey;
-
-	public InternalBrowserInstance(String id, int style, String name,
-			String tooltip) {
-		super(WebBrowserUtil.encodeStyle(id, style));
-		this.style = style;
-		this.name = name;
-		this.tooltip = tooltip;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public void setTooltip(String tooltip) {
-		this.tooltip = tooltip;
-	}
-
-	protected void hookPart(final IWorkbenchPage page, IWorkbenchPart part2) {
-		this.part = part2;
-		listener = new IPartListener() {
-			public void partActivated(IWorkbenchPart part3) {
-				// ignore
-			}
-
-			public void partBroughtToTop(IWorkbenchPart part3) {
-				// ignore
-			}
-
-			public void partClosed(IWorkbenchPart part3) {
-				if (part3.equals(InternalBrowserInstance.this.part)) {
-					InternalBrowserInstance.this.part = null;
-					page.removePartListener(listener);
-					DefaultBrowserSupport.getInstance().removeBrowser(
-							InternalBrowserInstance.this);
-				}
-			}
-
-			public void partDeactivated(IWorkbenchPart part3) {
-				// ignore
-			}
-
-			public void partOpened(IWorkbenchPart part3) {
-				// ignore
-			}
-		};
-		page.addPartListener(listener);
-		IWorkbenchWindow window = part.getSite().getWorkbenchWindow();
-		windowKey = new Integer(window.hashCode());
-	}
-
-	public Integer getWindowKey() {
-		return windowKey;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserViewInstance.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserViewInstance.java
deleted file mode 100644
index 2bd9f8e..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserViewInstance.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.net.URL;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-/**
- * An instance of a running Web browser.
- */
-public class InternalBrowserViewInstance extends InternalBrowserInstance {
-	public InternalBrowserViewInstance(String id, int style, String name, String tooltip) {
-		super(WebBrowserUtil.encodeStyle(id, style), style, name, tooltip);
-	}
-
-	public void openURL(URL url) throws PartInitException {
-        IWorkbenchWindow workbenchWindow = WebBrowserUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow();
-        final IWorkbenchPage page = workbenchWindow.getActivePage();
-        WebBrowserView view = (WebBrowserView)part;
-		if (view == null) {
-            try {
-				view = (WebBrowserView)page.showView(WebBrowserView.WEB_BROWSER_VIEW_ID, getId(), IWorkbenchPage.VIEW_CREATE);
-                hookPart(page, view);
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Error opening Web browser", e); //$NON-NLS-1$
-			}
-		}
-        if (view!=null) {
-            page.bringToTop(view);
-            view.setURL(url.toExternalForm());
-        }
-	}
-
-	public boolean close() {
-        return ((WebBrowserView)part).close();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.java
deleted file mode 100644
index dad379b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import org.eclipse.osgi.util.NLS;
-/**
- * Translated messages.
- */
-public class Messages extends NLS {
-	static {
-		NLS.initializeMessages("org.eclipse.ui.internal.browser.Messages", Messages.class); //$NON-NLS-1$
-	}
-
-	public static String BrowserText_title;
-	public static String BrowserText_link;
-	public static String BrowserText_tooltip;
-	public static String BrowserText_dtitle;
-	public static String BrowserText_text;
-	public static String BrowserText_button_collapse;
-	public static String BrowserText_button_expand;
-
-	public static String errorCouldNotLaunchInternalWebBrowser;
-	public static String actionWebBrowserGo;
-	public static String viewWebBrowserTitle;
-	public static String actionWebBrowserBack;
-	public static String actionWebBrowserForward;
-	public static String actionWebBrowserStop;
-	public static String actionWebBrowserRefresh;
-	public static String dialogResourceDeletedTitle;
-	public static String dialogResourceDeletedMessage;
-	public static String dialogResourceDeletedIgnore;
-	public static String errorInvalidEditorInput;
-	public static String preferenceWebBrowserDescription;
-	public static String prefInternalBrowser;
-	public static String prefExternalBrowser;
-	public static String prefSystemBrowser;
-	public static String browserList;
-	public static String add;
-	public static String edit;
-	public static String remove;
-	public static String search;
-	public static String selectDirectory;
-	public static String directoryDialogTitle;
-	public static String searchingTaskName;
-	public static String searchingNoneFound;
-	public static String preferenceWebBrowserTitle;
-	public static String searching;
-	public static String errorDialogTitle;
-	public static String errorCouldNotLaunchWebBrowser;
-	public static String errorNoBrowser;
-	public static String editExternalBrowser;
-	public static String createBrowser;
-	public static String name;
-	public static String location;
-	public static String parameters;
-	public static String parametersMessage;
-	public static String browse;
-	public static String browseMessage;
-	public static String locationInvalid;
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties
deleted file mode 100644
index d2a63b2..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties
+++ /dev/null
@@ -1,69 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-BrowserText_title=Embedded browser not available
-BrowserText_link=<a href="open">Open file using the system editor</a>
-BrowserText_tooltip=Open External Editor
-BrowserText_dtitle=Problem Details
-BrowserText_text=The embedded browser widget for this editor cannot be created. It is either not available for your operating system or the system needs to be configured in order to support embedded browser.
-BrowserText_button_collapse=Details<<
-BrowserText_button_expand=Details>>
-
-# --- Internal Web Browser ---
-viewWebBrowserTitle=Web Browser
-
-# Actions
-actionWebBrowserGo=Go to the selected URL
-actionWebBrowserBack=Back to the previous page
-actionWebBrowserForward=Forward to the next page
-actionWebBrowserStop=Stop loading the current page
-actionWebBrowserRefresh=Refresh the current page
-
-# message if a resource is deleted
-dialogResourceDeletedTitle=Web Resource Deleted
-dialogResourceDeletedMessage=The file {0} initially opened in the Web Browser has been deleted from the file system. Do you want to ignore the deletion or close the Web Browser?
-dialogResourceDeletedIgnore=Ignore
-
-# --------------- Preferences ---------------
-
-# Name of the preference pages
-preferenceWebBrowserTitle=Web Browser
-preferenceWebBrowserDescription=Add, remove, or edit installed Web browsers.\nThe selected Web browser will be used by default when Web pages are opened, although some applications may always use the external browser.
-
-# Web Browser preferences
-prefInternalBrowser=Use &internal Web browser
-prefSystemBrowser=Default system Web browser
-prefExternalBrowser=Use e&xternal Web browser
-
-errorDialogTitle=Error
-errorCouldNotLaunchWebBrowser=Could not launch external Web Browser for {0}. Check the Web Browser preferences.
-errorNoBrowser=Could not open a Web browser because there are none configured. Check the Web Browser preferences.
-errorInvalidEditorInput=Could not open Web browser on {0}. Ensure that it is an uncompressed file.
-
-browserList=External &Web browsers:
-add=&New...
-edit=&Edit...
-remove=&Remove
-search=&Search...
-createBrowser=Add External Web Browser
-editExternalBrowser=Edit External Web Browser
-name=&Name:
-location=&Location:
-parameters=&Parameters:
-parametersMessage=Example: -url {0}\n(Use {0} to include the URL)
-browse=&Browse...
-browseMessage=Specify the location of the Web Browser executable
-errorCouldNotLaunchInternalWebBrowser=Could not launch internal Web Browser. Please set an external browser in the Browser preferences.
-searchingTaskName=Searching for Web browsers...
-searching=Found {0} - Searching {1}
-searchingNoneFound=No Web browsers were found.
-selectDirectory=Select a directory to search for Web browsers:
-directoryDialogTitle=Directory Selection
-locationInvalid=The location value is not a valid path name.
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserHandler.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserHandler.java
deleted file mode 100644
index 7861089..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserHandler.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-public class OpenBrowserHandler extends AbstractHandler {
-
-	private static final String PARAM_ID_URL = "url"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_BROWSER_ID = "browserId"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_NAME = "name"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_TOOLTIP = "tooltip"; //$NON-NLS-1$
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		String urlText = event.getParameter(PARAM_ID_URL);
-		URL url;
-		if (urlText == null) {
-			url = null;
-		} else {
-			try {
-				url = new URL(urlText);
-			} catch (MalformedURLException ex) {
-				throw new ExecutionException("malformed URL:" + urlText, ex); //$NON-NLS-1$
-			}
-		}
-
-		String browserId = event.getParameter(PARAM_ID_BROWSER_ID);
-		String name = event.getParameter(PARAM_ID_NAME);
-		String tooltip = event.getParameter(PARAM_ID_TOOLTIP);
-
-		try {
-			IWorkbenchBrowserSupport browserSupport = PlatformUI.getWorkbench()
-					.getBrowserSupport();
-			IWebBrowser browser = browserSupport.createBrowser(
-					IWorkbenchBrowserSupport.LOCATION_BAR
-							| IWorkbenchBrowserSupport.NAVIGATION_BAR,
-					browserId, name, tooltip);
-			browser.openURL(url);
-		} catch (PartInitException ex) {
-			throw new ExecutionException("error opening browser", ex); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserWorkbenchAction.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserWorkbenchAction.java
deleted file mode 100644
index 9164082..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserWorkbenchAction.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.*;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-/**
- * Action to open the Web broswer.
- */
-public class OpenBrowserWorkbenchAction implements IWorkbenchWindowActionDelegate {
-	/**
-	 * OpenBrowserWorkbenchAction constructor comment.
-	 */
-	public OpenBrowserWorkbenchAction() {
-		super();
-	}
-
-	/**
-	 * Disposes this action delegate.  The implementor should unhook any references
-	 * to itself so that garbage collection can occur.
-	 */
-	public void dispose() {
-		// do nothing
-	}
-
-	/**
-	 * Initializes this action delegate with the workbench window it will work in.
-	 *
-	 * @param window the window that provides the context for this delegate
-	 */
-	public void init(IWorkbenchWindow window) {
-		// do nothing
-	}
-
-	/**
-	 * Performs this action.
-	 * <p>
-	 * This method is called when the delegating action has been triggered.
-	 * Implement this method to do the actual work.
-	 * </p>
-	 *
-	 * @param action the action proxy that handles the presentation portion of the
-	 *   action
-	 */
-	public void run(IAction action) {
-		try {
-			IWorkbenchBrowserSupport browserSupport = WebBrowserUIPlugin.getInstance().getWorkbench().getBrowserSupport();
-			IWebBrowser browser = browserSupport.createBrowser(IWorkbenchBrowserSupport.LOCATION_BAR | IWorkbenchBrowserSupport.NAVIGATION_BAR, null, null, null);
-			browser.openURL(null);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error opening browser", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Notifies this action delegate that the selection in the workbench has changed.
-	 * <p>
-	 * Implementers can use this opportunity to change the availability of the
-	 * action or to modify other presentation properties.
-	 * </p>
-	 *
-	 * @param action the action proxy that handles presentation portion of the action
-	 * @param selection the current selection in the workbench
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-		// do nothing
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SWTUtil.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SWTUtil.java
deleted file mode 100644
index dde786a..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SWTUtil.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-/**
- * SWT Utility class.
- */
-public class SWTUtil {
-	private static FontMetrics fontMetrics;
-
-	protected static void initializeDialogUnits(Control testControl) {
-		// Compute and store a font metric
-		GC gc = new GC(testControl);
-		gc.setFont(JFaceResources.getDialogFont());
-		fontMetrics = gc.getFontMetrics();
-		gc.dispose();
-	}
-
-	/**
-	 * Returns a width hint for a button control.
-	 */
-	protected static int getButtonWidthHint(Button button) {
-		int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH);
-		return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-	}
-
-	/**
-	 * Create a new button with the standard size.
-	 * 
-	 * @param comp a component to add the button to
-	 * @param label the button label
-	 * @return a button
-	 */
-	public static Button createButton(Composite comp, String label) {
-		Button b = new Button(comp, SWT.PUSH);
-		b.setText(label);
-		if (fontMetrics == null)
-			initializeDialogUnits(comp);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
-		data.widthHint = getButtonWidthHint(b);
-		b.setLayoutData(data);
-		return b;
-	}
-	
-	/**
-	 * Create a new standard label.
-	 * 
-	 * @param comp a component to add the label to
-	 * @param text the label text
-	 * @return a label
-	 */
-	public static Label createLabel(Composite comp, String text) {
-		Label label = new Label(comp, SWT.NONE);
-		label.setText(text);
-		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
-		return label;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserDescriptor.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserDescriptor.java
deleted file mode 100644
index 4d19603..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserDescriptor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-public class SystemBrowserDescriptor implements IBrowserDescriptor {
-	public String getName() {
-		return Messages.prefSystemBrowser;
-	}
-
-	public String getLocation() {
-		return null;
-	}
-
-	public String getParameters() {
-		return null;
-	}
-
-	public void delete() {
-		// ignore
-	}
-
-	public boolean isWorkingCopy() {
-		return false;
-	}
-
-	public IBrowserDescriptorWorkingCopy getWorkingCopy() {
-		return null;
-	}
-	
-	public boolean equals(Object obj) {
-		return obj instanceof SystemBrowserDescriptor;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserInstance.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserInstance.java
deleted file mode 100644
index 4cacdd6..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserInstance.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.net.URL;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.program.Program;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-
-/**
- * An instance of a running system Web browser.
- */
-public class SystemBrowserInstance extends AbstractWebBrowser {
-	public SystemBrowserInstance(String id) {
-		super(id);
-	}
-
-	public void openURL(URL url) throws PartInitException {
-		String urlText = null;
-
-		if (url != null)
-			urlText = url.toExternalForm();
-
-		// change spaces to "%20"
-		if (urlText != null && !WebBrowserUtil.isWindows()) {
-			int index = urlText.indexOf(" "); //$NON-NLS-1$
-			while (index >= 0) {
-				urlText = urlText.substring(0, index) + "%20" //$NON-NLS-1$
-						+ urlText.substring(index + 1);
-				index = urlText.indexOf(" "); //$NON-NLS-1$
-			}
-		}
-		Trace.trace(Trace.FINEST, "Launching system Web browser: " + urlText); //$NON-NLS-1$
-		Program program = Program.findProgram("html"); //$NON-NLS-1$
-		if (program != null) {
-			if (program.execute(urlText))
-				return;
-		}
-		if (!Program.launch(urlText))
-			throw new PartInitException(NLS.bind(Messages.errorCouldNotLaunchWebBrowser, url.toExternalForm()));
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/TextAction.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/TextAction.java
deleted file mode 100644
index ec374f0..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/TextAction.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.jface.action.Action;
-/**
- * Text actions (cut, copy, paste) for the Web browser.
- */
-public class TextAction extends Action {
-	protected BrowserViewer browser;
-	protected byte type;
-
-	public static final byte CUT = 0;
-	public static final byte COPY = 1;
-	public static final byte PASTE = 2;
-	
-	/**
-	 * TextAction constructor comment.
-	 */
-	protected TextAction(BrowserViewer browser, byte type) {
-		super(type + "!"); //$NON-NLS-1$
-		this.browser = browser;
-		this.type = type;
-	}
-	
-	/**
-	 * Copies the selected text to the clipboard.  The text will be put in the 
-	 * clipboard in plain text format.
-	 * <p>
-	 *
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-	 * </ul>
-	 */
-	public void copy() {
-		Point selection = browser.combo.getSelection();
-	
-		int length = selection.y - selection.x;
-		if (length > 0) {
-			TextTransfer plainTextTransfer = TextTransfer.getInstance();
-			try {
-				browser.clipboard.setContents(
-					new String[] { browser.combo.getText().substring(selection.x, selection.y) }, 
-					new Transfer[] { plainTextTransfer });
-			} catch (SWTError error) {
-				// Copy to clipboard failed. This happens when another application 
-				// is accessing the clipboard while we copy. Ignore the error.
-				// Fixes 1GDQAVN
-			}
-		}
-	}
-	
-	/**
-	 * Moves the selected text to the clipboard.  The text will be put in the 
-	 * clipboard in plain text format and RTF format.
-	 * <p>
-	 *
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-	 * </ul>
-	 */
-	public void cut(){
-		Point selection = browser.combo.getSelection();
-	
-		if (selection.y > selection.x) {
-			copy();
-			delete();
-		}
-	}
-	
-	/**
-	 * Deletes the character to the right of the caret. Delete the selected text if any.
-	 */
-	public void delete() {
-		Point selection = browser.combo.getSelection();
-		String text = browser.combo.getText();
-	
-		if (selection.x != selection.y) {
-			text = text.substring(0, selection.x) + text.substring(selection.y);
-			browser.combo.setText(text);
-			browser.combo.setSelection(new Point(selection.x, selection.x));
-		}
-	}
-	
-	/** 
-	 * Replaces the selection with the clipboard text or insert the text at 
-	 * the current caret offset if there is no selection. 
-	 * If the widget has the SWT.SINGLE style and the clipboard text contains
-	 * more than one line, only the first line without line delimiters is 
-	 * inserted in the widget.
-	 * <p>
-	 *
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-	 * </ul>
-	 */
-	public void paste() {
-		TextTransfer transfer = TextTransfer.getInstance();
-		Point selection = browser.combo.getSelection();
-		String text = browser.combo.getText();
-		
-		String newText = (String) browser.clipboard.getContents(transfer);
-		if (newText != null && newText.length() > 0) {
-			text = text.substring(0, selection.x) + newText + text.substring(selection.y);
-			browser.combo.setText(text);
-	
-			// set the selection to the end of the paste
-			int x = selection.x + newText.length();
-			browser.combo.setSelection(new Point(x, x));
-		}
-	}
-	
-	/**
-	 * Implementation of method defined on <code>IAction</code>.
-	 */
-	public void run() {
-		if (browser == null || browser.combo == null)
-			return;
-		if (type == CUT)
-			cut();
-		else if (type == COPY)
-			copy();
-		else if (type == PASTE)
-			paste();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ToolbarLayout.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ToolbarLayout.java
deleted file mode 100644
index 18abbe9..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ToolbarLayout.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-/**
- * Custom layout for the browser's toolbar.
- */
-public class ToolbarLayout extends Layout {
-	private static final int SPACING = 5;
-	private static final int EXTRA_BUSY_SPACING = 2;
-	private static final int MARGIN = 2;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Layout#computeSize(org.eclipse.swt.widgets.Composite, int, int, boolean)
-	 */
-	protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
-		if (hHint != SWT.DEFAULT)
-			return new Point(wHint, hHint);
-		
-		Control[] children = composite.getChildren();
-		int h = 0;
-		int size = children.length;
-		for (int i = 0; i < size; i++) {
-			h = Math.max(h, children[i].computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
-		}
-		
-		return new Point(wHint, h + MARGIN * 2);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite, boolean)
-	 */
-	protected void layout(Composite composite, boolean flushCache) {
-		Control[] children = composite.getChildren();
-		Rectangle r = composite.getClientArea();
-		
-		int size = children.length;
-		Point[] sizes = new Point[size];
-		for (int i = 0; i < size; i++) {
-			sizes[i] = children[i].computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		}
-
-		int h = r.height - MARGIN * 2;
-		
-		// put busy icon at right with a little extra spacing
-		int busy = size - 1;
-		children[busy].setBounds(r.x + r.width - MARGIN - sizes[busy].x,
-				r.y + MARGIN + (h-sizes[busy].y) / 2, 
-				sizes[busy].x, sizes[busy].y);
-		
-		// find combo
-		int combo = -1;
-		int tw = r.width - MARGIN * 2 - (size - 1) * SPACING
-				- sizes[size-1].x - EXTRA_BUSY_SPACING;
-		for (int i = 0; i < size - 1; i++) {
-			if (children[i] instanceof Combo)
-				combo = i;
-			else
-				tw -= sizes[i].x;
-		}
-		if (combo >= 0)
-			sizes[combo].x = tw;
-		
-		// space out other children with their standard size, give combo all
-		// remaining space (if it exists)
-		int x = MARGIN;
-		for (int i = 0; i < size - 1; i++) {
-			children[i].setBounds(r.x + x, r.y + MARGIN + (h-sizes[i].y) / 2,
-					sizes[i].x, sizes[i].y);
-			x += SPACING + sizes[i].x;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Trace.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Trace.java
deleted file mode 100644
index 24c6dda..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Trace.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-/**
- * Helper class to route trace output.
- */
-public class Trace {
-	public static int CONFIG = 0;
-	public static int WARNING = 2;
-	public static int SEVERE = 3;
-	public static int FINER = 4;
-	public static int FINEST = 5;
-
-	/**
-	 * Trace constructor comment.
-	 */
-	private Trace() {
-		super();
-	}
-
-	/**
-	 * Trace the given text.
-	 *
-	 * @param s java.lang.String
-	 */
-	public static void trace(int level, String s) {
-		Trace.trace(level, s, null);
-	}
-
-	/**
-	 * Trace the given message and exception.
-	 *
-	 * @param s java.lang.String
-	 * @param t java.lang.Throwable
-	 */
-	public static void trace(int level, String s, Throwable t) {
-		if (!WebBrowserUIPlugin.getInstance().isDebugging())
-			return;
-
-		System.out.println(s);
-		if (t != null)
-			t.printStackTrace();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java
deleted file mode 100644
index dc26129..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-import org.eclipse.ui.part.EditorPart;
-/**
- * An integrated Web browser, defined as an editor to make
- * better use of the desktop.
- */
-public class WebBrowserEditor extends EditorPart implements IBrowserViewerContainer {
-	public static final String WEB_BROWSER_EDITOR_ID = "org.eclipse.ui.browser.editor"; //$NON-NLS-1$
-
-	protected BrowserViewer webBrowser;
-	protected String initialURL;
-	protected Image image;
-
-	protected TextAction cutAction;
-	protected TextAction copyAction;
-	protected TextAction pasteAction;
-	
-	private boolean disposed;
-	private boolean lockName;
-
-	/**
-	 * WebBrowserEditor constructor comment.
-	 */
-	public WebBrowserEditor() {
-		super();
-	}
-	
-	/*
-	 * Creates the SWT controls for this workbench part.
-	 */
-	public void createPartControl(Composite parent) {
-		WebBrowserEditorInput input = getWebBrowserEditorInput();
-		
-		int style = 0;
-		if (input == null || input.isLocationBarLocal()) {
-			style += BrowserViewer.LOCATION_BAR;
-		}
-		if (input == null || input.isToolbarLocal()) {
-			style += BrowserViewer.BUTTON_BAR;
-		}
-		webBrowser = new BrowserViewer(parent, style);
-		
-		webBrowser.setURL(initialURL);
-		webBrowser.setContainer(this);
-		
-		if (input == null || input.isLocationBarLocal()) {
-			cutAction = new TextAction(webBrowser, TextAction.CUT);
-			copyAction = new TextAction(webBrowser, TextAction.COPY);
-			pasteAction = new TextAction(webBrowser, TextAction.PASTE);
-		}
-		
-		if (!lockName) {
-			PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
-				public void propertyChange(PropertyChangeEvent event) {
-					if (BrowserViewer.PROPERTY_TITLE.equals(event.getPropertyName())) {
-						setPartName((String) event.getNewValue());
-					}
-				}
-			};
-			webBrowser.addPropertyChangeListener(propertyChangeListener);
-		}
-	}
-	
-	public void dispose() {
-		if (image != null && !image.isDisposed())
-			image.dispose();
-		image = null;
-
-		super.dispose();
-		// mark this instance as disposed to avoid stale references
-		disposed = true;
-	}
-	
-	public boolean isDisposed() {
-		return disposed;
-	}
-	
-	/* (non-Javadoc)
-	 * Saves the contents of this editor.
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		// do nothing
-	}
-
-	/* (non-Javadoc)
-	 * Saves the contents of this editor to another object.
-	 */
-	public void doSaveAs() {
-		// do nothing
-	}
-	
-	/**
-	 * Returns the copy action.
-	 *
-	 * @return org.eclipse.jface.action.IAction
-	 */
-	public IAction getCopyAction() {
-		return copyAction;
-	}
-	
-	/**
-	 * Returns the cut action.
-	 *
-	 * @return org.eclipse.jface.action.IAction
-	 */
-	public IAction getCutAction() {
-		return cutAction;
-	}
-	
-	/**
-	 * Returns the web editor input, if available. If the input was of
-	 * another type, <code>null</code> is returned.
-	 *
-	 * @return org.eclipse.ui.internal.browser.IWebBrowserEditorInput
-	 */
-	protected WebBrowserEditorInput getWebBrowserEditorInput() {
-		IEditorInput input = getEditorInput();
-		if (input instanceof WebBrowserEditorInput)
-			return (WebBrowserEditorInput) input;
-		return null;
-	}
-
-	/**
-	 * Returns the paste action.
-	 *
-	 * @return org.eclipse.jface.action.IAction
-	 */
-	public IAction getPasteAction() {
-		return pasteAction;
-	}
-
-	/* (non-Javadoc)
-	 * Initializes the editor part with a site and input.
-	 */
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		Trace.trace(Trace.FINEST, "Opening browser: " + input); //$NON-NLS-1$
-		if (input instanceof IPathEditorInput) {
-			IPathEditorInput pei = (IPathEditorInput) input;
-			IPath path = pei.getPath();
-			URL url = null;
-			try {
-				if (path != null)
-					url = path.toFile().toURL();
-				initialURL = url.toExternalForm();
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Error getting URL to file"); //$NON-NLS-1$
-			}
-			if (webBrowser != null) {
-				if (initialURL != null)
-					webBrowser.setURL(initialURL);
-				site.getWorkbenchWindow().getActivePage().activate(this);
-			}
-			
-			setPartName(path.lastSegment());
-			if (url != null)
-				setTitleToolTip(url.getFile());
-
-			Image oldImage = image;
-			ImageDescriptor id = ImageResource.getImageDescriptor(ImageResource.IMG_INTERNAL_BROWSER);
-			image = id.createImage();
-
-			setTitleImage(image);
-			if (oldImage != null && !oldImage.isDisposed())
-				oldImage.dispose();
-			//addResourceListener(file);
-		} else if (input instanceof WebBrowserEditorInput) {
-			WebBrowserEditorInput wbei = (WebBrowserEditorInput) input;
-			initialURL = null;
-			if (wbei.getURL() != null)
-				initialURL = wbei.getURL().toExternalForm();
-			if (webBrowser != null) {
-				webBrowser.setURL(initialURL);
-				site.getWorkbenchWindow().getActivePage().activate(this);
-			}
-	
-			setPartName(wbei.getName());
-			setTitleToolTip(wbei.getToolTipText());
-			lockName = wbei.isNameLocked();
-
-			Image oldImage = image;
-			ImageDescriptor id = wbei.getImageDescriptor();
-			image = id.createImage();
-
-			setTitleImage(image);
-			if (oldImage != null && !oldImage.isDisposed())
-				oldImage.dispose();
-		} else {
-		    IPathEditorInput pinput = (IPathEditorInput) input.getAdapter(IPathEditorInput.class);
-			if (pinput != null) {
-				init(site, pinput);
-			} else {
-			    throw new PartInitException(NLS.bind(Messages.errorInvalidEditorInput, input.getName()));
-			}
-		}
-		
-		setSite(site);
-		setInput(input);
-	}
-	
-	/* (non-Javadoc)
-	 * Returns whether the contents of this editor have changed since the last save
-	 * operation.
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * Returns whether the "save as" operation is supported by this editor.
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/**
-	 * Open the input in the internal Web browser.
-	 */
-	public static void open(WebBrowserEditorInput input) {
-		IWorkbenchWindow workbenchWindow = WebBrowserUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow();
-		IWorkbenchPage page = workbenchWindow.getActivePage();
-
-		try {
-			IEditorReference[] editors = page.getEditorReferences();
-			int size = editors.length;
-			for (int i = 0; i < size; i++) {
-				if (WEB_BROWSER_EDITOR_ID.equals(editors[i].getId())) {
-					IEditorPart editor = editors[i].getEditor(true);
-					if (editor != null && editor instanceof WebBrowserEditor) {
-						WebBrowserEditor webEditor = (WebBrowserEditor) editor;
-						WebBrowserEditorInput input2 = webEditor.getWebBrowserEditorInput();
-						if (input2 == null || input.canReplaceInput(input2)) {
-							editor.init(editor.getEditorSite(), input);
-							return;
-						}
-					}
-				}
-			}
-			
-			page.openEditor(input, WebBrowserEditor.WEB_BROWSER_EDITOR_ID);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error opening Web browser", e); //$NON-NLS-1$
-		}
-	}
-	
-	/*
-	 * Asks this part to take focus within the workbench.
-	 */
-	public void setFocus() {
-		if (webBrowser != null)
-			webBrowser.setFocus();
-	}
-
-	/**
-	 * Close the editor correctly.
-	 */
-	public boolean close() {
-        final boolean [] result = new boolean[1];
-		Display.getDefault().asyncExec(new Runnable() {
-			public void run() {
-				result[0] = getEditorSite().getPage().closeEditor(WebBrowserEditor.this, false);
-			}
-		});
-        return result[0];
-	}
-	
-    public IActionBars getActionBars() {
-        return getEditorSite().getActionBars();
-    }
-
-    public void openInExternalBrowser(String url) {
-        final IEditorInput input = getEditorInput();
-        final String id = getEditorSite().getId();
-        Runnable runnable = new Runnable() {
-            public void run() {
-                doOpenExternalEditor(id, input);
-            }
-        };
-        Display display = getSite().getShell().getDisplay();
-        close();
-        display.asyncExec(runnable);
-    }
-    
-    protected void doOpenExternalEditor(String id, IEditorInput input) {
-        IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry();
-        String name = input.getName();
-        IEditorDescriptor [] editors = registry.getEditors(name);
-        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-
-        String editorId = null;
-        for (int i = 0; i < editors.length; i++) {
-            IEditorDescriptor editor = editors[i];
-            if (editor.getId().equals(id))
-                continue;
-            editorId = editor.getId();
-            break;
-        } 
-        
-        IEditorDescriptor ddesc = registry.getDefaultEditor(name);
-        if (ddesc!=null && ddesc.getId().equals(id)) {
-            int dot = name.lastIndexOf('.');
-            String ext = name;
-            if (dot!= -1)
-                ext = "*."+name.substring(dot+1); //$NON-NLS-1$
-            registry.setDefaultEditor(ext, null);
-        }
- 
-         if (editorId==null) {
-            // no editor
-            // next check with the OS for an external editor
-            if (registry.isSystemExternalEditorAvailable(name))
-                editorId = IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID;
-        }
-
-        if (editorId!=null) {
-            try {
-                page.openEditor(input, editorId);
-                return;
-            } catch (PartInitException e) {
-					// ignore
-            }
-        }
-        
-        // no registered editor - open using browser support
-        try {
-            URL theURL = new URL(webBrowser.getURL());
-            IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport();
-            support.getExternalBrowser().openURL(theURL);
-        }
-        catch (MalformedURLException e) {
-            //TODO handle this
-        }
-        catch (PartInitException e) {
-            //TODO handle this
-        }
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorActionBarContributor.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorActionBarContributor.java
deleted file mode 100644
index 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 794a965..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorInput.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-/**
- * The editor input for the integrated web browser.
- */
-public class WebBrowserEditorInput implements IEditorInput,
-		IPersistableElement, IElementFactory {
-	// --- constants to pass into constructor ---
-
-	// if used, the toolbar will be available
-	// public static final int SHOW_TOOLBAR = 1 << 1;
-
-	// public static final int SHOW_GLOBAL_TOOLBAR = 1 << 2;
-
-	// if used, the status bar will be available
-	// public static final int SHOW_STATUSBAR = 1 << 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 static final String MEMENTO_NAME = "name"; //$NON-NLS-1$
-
-	private static final String MEMENTO_TOOLTIP = "tooltip"; //$NON-NLS-1$
-
-	private URL url;
-
-	private int style;
-
-	private String id = null;
-
-	private String name;
-
-	private String tooltip;
-
-	/**
-	 * ExternalBrowserInstance editor input for the homepage.
-	 */
-	public WebBrowserEditorInput() {
-		this(null);
-	}
-
-	/**
-	 * WebBrowserEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(URL url) {
-		this(url, 0);
-	}
-
-	/**
-	 * WebBrowserEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(URL url, int style) {
-		super();
-		this.url = url;
-		this.style = style;
-	}
-
-	/**
-	 * WebBrowserEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(URL url, int style, String browserId) {
-		super();
-		this.url = url;
-		this.style = style;
-		this.id = browserId;
-	}
-
-	/**
-	 * WebBrowserEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(URL url, boolean b) {
-		this(url);
-	}
-
-	public void setName(String n) {
-		name = n;
-	}
-
-	public void setToolTipText(String t) {
-		tooltip = t;
-	}
-
-	/**
-	 * Returns true if this page can reuse the browser that the given input is
-	 * being displayed in, or false if it should open up in a new page.
-	 * 
-	 * @param input
-	 *            org.eclipse.ui.internal.browser.IWebBrowserEditorInput
-	 * @return boolean
-	 */
-	public boolean canReplaceInput(WebBrowserEditorInput input) {
-		Trace.trace(Trace.FINEST, "canReplaceInput " + this + " " + input); //$NON-NLS-1$ //$NON-NLS-2$
-		// if ((style & FORCE_NEW_PAGE) != 0)
-		// return false;
-		// if (input.isToolbarVisible() != isToolbarVisible())
-		// return false;
-		// else
-		if (input.isStatusbarVisible() != isStatusbarVisible())
-			return false;
-		else if (id != null) {
-			String bid = input.getBrowserId();
-			return id.equals(bid);
-		} else
-			return false;
-	}
-
-	/**
-	 * Creates an <code>IElement</code> from the state captured within an
-	 * <code>IMemento</code>.
-	 * 
-	 * @param memento
-	 *            a memento containing the state for an element
-	 * @return an element, or <code>null</code> if the element could not be
-	 *         created
-	 */
-	public IAdaptable createElement(IMemento memento) {
-		int style = 0;
-		Integer integer = memento.getInteger(MEMENTO_STYLE);
-		if (integer != null) {
-			style = integer.intValue();
-		}
-
-		URL url = null;
-		String str = memento.getString(MEMENTO_URL);
-		if (str != null) {
-			try {
-				url = new URL(str);
-			}
-			catch (MalformedURLException e) {
-				String msg = "Malformed URL while initializing browser editor"; //$NON-NLS-1$
-				WebBrowserUIPlugin.logError(msg, e);
-			}
-		}
-
-		String id = memento.getString(MEMENTO_ID);
-		String name = memento.getString(MEMENTO_NAME);
-		String tooltip = memento.getString(MEMENTO_TOOLTIP);
-		
-		WebBrowserEditorInput input = new WebBrowserEditorInput(url, style, id);
-		input.setName(name);
-		input.setToolTipText(tooltip);
-		return input;
-	}
-
-	/**
-	 * 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) {
-		memento.putInteger(MEMENTO_STYLE, style);
-		if ((style & IWorkbenchBrowserSupport.PERSISTENT) != 0 && url != null) {
-			memento.putString(MEMENTO_URL, url.toExternalForm());
-		}
-		if (id != null) {
-			memento.putString(MEMENTO_ID, id);
-		}
-		if (name != null) {
-			memento.putString(MEMENTO_NAME, name);
-		}
-		if (tooltip != null) {
-			memento.putString(MEMENTO_TOOLTIP, tooltip);
-		}
-	}
-
-	/**
-	 * Converts this object to a string.
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		return "WebBrowserEditorInput[" + url + " " + style + " " + id + "]";  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-	}
-}
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 b1a9899..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreferencePage.java
+++ /dev/null
@@ -1,610 +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(SWT.FILL, SWT.FILL, true, false);
-		composite.setLayoutData(data);
-
-		Label label = new Label(composite, SWT.WRAP);
-		label.setText(Messages.preferenceWebBrowserDescription);
-		data = new GridData(SWT.FILL, SWT.NONE, false, false);
-		data.horizontalSpan = 2;
-		data.widthHint = 275;
-		label.setLayoutData(data);
-
-		internal = new Button(composite, SWT.RADIO);
-		internal.setText(Messages.prefInternalBrowser);
-		data = new GridData(SWT.FILL, SWT.NONE, true, false);
-		data.horizontalSpan = 2;
-		internal.setLayoutData(data);
-
-		if (!WebBrowserUtil.canUseInternalWebBrowser())
-			internal.setEnabled(false);
-
-		external = new Button(composite, SWT.RADIO);
-		external.setText(Messages.prefExternalBrowser);
-		data = new GridData(SWT.FILL, SWT.NONE, true, false);
-		data.horizontalSpan = 2;
-		external.setLayoutData(data);
-
-		label = new Label(composite, SWT.NONE);
-		label.setText(Messages.browserList);
-		data = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-
-		table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL
-				| SWT.H_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION);
-		data = new GridData(SWT.FILL, SWT.FILL, true, true);
-		table.setLayoutData(data);
-		table.setHeaderVisible(false);
-		table.setLinesVisible(false);
-
-		TableLayout tableLayout = new TableLayout();
-		new TableColumn(table, SWT.NONE);
-		tableLayout.addColumnData(new ColumnWeightData(100));
-		table.setLayout(tableLayout);
-
-		tableViewer = new CheckboxTableViewer(table);
-		tableViewer.setContentProvider(new BrowserContentProvider());
-		tableViewer.setLabelProvider(new BrowserTableLabelProvider());
-		tableViewer.setInput("root"); //$NON-NLS-1$
-
-		// uncheck any other elements that might be checked and leave only the
-		// element checked to remain checked since one can only chose one
-		// brower at a time to be current.
-		tableViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent e) {
-				checkNewDefaultBrowser(e.getElement());
-				checkedBrowser = (IBrowserDescriptor) e.getElement();
-				
-				// if no other browsers are checked, don't allow the single one
-				// currently checked to become unchecked, and lose a current
-				// browser. That is, don't permit unchecking if no other item
-				// is checked which is supposed to be the case.
-				Object[] obj = tableViewer.getCheckedElements();
-				if (obj.length == 0)
-					tableViewer.setChecked(e.getElement(), true);
-			}
-		});
-
-		// set a default, checked browser based on the current browser. If there
-		// is not a current browser, but the first item exists, use that instead.
-		// This will work currently until workbench shutdown, because current
-		// browser is not yet persisted.
-		checkedBrowser = BrowserManager.getInstance().getCurrentWebBrowser();
-		if (checkedBrowser != null)
-			tableViewer.setChecked(checkedBrowser, true);
-		else {
-			Object obj = tableViewer.getElementAt(0);
-			if (obj != null)
-				tableViewer.setChecked(obj, true);
-		}
-
-		tableViewer
-				.addSelectionChangedListener(new ISelectionChangedListener() {
-					public void selectionChanged(SelectionChangedEvent event) {
-						IStructuredSelection sele = ((IStructuredSelection) tableViewer
-								.getSelection());
-						boolean sel = sele.getFirstElement() != null &&
-								!(sele.getFirstElement() instanceof SystemBrowserDescriptor);
-						remove.setEnabled(sel);
-						edit.setEnabled(sel);
-					}
-				});
-
-		tableViewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				IStructuredSelection sel = ((IStructuredSelection) tableViewer
-						.getSelection());
-				Object firstElem = sel.getFirstElement();
-				if (firstElem != null && !(firstElem instanceof SystemBrowserDescriptor)) {
-					IBrowserDescriptor browser2 = (IBrowserDescriptor) sel
-							.getFirstElement();
-					IBrowserDescriptorWorkingCopy wc = browser2
-							.getWorkingCopy();
-					BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(
-							getShell(), wc);
-					if (dialog.open() != Window.CANCEL) {
-						try {
-							tableViewer.refresh(wc.save());
-						} catch (Exception ex) {
-							// ignore
-						}
-					}
-				}
-			}
-		});
-
-		table.addKeyListener(new KeyListener() {
-			public void keyPressed(KeyEvent e) {
-				if (e.character == SWT.DEL) {
-					IStructuredSelection sel = ((IStructuredSelection) tableViewer
-							.getSelection());
-					if (sel.getFirstElement() != null) {
-						IBrowserDescriptor browser2 = (IBrowserDescriptor) sel
-								.getFirstElement();
-						try {
-							browser2.delete();
-							tableViewer.remove(browser2);
-
-							// need here to ensure that if the item deleted was
-							// checked, ie. was
-							// the current browser, that the new current browser
-							// will be the first in the
-							// list, typically, the internal browser, which
-							// cannot be
-							// deleted, and be current
-							BrowserManager manager = BrowserManager.getInstance();
-							if (browser2 == checkedBrowser) {
-								if (manager.browsers.size() > 0) {
-									checkedBrowser = (IBrowserDescriptor) manager.browsers.get(0);
-									tableViewer.setChecked(checkedBrowser, true);
-								}
-							}
-						} catch (Exception ex) {
-							// ignore
-						}
-					}
-				}
-			}
-
-			public void keyReleased(KeyEvent e) {
-				// ignore
-			}
-		});
-
-		Composite buttonComp = new Composite(composite, SWT.NONE);
-		layout = new GridLayout();
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = convertVerticalDLUsToPixels(3);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 1;
-		buttonComp.setLayout(layout);
-		data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.VERTICAL_ALIGN_FILL);
-		buttonComp.setLayoutData(data);
-
-		final Button add = SWTUtil.createButton(buttonComp, Messages.add);
-		add.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(
-						getShell());
-				if (dialog.open() == Window.CANCEL)
-					return;
-				tableViewer.refresh();
-				if (checkedBrowser != null)
-					tableViewer.setChecked(checkedBrowser, true);
-			}
-		});
-
-		edit = SWTUtil.createButton(buttonComp, Messages.edit);
-		edit.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				IStructuredSelection sel = ((IStructuredSelection) tableViewer
-						.getSelection());
-				IBrowserDescriptor browser2 = (IBrowserDescriptor) sel
-						.getFirstElement();
-				IBrowserDescriptorWorkingCopy wc = browser2.getWorkingCopy();
-				BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(
-						getShell(), wc);
-				if (dialog.open() != Window.CANCEL) {
-					try {
-						tableViewer.refresh(wc.save());
-					} catch (Exception ex) {
-						// ignore
-					}
-				}
-			}
-		});
-
-		remove = SWTUtil.createButton(buttonComp, Messages.remove);
-		remove.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				IStructuredSelection sel = ((IStructuredSelection) tableViewer
-						.getSelection());
-				IBrowserDescriptor browser2 = (IBrowserDescriptor) sel
-						.getFirstElement();
-				try {
-					browser2.delete();
-					tableViewer.remove(browser2);
-
-					// need here to ensure that if the item deleted was checked,
-					// ie. was
-					// the current browser, that the new current browser will be
-					// the first in the
-					// list, typically, the internal browser, which cannot be
-					// deleted, and be current
-					BrowserManager manager = BrowserManager.getInstance();
-					if (browser2 == checkedBrowser) {
-						if (manager.browsers.size() > 0) {
-							checkedBrowser = (IBrowserDescriptor) manager.browsers.get(0);
-							tableViewer.setChecked(checkedBrowser, true);
-						}
-					}
-				} catch (Exception ex) {
-					// ignore
-				}
-			}
-		});
-
-		search = SWTUtil.createButton(buttonComp, Messages.search);
-		data = (GridData) search.getLayoutData();
-		data.verticalIndent = 9;
-		search.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				final List foundBrowsers = new ArrayList();
-				final List existingPaths = WebBrowserUtil
-						.getExternalBrowserPaths();
-
-				// select a target directory for the search
-				DirectoryDialog dialog = new DirectoryDialog(getShell());
-				dialog.setMessage(Messages.selectDirectory);
-				dialog.setText(Messages.directoryDialogTitle);
-
-				String path = dialog.open();
-				if (path == null)
-					return;
-
-				final File rootDir = new File(path);
-				ProgressMonitorDialog pm = new ProgressMonitorDialog(getShell());
-
-				IRunnableWithProgress r = new IRunnableWithProgress() {
-					public void run(IProgressMonitor monitor) {
-						monitor.beginTask(Messages.searchingTaskName,
-								IProgressMonitor.UNKNOWN);
-						search(rootDir, existingPaths, foundBrowsers, monitor);
-						monitor.done();
-					}
-				};
-
-				try {
-					pm.run(true, true, r);
-				} catch (InvocationTargetException ex) {
-					Trace.trace(Trace.SEVERE,
-							"Invocation Exception occured running monitor: " //$NON-NLS-1$
-									+ ex);
-				} catch (InterruptedException ex) {
-					Trace.trace(Trace.SEVERE,
-							"Interrupted exception occured running monitor: " //$NON-NLS-1$
-									+ ex);
-					return;
-				}
-
-				if (pm.getProgressMonitor().isCanceled())
-					return;
-
-				List browsersToCreate = foundBrowsers;
-
-				if (browsersToCreate == null) // cancelled
-					return;
-
-				if (browsersToCreate.isEmpty()) { // no browsers found
-					WebBrowserUtil.openMessage(Messages.searchingNoneFound);
-					return;
-				}
-
-				Iterator iterator = browsersToCreate.iterator();
-				while (iterator.hasNext()) {
-					IBrowserDescriptorWorkingCopy browser2 = (IBrowserDescriptorWorkingCopy) iterator
-							.next();
-					browser2.save();
-				}
-				tableViewer.refresh();
-				
-				if (checkedBrowser != null)
-					tableViewer.setChecked(checkedBrowser, true);
-			}
-		});
-
-		tableViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent e) {
-				checkNewDefaultBrowser(e.getElement());
-				checkedBrowser = (IBrowserDescriptor) e
-						.getElement();
-			}
-		});
-
-		/*external.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				boolean sel = !tableViewer.getSelection().isEmpty();
-				edit.setEnabled(sel);
-				remove.setEnabled(sel);
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// ignore
-			}
-		});*/
-		internal.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.INTERNAL);
-		external.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.EXTERNAL);
-
-		//boolean sel = !tableViewer.getSelection().isEmpty();
-		IStructuredSelection sele = ((IStructuredSelection) tableViewer
-				.getSelection());
-		boolean sel = sele.getFirstElement() != null &&
-				!(sele.getFirstElement() instanceof SystemBrowserDescriptor);
-		edit.setEnabled(sel);
-		remove.setEnabled(sel);
-
-		Dialog.applyDialogFont(composite);
-
-		return composite;
-	}
-
-	/**
-	 * Initializes this preference page using the passed workbench.
-	 * 
-	 * @param workbench
-	 *            the current workbench
-	 */
-	public void init(IWorkbench workbench) {
-		// do nothing
-	}
-
-	/**
-	 * 
-	 */
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setTitle(Messages.preferenceWebBrowserTitle);
-	}
-
-	protected Object getSelection(ISelection sel2) {
-		IStructuredSelection sel = (IStructuredSelection) sel2;
-		return sel.getFirstElement();
-	}
-
-	// Uncheck all the items except the current one that was just checked
-	protected void checkNewDefaultBrowser(Object browser) {
-		TableItem[] children = tableViewer.getTable().getItems();
-		for (int i = 0; i < children.length; i++) {
-			TableItem item = children[i];
-
-			if (!(item.getData().equals(browser)))
-				item.setChecked(false);
-		}
-	}
-
-	protected static void search(File directory, List existingPaths,
-			List foundBrowsers, IProgressMonitor monitor) {
-		if (monitor.isCanceled())
-			return;
-
-		monitor.subTask(NLS.bind(Messages.searching,
-				new String[] { Integer.toString(foundBrowsers.size()), directory.getAbsolutePath()}));
-		
-		String[] names = directory.list();
-		List subDirs = new ArrayList();
-
-		for (int i = 0; i < names.length; i++) {
-			if (monitor.isCanceled())
-				return;
-
-			File file = new File(directory, names[i]);
-
-			if (existingPaths.contains(file.getAbsolutePath().toLowerCase()))
-				continue;
-
-			IBrowserDescriptorWorkingCopy wc = WebBrowserUtil
-					.createExternalBrowser(file);
-			if (wc != null)
-				foundBrowsers.add(wc);
-			
-			if (file.isDirectory()) {
-				if (monitor.isCanceled())
-					return;
-				subDirs.add(file);
-			}
-		}
-		while (!subDirs.isEmpty()) {
-			File subDir = (File) subDirs.remove(0);
-			search(subDir, existingPaths, foundBrowsers, monitor);
-			if (monitor.isCanceled()) {
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Performs special processing when this page's Defaults button has been
-	 * pressed.
-	 */
-	protected void performDefaults() {
-		internal.setSelection(WebBrowserPreference
-				.isDefaultUseInternalBrowser());
-		external.setSelection(!WebBrowserPreference.
-				isDefaultUseInternalBrowser());
-		
-		BrowserManager.getInstance().currentBrowser = null;
-		BrowserManager.getInstance().setupDefaultBrowsers();
-		tableViewer.refresh();
-		
-		checkedBrowser = BrowserManager.getInstance().getCurrentWebBrowser();
-		if (checkedBrowser != null)
-			tableViewer.setChecked(checkedBrowser, true);
-		
-		super.performDefaults();
-	}
-
-	/**
-	 * Method declared on IPreferencePage. Subclasses should override
-	 */
-	public boolean performOk() {
-		int choice;
-		if (internal.getSelection())
-			choice = WebBrowserPreference.INTERNAL;
-		else
-			choice = WebBrowserPreference.EXTERNAL;
-		WebBrowserPreference.setBrowserChoice(choice);
-		if (checkedBrowser != null)
-			BrowserManager.getInstance().setCurrentWebBrowser(checkedBrowser);
-
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUIPlugin.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUIPlugin.java
deleted file mode 100644
index 79a969b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUIPlugin.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-/**
- * The main web browser plugin class.
- */
-public class WebBrowserUIPlugin extends AbstractUIPlugin {
-	// Web browser plugin id
-	public static final String PLUGIN_ID = "org.eclipse.ui.browser"; //$NON-NLS-1$
-
-	// singleton instance of this class
-	private static WebBrowserUIPlugin singleton;
-	
-	// cached copy of all browsers
-	private static List browsers;
-
-	/**
-	 * Create the WebBrowserUIPlugin
-	 */
-	public WebBrowserUIPlugin() {
-		super();
-		singleton = this;
-	}
-
-	/**
-	 * Returns the singleton instance of this plugin.
-	 *
-	 * @return org.eclipse.ui.internal.browser.WebBrowserPlugin
-	 */
-	public static WebBrowserUIPlugin getInstance() {
-		return singleton;
-	}
-
-	/**
-	 * Shuts down this plug-in and saves all plug-in state.
-	 *
-	 * @exception Exception
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		BrowserManager.safeDispose();
-	}
-	
-	/**
-	 * Returns an array of all known browers.
-	 * <p>
-	 * A new array is returned on each call, so clients may store or modify the result.
-	 * </p>
-	 * 
-	 * @return a possibly-empty array of browser instances {@link IClient}
-	 */
-	public static IBrowserExt[] getBrowsers() {
-		if (browsers == null)
-			loadBrowsers();
-		IBrowserExt[] c = new IBrowserExt[browsers.size()];
-		browsers.toArray(c);
-		return c;
-	}
-	
-	public static IBrowserExt findBrowsers(String executable) {
-		IBrowserExt[] browsers2 = getBrowsers();
-		if (browsers2 == null || executable == null)
-			return null;
-		
-		int ind1 = executable.lastIndexOf("/"); //$NON-NLS-1$
-		int ind2 = executable.lastIndexOf("\\"); //$NON-NLS-1$
-		if (ind2 > ind1)
-			ind1 = ind2;
-		executable = executable.substring(ind1 + 1);
-		
-		String os = Platform.getOS();
-		int size = browsers2.length;
-		for (int i = 0; i < size; i++) {
-			if (browsers2[i].getOS().toLowerCase().indexOf(os) != -1) {
-				if (browsers2[i].isAvailable()) {
-					String executable2 = browsers2[i].getExecutable();
-					if (executable.startsWith(executable2))
-						return browsers2[i];
-				}
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Load the browsers extension point.
-	 */
-	private static synchronized void loadBrowsers() {
-		if (browsers != null)
-			return;
-		Trace.trace(Trace.CONFIG, "->- Loading .browsers extension point ->-"); //$NON-NLS-1$
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IConfigurationElement[] cf = registry.getConfigurationElementsFor(PLUGIN_ID, "browsers"); //$NON-NLS-1$
-
-		int size = cf.length;
-		browsers = new ArrayList(size);
-		for (int i = 0; i < size; i++) {
-			try {
-				browsers.add(new BrowserExt(cf[i]));
-				Trace.trace(Trace.CONFIG, "  Loaded browser: " + cf[i].getAttribute("id")); //$NON-NLS-1$ //$NON-NLS-2$
-			} catch (Throwable t) {
-				Trace.trace(Trace.SEVERE, "  Could not load browser: " + cf[i].getAttribute("id"), t); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		Trace.trace(Trace.CONFIG, "-<- Done loading .browsers extension point -<-"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Logs an Error message with an exception. Note that the message should
-	 * already be localized to proper locale. ie: Resources.getString() should
-	 * already have been called
-	 */
-	public static synchronized void logError(String message, Throwable ex) {
-		if (message == null)
-			message = ""; //$NON-NLS-1$
-		Status errorStatus = new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK,
-				message, ex);
-		WebBrowserUIPlugin.getInstance().getLog().log(errorStatus);
-	}
-
-	/**
-	 * Logs a Warning message with an exception. Note that the message should
-	 * already be localized to proper local. ie: Resources.getString() should
-	 * already have been called
-	 */
-	/*public static synchronized void logWarning(String message) {
-		if (WebBrowserUIPlugin.DEBUG) {
-			if (message == null)
-				message = ""; //$NON-NLS-1$
-			Status warningStatus = new Status(IStatus.WARNING, PLUGIN_ID,
-					IStatus.OK, message, null);
-			WebBrowserUIPlugin.getInstance().getLog().log(warningStatus);
-		}
-	}*/
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUtil.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUtil.java
deleted file mode 100644
index 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 1de40be..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaBrowser.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser.browsers;
-
-import java.io.*;
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-import org.eclipse.ui.internal.browser.WebBrowserUtil;
-/**
- * Browser adapter for browsers supporting -remote openURL command line option
- * i.e. Mozilla and Netscape.
- */
-public class MozillaBrowser extends AbstractWebBrowser {
-	// delay that it takes mozilla to start responding
-	// to remote command after mozilla has been called
-	protected static final int DELAY = 5000;
-
-	protected long browserFullyOpenedAt = 0;
-
-	private BrowserThread lastBrowserThread = null;
-
-	protected String executable;
-	
-	protected boolean firstLaunch = true;
-
-	/**
-	 * 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 = null;
-		if (url2 != null) {
-			url = url2.toExternalForm();
-			// change spaces to "%20"
-			if (url != null & WebBrowserUtil.isWindows()) {
-				int index = url.indexOf(" "); //$NON-NLS-1$
-				while (index >= 0) {
-					url = url.substring(0, index) + "%20" //$NON-NLS-1$
-							+ url.substring(index + 1);
-					index = url.indexOf(" "); //$NON-NLS-1$
-				}
-			}
-		}
-		else {
-			url = ""; //$NON-NLS-1$
-		}
-		if (lastBrowserThread != null)
-			lastBrowserThread.exitRequested = true;
-
-		lastBrowserThread = new BrowserThread(url);
-		lastBrowserThread.setDaemon(true);
-		lastBrowserThread.start();
-	}
-
-	private class BrowserThread extends Thread {
-		public boolean exitRequested = false;
-
-		private String url;
-
-		public BrowserThread(String urlName) {
-			this.url = urlName;
-		}
-
-		/**
-		 * @param browserCmd
-		 * @return int 0 if success
-		 */
-		private int openBrowser(String browserCmd) {
-			try {
-				Process pr = Runtime.getRuntime().exec(browserCmd);
-				StreamConsumer outputs = new StreamConsumer(pr.getInputStream());
-				(outputs).start();
-				StreamConsumer errors = new StreamConsumer(pr.getErrorStream());
-				(errors).start();
-				pr.waitFor();
-				int ret = pr.exitValue();
-
-				if (ret == 0 && errorsInOutput(outputs, errors)) {
-					return -1;
-				}
-				return ret;
-			} catch (InterruptedException e) {
-				// ignore
-			} catch (IOException e) {
-				WebBrowserUIPlugin.logError("Launching " + executable //$NON-NLS-1$
-					+ " has failed.", e); //$NON-NLS-1$
-				// TODO: log error
-				/*String msg = HelpBaseResources.getString(
-						"MozillaBrowser.executeFailed", //$NON-NLS-1$
-						executableName);
-				BaseHelpSystem.getDefaultErrorUtil()
-						.displayError(msg, uiThread);*/
-				// return success, so second command does not execute
-				return 0;
-			}
-			return -1;
-		}
-
-		/**
-		 * On some OSes 0 is always returned by netscape -remote. It is
-		 * necessary to examine ouput to find out failure
-		 * 
-		 * @param outputs
-		 * @param errors
-		 * @return @throws
-		 *         InterruptedException
-		 */
-		private boolean errorsInOutput(StreamConsumer outputs,
-				StreamConsumer errors) {
-			try {
-				outputs.join(1000);
-				if (outputs.getLastLine() != null
-						&& (outputs.getLastLine().indexOf(
-								"No running window found") //$NON-NLS-1$
-						>= 0 || outputs.getLastLine().indexOf(
-								"not running on display") //$NON-NLS-1$
-						>= 0)) {
-					return true;
-				}
-				errors.join(1000);
-				if (errors.getLastLine() != null
-						&& (errors.getLastLine().indexOf(
-								"No running window found") //$NON-NLS-1$
-						>= 0 || errors.getLastLine().indexOf(
-								"not running on display") //$NON-NLS-1$
-						>= 0)) {
-					return true;
-				}
-			} catch (InterruptedException ie) {
-				// ignore
-			}
-			return false;
-		}
-
-		public void run() {
-			// if browser is opening, wait until it fully opens
-			waitForBrowser();
-			if (exitRequested)
-				return;
-			if (firstLaunch && Platform.OS_WIN32.equals(Platform.getOS())) {
-				if (openBrowser(executable + " " + 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 6952a8a..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser.macosx;
-
-import java.io.*;
-import java.net.URL;
-
-import org.eclipse.ui.browser.AbstractWebBrowser;
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-
-public class DefaultBrowser extends AbstractWebBrowser {
-
-	public DefaultBrowser(String id) {
-		super(id);
-	}
-
-	/**
-	 * @see org.eclipse.help.browser.IBrowser#displayURL(String)
-	 */
-	public void openURL(URL url2) {
-		String url = url2.toExternalForm();
-		/*
-		 * Code from Marc-Antoine Parent
-		 */
-		try {
-			Runtime.getRuntime().exec(new String[] { "/usr/bin/osascript", //$NON-NLS-1$
-					"-e", //$NON-NLS-1$
-					"open location \"" + url + "\"" }); //$NON-NLS-1$ //$NON-NLS-2$
-		} catch (IOException ioe) {
-			WebBrowserUIPlugin.logError("Launching \"osascript\" has failed.", ioe); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowserFactory.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowserFactory.java
deleted file mode 100644
index 0810f9b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowserFactory.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser.macosx;
-
-import org.eclipse.ui.browser.BrowserFactory;
-import org.eclipse.ui.browser.IWebBrowser;
-
-public class DefaultBrowserFactory extends BrowserFactory {
-	/*
-	 * @see BrowserFactory#createBrowser()
-	 */
-	public IWebBrowser createBrowser(String id, String location, String parameters) {
-		return new DefaultBrowser(id);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowser.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowser.java
deleted file mode 100644
index 6d8b876..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowser.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser.macosx;
-
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-import org.eclipse.ui.internal.browser.browsers.DefaultBrowser;
-
-public class SafariBrowser extends DefaultBrowser {
-	
-	public SafariBrowser(String id, String location, String parameters) {
-		super(id, location, parameters);
-		this.location = location;
-		this.parameters = parameters;
-	}
-
-	/**
-	 * Creates the final command to launch.
-	 * 
-	 * @param path
-	 * @param url
-	 * @return String[]
-	 */
-	protected String[] prepareCommand(String path, String url) {
-		if (url != null && url.toLowerCase().startsWith("file:")) { //$NON-NLS-1$
-			url = url.substring(5);
-		}
-		
-		ArrayList tokenList = new ArrayList();
-		//Divide along quotation marks
-		StringTokenizer qTokenizer = new StringTokenizer(path.trim(),
-			"\"", true); //$NON-NLS-1$
-		boolean withinQuotation = false;
-		String quotedString = ""; //$NON-NLS-1$
-		while (qTokenizer.hasMoreTokens()) {
-			String curToken = qTokenizer.nextToken();
-			if (curToken.equals("\"")) { //$NON-NLS-1$
-				if (withinQuotation) {
-					// quotes prevent launching on Unix 35673
-					tokenList.add(quotedString);
-				} else {
-					quotedString = ""; //$NON-NLS-1$
-				}
-				withinQuotation = !withinQuotation;
-				continue;
-			} else if (withinQuotation) {
-				quotedString = curToken;
-				continue;
-			} else {
-				//divide unquoted strings along white space
-				StringTokenizer parser = new StringTokenizer(curToken.trim());
-				while (parser.hasMoreTokens()) {
-					tokenList.add(parser.nextToken());
-				}
-			}
-		}
-		// substitute %1 by url
-		boolean substituted = false;
-		for (int i = 0; i < tokenList.size(); i++) {
-			String token = (String) tokenList.get(i);
-			String newToken = doSubstitutions(token, url);
-			if (newToken != null) {
-				tokenList.set(i, newToken);
-				substituted = true;
-			}
-		}
-		// add the url if not substituted already
-		if (!substituted)
-			tokenList.add(url);
-
-		String[] command = new String[tokenList.size()];
-		tokenList.toArray(command);
-		return command;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowserFactory.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowserFactory.java
deleted file mode 100644
index 41d8312..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowserFactory.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.browser.macosx;
-
-import org.eclipse.ui.browser.BrowserFactory;
-import org.eclipse.ui.browser.IWebBrowser;
-
-public class SafariBrowserFactory extends BrowserFactory {
-	/*
-	 * @see BrowserFactory#createBrowser()
-	 */
-	public IWebBrowser createBrowser(String id, String location, String parameters) {
-		return new SafariBrowser(id, location, parameters);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.carbon/.classpath b/bundles/org.eclipse.ui.carbon/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.ui.carbon/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.carbon/.cvsignore b/bundles/org.eclipse.ui.carbon/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.carbon/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.carbon/.project b/bundles/org.eclipse.ui.carbon/.project
deleted file mode 100644
index 5406e13..0000000
--- a/bundles/org.eclipse.ui.carbon/.project
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.carbon</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.help</project>
-		<project>org.eclipse.ui</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ef556a6..0000000
--- a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,79 +0,0 @@
-#Mon Feb 06 11:16:35 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9e97fa0..0000000
--- a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Jul 18 11:56:01 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.1\n *\n * ${tags}\n */</template><template context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 42b98f6..0000000
--- a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:10:56 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.carbon/.template b/bundles/org.eclipse.ui.carbon/.template
deleted file mode 100644
index d65e0f4..0000000
--- a/bundles/org.eclipse.ui.carbon/.template
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<form>
-   <p/><p><b>Tips on working with this plug-in project</b></p><li>For the view of the new plug-in at a glance, go to the <img href="pageImage"/><a href="OverviewPage">Overview</a>.</li><li>You can test the contributions of this plug-in by launching another instance of the workbench. On the <b>Run</b> menu, click <b>Run As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.run">Run-time Workbench</a> from the available choices.</li><li>You can add more functionality to this plug-in by adding extensions using the <a href="action.newExtension">New Extension Wizard</a>.</li><li>The plug-in project contains Java code that you can debug. Place breakpoints in Java classes. On the <b>Run</b> menu, select <b>Debug As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.debug">Run-time Workbench</a> from the available choices.</li>
-</form>
diff --git a/bundles/org.eclipse.ui.carbon/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.carbon/META-INF/MANIFEST.MF
deleted file mode 100644
index c5dce85..0000000
--- a/bundles/org.eclipse.ui.carbon/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.ui.carbon; singleton:=true
-Bundle-Version: 4.0.0.qualifier
-Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)"
-Bundle-Localization: fragment-carbon
-Eclipse-PlatformFilter: (osgi.ws=carbon)
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Export-Package: org.eclipse.ui.internal.carbon;x-internal:=true;uses:="org.eclipse.ui"
diff --git a/bundles/org.eclipse.ui.carbon/about.html b/bundles/org.eclipse.ui.carbon/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.carbon/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.carbon/build.properties b/bundles/org.eclipse.ui.carbon/build.properties
deleted file mode 100644
index 3e16318..0000000
--- a/bundles/org.eclipse.ui.carbon/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-bin.includes = fragment.xml,\
-               fragment-carbon.properties,\
-               META-INF/,\
-               .,\
-               about.html
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.carbon/fragment-carbon.properties b/bundles/org.eclipse.ui.carbon/fragment-carbon.properties
deleted file mode 100644
index cb3a1cf..0000000
--- a/bundles/org.eclipse.ui.carbon/fragment-carbon.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-providerName=Eclipse.org
-fragmentName=Eclipse UI MacOS X Enhancements
diff --git a/bundles/org.eclipse.ui.carbon/fragment.xml b/bundles/org.eclipse.ui.carbon/fragment.xml
deleted file mode 100644
index 2a881b8..0000000
--- a/bundles/org.eclipse.ui.carbon/fragment.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<fragment>
-
-   <extension
-         point="org.eclipse.ui.startup">
-      <startup
-            class="org.eclipse.ui.internal.carbon.CarbonUIEnhancer">
-      </startup>
-   </extension>
-   
-</fragment>
diff --git a/bundles/org.eclipse.ui.carbon/scripts/exportplugin.xml b/bundles/org.eclipse.ui.carbon/scripts/exportplugin.xml
deleted file mode 100644
index fe85497..0000000
--- a/bundles/org.eclipse.ui.carbon/scripts/exportplugin.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<project name="org.eclipse.ui.carbon" default="export" basedir="..">
-
-	<target name="init">
-		<tstamp/>
-		<property name="destdir" value="../../plugin-export" />
-		<property name="tempdir" value="../../tmp" />
-		<property name="plugin" value="org.eclipse.ui.carbon" />
-		<property name="plugin_version"  value="_3.1.0" />
-		<property name="dest"  value="${destdir}/${plugin}${plugin_version}" />
-		<property name="destjar"  value="${destdir}/${plugin}${plugin_version}.jar" />
-	</target>
-
-	<target name="build" depends="init">
-    	<eclipse.incrementalBuild project="${plugin}" kind="incr"/>
-	</target>
-
-	<target name="export" depends="build">
-		<delete dir="${tempdir}" />
-		<mkdir dir="${tempdir}" />
-		<mkdir dir="${destdir}" />
-		<delete file="${destjar}" />
-		<zip zipfile="${tempdir}/carbonsrc.zip">
-		    <fileset dir="src" />
-  		</zip>
-		<zip zipfile="${destjar}">
-			<fileset dir=".">
-			  <include name="fragment.xml" />
-			  <include name="fragment-carbon.properties" />
-			  <include name="META-INF/**" />
-			</fileset>
-			<fileset dir="bin" />
-			<fileset file="${tempdir}/carbonsrc.zip" />
-		</zip>
-		<delete file="${tempdir}/carbonsrc.zip" />
-	</target>
-</project>
diff --git a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/CarbonUIEnhancer.java b/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/CarbonUIEnhancer.java
deleted file mode 100755
index c38f1a7..0000000
--- a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/CarbonUIEnhancer.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.carbon;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.internal.Callback;
-import org.eclipse.swt.internal.carbon.HICommand;
-import org.eclipse.swt.internal.carbon.OS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IStartup;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.WorkbenchWindow;
-
-/**
- * The CarbonUIEnhancer provides the standard "About" and "Preference" menu items
- * and links them to the corresponding workbench commands. 
- * This must be done in a MacOS X fragment because SWT doesn't provide an abstraction
- * for the (MacOS X only) application menu and we have to use MacOS specific natives.
- * The fragment is for the org.eclipse.ui plugin because we need access to the
- * Workbench "About" and "Preference" actions.
- * 
- * @noreference this class is not intended to be referenced by any client.
- * @since 4.0
- */
-public class CarbonUIEnhancer implements IStartup {
-
-	/**
-	 * Class that is able to intercept and handle OS events from the toolbar and menu.
-	 * 
-	 * @since 3.1
-	 */
-    class Target {
-    	
-    	/**
-    	 * Process OS toolbar event.
-    	 * 
-    	 * @param nextHandler unused
-    	 * @param theEvent the OS event
-    	 * @param userData unused
-    	 * @return whether or not the event was handled by this processor
-    	 */
-		public int toolbarProc (int nextHandler, int theEvent, int userData) {
-			int eventKind = OS.GetEventKind (theEvent);
-			if (eventKind != OS.kEventWindowToolbarSwitchMode)
-				return OS.eventNotHandledErr;
-			
-			int [] theWindow = new int [1];
-			OS.GetEventParameter (theEvent, OS.kEventParamDirectObject, OS.typeWindowRef, null, 4, null, theWindow);
-			
-			int [] theRoot = new int [1];
-			OS.GetRootControl (theWindow [0], theRoot);
-			Widget widget = Display.getCurrent().findWidget(theRoot [0]);
-			
-			if (!(widget instanceof Shell)) {
-				return OS.eventNotHandledErr;
-			}
-			Shell shell = (Shell) widget;
-			IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
-					.getWorkbenchWindows();
-			for (int i = 0; i < windows.length; i++) {
-				if (windows[i].getShell() == shell) {
-					return runCommand("org.eclipse.ui.ToggleCoolbarAction"); //$NON-NLS-1$
-				}
-			}
-			return OS.eventNotHandledErr;
-		}
-
-		/**
-    	 * Process OS menu event.
-    	 * 
-    	 * @param nextHandler unused
-    	 * @param theEvent the OS event
-    	 * @param userData unused
-    	 * @return whether or not the event was handled by this processor
-    	 */
-        public int commandProc(int nextHandler, int theEvent, int userData) {
-            if (OS.GetEventKind(theEvent) == OS.kEventProcessCommand) {
-                HICommand command = new HICommand();
-                OS.GetEventParameter(theEvent, OS.kEventParamDirectObject,
-                        OS.typeHICommand, null, HICommand.sizeof, null, command);
-                switch (command.commandID) {
-                case kHICommandPreferences:
-                    return runAction("preferences"); //$NON-NLS-1$
-                case kHICommandAbout:
-                    return runAction("about"); //$NON-NLS-1$
-                default:
-                    break;
-                }
-            }
-            return OS.eventNotHandledErr;
-        }
-	}
-
-	private static final int kHICommandPreferences = ('p' << 24) + ('r' << 16) + ('e' << 8) + 'f';
-    private static final int kHICommandAbout = ('a' << 24) + ('b' << 16) + ('o' << 8) + 'u';
-    private static final int kHICommandServices = ('s' << 24) + ('e' << 16) + ('r' << 8) + 'v';
-    private static final int kHICommandHide = ('h' << 24) + ('i' << 16) + ('d' << 8) + 'e';
-    private static final int kHICommandQuit = ('q' << 24) + ('u' << 16) + ('i' << 8) + 't';
-
-    private static final String RESOURCE_BUNDLE = CarbonUIEnhancer.class.getPackage().getName() + ".Messages"; //$NON-NLS-1$
-	
-    private String fAboutActionName;
-    private String fQuitActionName;
-    private String fHideActionName;
-
-    /**
-     * Default constructor
-     */
-    public CarbonUIEnhancer() {
-        IProduct product = Platform.getProduct();
-        String productName = null;
-        if (product != null)
-            productName = product.getName();
-        
-		ResourceBundle resourceBundle = ResourceBundle.getBundle(RESOURCE_BUNDLE);
-		try {
-			if (productName != null) {
-				String format = resourceBundle.getString("AboutAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fAboutActionName= MessageFormat.format(format, new Object[] { productName } );
-			}
-			if (fAboutActionName == null)
-				fAboutActionName = resourceBundle.getString("AboutAction.name"); //$NON-NLS-1$
-		} catch (MissingResourceException e) {
-		}
-		
-		if (fAboutActionName == null)
-			fAboutActionName = "About"; //$NON-NLS-1$
-		
-		if (productName != null) {	
-			try {
-				// prime the format Hide <app name>
-				String format = resourceBundle.getString("HideAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fHideActionName = MessageFormat.format(format,
-							new Object[] { productName });
-
-			} catch (MissingResourceException e) {
-			}
-
-			try {
-				// prime the format Quit <app name>
-				String format = resourceBundle.getString("QuitAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fQuitActionName = MessageFormat.format(format,
-							new Object[] { productName });
-
-			} catch (MissingResourceException e) {
-			}
-		}
-		
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IStartup#earlyStartup()
-     */
-    public void earlyStartup() {
-        final Display display = Display.getDefault();
-        display.syncExec(new Runnable() {
-            public void run() {
-				hookApplicationMenu(display);
-				hookToolbarButtonCallback();
-				hookWorkbenchListener();
-				// modify all shells opened on startup
-				IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
-						.getWorkbenchWindows();
-				for (int i = 0; i < windows.length; i++) {
-					modifyWindowShell(windows[i]);
-				}
-			}
-        });
-    }
-
-    /**
-	 * Hooks a listener that tweaks newly opened workbench window shells with
-	 * the proper OS flags.
-	 * 
-	 * @since 3.2
-	 */
-    protected void hookWorkbenchListener() {
-		PlatformUI.getWorkbench().addWindowListener(new IWindowListener() {
-
-			public void windowActivated(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowDeactivated(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowClosed(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowOpened(IWorkbenchWindow window) {
-				modifyWindowShell(window);
-			}});
-	}
-
-    /**
-	 * Modify the given workbench window shell bits to show the toolbar toggle
-	 * button.
-	 * 
-	 * @param window
-	 *            the window to modify
-	 * @since 3.2
-	 */
-	protected void modifyWindowShell(IWorkbenchWindow window) {
-		// only add the button when either the coolbar or perspectivebar
-		// is initially visible. This is so that RCP apps can choose to use
-		// this fragment without fear that their explicitly invisble bars
-		// can't be shown.
-		boolean coolBarInitiallyVsible = ((WorkbenchWindow) window)
-				.getCoolBarVisible();
-		boolean perspectiveBarInitiallyVsible = ((WorkbenchWindow) window)
-				.getPerspectiveBarVisible();
-
-		if (coolBarInitiallyVsible || perspectiveBarInitiallyVsible) {
-			// modify the newly opened window with the correct OS X
-			// style bits such that it possesses the toolbar button
-			Shell shell = window.getShell();
-			int windowHandle = OS.GetControlOwner(shell.handle);
-			OS.ChangeWindowAttributes(windowHandle,
-					OS.kWindowToolbarButtonAttribute, 0);
-		}
-	}
-	
-	/**
-	 * Hook the window toolbar button to toggle the visibility of the coolbar
-	 * and perspective bar.
-	 * 
-	 * @since 3.2
-	 */
-    protected void hookToolbarButtonCallback() {
-		Object target = new Target();
-		
-	    final Callback commandCallback = new Callback(target, "toolbarProc", 3); //$NON-NLS-1$
-        int commandProc = commandCallback.getAddress();
-        if (commandProc == 0) {
-            commandCallback.dispose();
-            return; // give up
-        }
-        
-        int[] mask = new int[] { OS.kEventClassWindow, OS.kEventWindowToolbarSwitchMode };
-        OS.InstallEventHandler(OS.GetApplicationEventTarget(), commandProc,
-                mask.length / 2, mask, 0, null);
-		
-	}
-
-	/**
-     * See Apple Technical Q&A 1079 (http://developer.apple.com/qa/qa2001/qa1079.html)
-     */
-    private void hookApplicationMenu(Display display) {
-
-        // Callback target
-        Object target = new Target();
-
-        final Callback commandCallback = new Callback(target, "commandProc", 3); //$NON-NLS-1$
-        int commandProc = commandCallback.getAddress();
-        if (commandProc == 0) {
-            commandCallback.dispose();
-            return; // give up
-        }
-
-        // Install event handler for commands
-        int[] mask = new int[] { OS.kEventClassCommand, OS.kEventProcessCommand };
-        OS.InstallEventHandler(OS.GetApplicationEventTarget(), commandProc,
-                mask.length / 2, mask, 0, null);
-
-        // create About Eclipse menu command
-        int[] outMenu = new int[1];
-        short[] outIndex = new short[1];
-        if (OS.GetIndMenuItemWithCommandID(0, kHICommandPreferences, 1, outMenu, outIndex) == OS.noErr
-                && outMenu[0] != 0) {
-            int menu = outMenu[0];
-
-            // add the about action
-            int l = fAboutActionName.length();
-            char buffer[] = new char[l];
-            fAboutActionName.getChars(0, l, buffer, 0);
-            int str = OS.CFStringCreateWithCharacters(OS.kCFAllocatorDefault, buffer, l);
-            OS.InsertMenuItemTextWithCFString(menu, str, (short) 0, 0, kHICommandAbout);
-            OS.CFRelease(str);
-
-            // rename the hide action if we have an override string
-            if (fHideActionName != null) {
-				renameApplicationMenuItem(kHICommandHide, fHideActionName);
-			}
-            
-            // rename the quit action if we have an override string
-            if (fQuitActionName != null) {
-				renameApplicationMenuItem(kHICommandQuit, fQuitActionName);
-			}
-            
-            // add separator between About & Preferences
-            OS.InsertMenuItemTextWithCFString(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();
-            }
-        });
-    }
-
-	/**
-     * Rename the given application menu item.
-     *
-	 * @param itemConstant the kHI* constant for the menu item
-	 * @param replacementName the new name
-     * @since 3.4
-	 */
-	private void renameApplicationMenuItem(int itemConstant,
-			String replacementName) {
-		int l;
-		char[] buffer;
-		int str;
-		int[] itemMenu = new int[1];
-		short[] itemIndex = new short[1];
-
-		if (OS.GetIndMenuItemWithCommandID(0, itemConstant, 1,
-				itemMenu, itemIndex) == OS.noErr
-				&& itemMenu[0] != 0) {
-
-			l = replacementName.length();
-			buffer = new char[l];
-			replacementName.getChars(0, l, buffer, 0);
-			str = OS.CFStringCreateWithCharacters(
-					OS.kCFAllocatorDefault, buffer, l);
-
-			OS.SetMenuItemTextWithCFString(itemMenu[0],
-					itemIndex[0], str);
-
-			OS.CFRelease(str);
-		}
-	}
-
-    /**
-     * Locate an action with the given id in the current menubar and run it.
-     */
-    private int runAction(String actionId) {
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        if (window != null) {
-        	IMenuManager manager = ((WorkbenchWindow)window).getActionBars().getMenuManager();
-        	IAction action = findAction(actionId, manager);
-        	if (action != null && action.isEnabled()) {
-        		action.run();
-        		return OS.noErr;
-        	}
-        }
-        return OS.eventNotHandledErr;
-       
-    }
-    
-    private int runCommand(String commandId) {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return OS.eventNotHandledErr;
-		
-		IWorkbenchWindow activeWorkbenchWindow = workbench
-				.getActiveWorkbenchWindow();
-		if (activeWorkbenchWindow == null)
-			return OS.eventNotHandledErr;
-		
-		IHandlerService commandService = (IHandlerService) activeWorkbenchWindow
-				.getService(IHandlerService.class);
-
-		if (commandService != null) {
-			try {
-				commandService.executeCommand(commandId, null);
-				return OS.noErr;
-			} catch (ExecutionException e) {
-			} catch (NotDefinedException e) {
-			} catch (NotEnabledException e) {
-			} catch (NotHandledException e) {
-			}
-		}
-		return OS.eventNotHandledErr;
-	}
-
-    /**
-	 * Find the action with the given ID by recursivly crawling the provided
-	 * menu manager. If the action cannot be found <code>null</code> is
-	 * returned.
-	 * 
-	 * @param actionId
-	 *            the id to search for
-	 * @param manager
-	 *            the manager to search
-	 * @return the action or <code>null</code>
-	 */
-	private IAction findAction(String actionId, IMenuManager manager) {
-		IContributionItem[] items = manager.getItems();
-		for (int i = 0; i < items.length; i++) {
-			IContributionItem item = items[i];
-			if (item instanceof ActionContributionItem) {
-				ActionContributionItem aci = (ActionContributionItem) item;
-				String id = aci.getId();
-				if (id != null && id.equals(actionId))
-					return aci.getAction();
-			} else if (item instanceof IMenuManager) {
-				IAction found = findAction(actionId, (IMenuManager) item);
-				if (found != null)
-					return found;
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/Messages.properties b/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/Messages.properties
deleted file mode 100755
index 6d5c975..0000000
--- a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/Messages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-AboutAction.format=About {0}
-AboutAction.name=About
-HideAction.format=Hide {0}
-QuitAction.format=Quit {0}
diff --git a/bundles/org.eclipse.ui.forms/.classpath b/bundles/org.eclipse.ui.forms/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.forms/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.forms/.cvsignore b/bundles/org.eclipse.ui.forms/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.ui.forms/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/.options b/bundles/org.eclipse.ui.forms/.options
deleted file mode 100644
index e6dbf14..0000000
--- a/bundles/org.eclipse.ui.forms/.options
+++ /dev/null
@@ -1,4 +0,0 @@
-org.eclipse.ui.forms/debug=true
-org.eclipse.ui.forms/debug/text=true
-org.eclipse.ui.forms/debug/focus=true
-org.eclipse.ui.forms/debug/textsize=true
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/.project b/bundles/org.eclipse.ui.forms/.project
deleted file mode 100644
index 92c02b3..0000000
--- a/bundles/org.eclipse.ui.forms/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.forms</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.forms/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.forms/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 08ca140..0000000
--- a/bundles/org.eclipse.ui.forms/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Mon Feb 05 16:36:24 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF
deleted file mode 100644
index afdec96..0000000
--- a/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %name
-Bundle-SymbolicName: org.eclipse.ui.forms
-Bundle-Version: 3.3.101.qualifier
-Bundle-Vendor: %provider-name
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.forms,
- org.eclipse.ui.forms.editor,
- org.eclipse.ui.forms.events,
- org.eclipse.ui.forms.widgets,
- org.eclipse.ui.internal.forms;x-internal:=true,
- org.eclipse.ui.internal.forms.widgets;x-friends:="org.eclipse.ui.tests.forms"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.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
-Bundle-ActivationPolicy: lazy
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 a0ef5a1..0000000
--- a/bundles/org.eclipse.ui.forms/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 = plugin.properties,\
-               .,\
-               about.html,\
-               META-INF/,\
-               icons/
-source.. = src/
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/1.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/1.png
deleted file mode 100644
index 2147f79..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/1.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/2.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/2.png
deleted file mode 100644
index ac886be..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/2.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/3.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/3.png
deleted file mode 100644
index 0d8986b..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/3.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/4.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/4.png
deleted file mode 100644
index 9d64d75..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/4.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/5.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/5.png
deleted file mode 100644
index 12343e0..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/5.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/6.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/6.png
deleted file mode 100644
index 4d9f686..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/6.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/7.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/7.png
deleted file mode 100644
index 7648d33..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/7.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/8.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/8.png
deleted file mode 100644
index d8eabd7..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/8.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/plugin.properties b/bundles/org.eclipse.ui.forms/plugin.properties
deleted file mode 100644
index 3bdea13..0000000
--- a/bundles/org.eclipse.ui.forms/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# plugin.xml properties
-#
-
-name = Eclipse Forms
-provider-name = Eclipse.org
-
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java
deleted file mode 100644
index 86e797a..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-/**
- * AbstractFormPart implements IFormPart interface and can be used as a
- * convenient base class for concrete form parts. If a method contains
- * code that must be called, look for instructions to call 'super'
- * when overriding.
- * 
- * @see org.eclipse.ui.forms.widgets.Section
- * @since 3.0
- */
-public abstract class AbstractFormPart implements IFormPart {
-	private IManagedForm managedForm;
-	private boolean dirty = false;
-	private boolean stale = true;
-	/**
-	 * @see org.eclipse.ui.forms.IFormPart#initialize(org.eclipse.ui.forms.IManagedForm)
-	 */
-	public void initialize(IManagedForm form) {
-		this.managedForm = form;
-	}
-	/**
-	 * Returns the form that manages this part.
-	 * 
-	 * @return the managed form
-	 */
-	public IManagedForm getManagedForm() {
-		return managedForm;
-	}
-	/**
-	 * Disposes the part. Subclasses should override to release any system
-	 * resources.
-	 */
-	public void dispose() {
-	}
-	/**
-	 * Commits the part. Subclasses should call 'super' when overriding.
-	 * 
-	 * @param onSave
-	 *            <code>true</code> if the request to commit has arrived as a
-	 *            result of the 'save' action.
-	 */
-	public void commit(boolean onSave) {
-		dirty = false;
-	}
-	/**
-	 * Sets the overall form input. Subclases may elect to override the method
-	 * and adjust according to the form input.
-	 * 
-	 * @param input
-	 *            the form input object
-	 * @return <code>false</code>
-	 */
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-	/**
-	 * Instructs the part to grab keyboard focus.
-	 */
-	public void setFocus() {
-	}
-	/**
-	 * Refreshes the section after becoming stale (falling behind data in the
-	 * model). Subclasses must call 'super' when overriding this method.
-	 */
-	public void refresh() {
-		stale = false;
-		// since we have refreshed, any changes we had in the
-		// part are gone and we are not dirty
-		dirty = false;
-	}
-	/**
-	 * Marks the part dirty. Subclasses should call this method as a result of
-	 * user interaction with the widgets in the section.
-	 */
-	public void markDirty() {
-		dirty = true;
-		managedForm.dirtyStateChanged();
-	}
-	/**
-	 * Tests whether the part is dirty i.e. its widgets have state that is
-	 * newer than the data in the model.
-	 * 
-	 * @return <code>true</code> if the part is dirty, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isDirty() {
-		return dirty;
-	}
-	/**
-	 * Tests whether the part is stale i.e. its widgets have state that is
-	 * older than the data in the model.
-	 * 
-	 * @return <code>true</code> if the part is stale, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isStale() {
-		return stale;
-	}
-	/**
-	 * Marks the part stale. Subclasses should call this method as a result of
-	 * model notification that indicates that the content of the section is no
-	 * longer in sync with the model.
-	 */
-	public void markStale() {
-		stale = true;
-		managedForm.staleStateChanged();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java
deleted file mode 100644
index 0890fa7..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 384415e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormColors.java
+++ /dev/null
@@ -1,733 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import java.util.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.
-	 * 
-	 * @deprecated use <code>IFormColors.TITLE</code>.
-	 */
-	public static final String TITLE = IFormColors.TITLE;
-
-	/**
-	 * Key for the tree/table border color.
-	 * 
-	 * @deprecated use <code>IFormColors.BORDER</code>
-	 */
-	public static final String BORDER = IFormColors.BORDER;
-
-	/**
-	 * Key for the section separator color.
-	 * 
-	 * @deprecated use <code>IFormColors.SEPARATOR</code>.
-	 */
-	public static final String SEPARATOR = IFormColors.SEPARATOR;
-
-	/**
-	 * Key for the section title bar background.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_BG
-	 */
-	public static final String TB_BG = IFormColors.TB_BG;
-
-	/**
-	 * Key for the section title bar foreground.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_FG</code>
-	 */
-	public static final String TB_FG = IFormColors.TB_FG;
-
-	/**
-	 * Key for the section title bar gradient.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_GBG</code>
-	 */
-	public static final String TB_GBG = IFormColors.TB_GBG;
-
-	/**
-	 * Key for the section title bar border.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_BORDER</code>.
-	 */
-	public static final String TB_BORDER = IFormColors.TB_BORDER;
-
-	/**
-	 * Key for the section toggle color. Since 3.1, this color is used for all
-	 * section styles.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_TOGGLE</code>.
-	 */
-	public static final String TB_TOGGLE = IFormColors.TB_TOGGLE;
-
-	/**
-	 * Key for the section toggle hover color.
-	 * 
-	 * @since 3.1
-	 * @deprecated use <code>IFormColors.TB_TOGGLE_HOVER</code>.
-	 */
-	public static final String TB_TOGGLE_HOVER = IFormColors.TB_TOGGLE_HOVER;
-
-	protected Map colorRegistry = new HashMap(10);
-
-	protected Color background;
-
-	protected Color foreground;
-
-	private boolean shared;
-
-	protected Display display;
-
-	protected Color border;
-
-	/**
-	 * Creates form colors using the provided display.
-	 * 
-	 * @param display
-	 *            the display to use
-	 */
-	public FormColors(Display display) {
-		this.display = display;
-		initialize();
-	}
-
-	/**
-	 * Returns the display used to create colors.
-	 * 
-	 * @return the display
-	 */
-	public Display getDisplay() {
-		return display;
-	}
-
-	/**
-	 * Initializes the colors. Subclasses can override this method to change the
-	 * way colors are created. Alternatively, only the color table can be
-	 * modified by overriding <code>initializeColorTable()</code>.
-	 * 
-	 * @see #initializeColorTable
-	 */
-	protected void initialize() {
-		background = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-		foreground = display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-		initializeColorTable();
-		updateBorderColor();
-	}
-
-	/**
-	 * Allocates colors for the following keys: BORDER, SEPARATOR and
-	 * TITLE. Subclasses can override to allocate these colors differently.
-	 */
-	protected void initializeColorTable() {
-		createTitleColor();
-		createColor(IFormColors.SEPARATOR, getColor(IFormColors.TITLE).getRGB());
-		RGB black = getSystemColor(SWT.COLOR_BLACK);
-		RGB borderRGB = getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
-		createColor(IFormColors.BORDER, blend(borderRGB, black, 80));
-	}
-
-	/**
-	 * Allocates colors for the section tool bar (all the keys that start with
-	 * TB). Since these colors are only needed when TITLE_BAR style is used with
-	 * the Section widget, they are not needed all the time and are allocated on
-	 * demand. Consequently, this method will do nothing if the colors have been
-	 * already initialized. Call this method prior to using colors with the TB
-	 * keys to ensure they are available.
-	 */
-	public void initializeSectionToolBarColors() {
-		if (colorRegistry.containsKey(IFormColors.TB_BG))
-			return;
-		createTitleBarGradientColors();
-		createTitleBarOutlineColors();
-		createTwistieColors();
-	}
-
-	/**
-	 * Allocates additional colors for the form header, namely background
-	 * gradients, bottom separator keylines and DND highlights. Since these
-	 * colors are only needed for clients that want to use these particular
-	 * style of header rendering, they are not needed all the time and are
-	 * allocated on demand. Consequently, this method will do nothing if the
-	 * colors have been already initialized. Call this method prior to using
-	 * color keys with the H_ prefix to ensure they are available.
-	 * 
-	 * @since 3.3
-	 */
-	protected void initializeFormHeaderColors() {
-		if (colorRegistry.containsKey(IFormColors.H_BOTTOM_KEYLINE2))
-			return;
-		createFormHeaderColors();
-	}
-
-	/**
-	 * Returns the RGB value of the system color represented by the code
-	 * argument, as defined in <code>SWT</code> class.
-	 * 
-	 * @param code
-	 *            the system color constant as defined in <code>SWT</code>
-	 *            class.
-	 * @return the RGB value of the system color
-	 */
-	public RGB getSystemColor(int code) {
-		return getDisplay().getSystemColor(code).getRGB();
-	}
-
-	/**
-	 * Creates the color for the specified key using the provided RGB object.
-	 * The color object will be returned and also put into the registry. When
-	 * the class is disposed, the color will be disposed with it.
-	 * 
-	 * @param key
-	 *            the unique color key
-	 * @param rgb
-	 *            the RGB object
-	 * @return the allocated color object
-	 */
-	public Color createColor(String key, RGB rgb) {
-		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(IFormColors.BORDER);
-		else {
-			border = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			Color bg = getImpliedBackground();
-			if (border.getRed() == bg.getRed()
-					&& border.getGreen() == bg.getGreen()
-					&& border.getBlue() == bg.getBlue())
-				border = display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
-		}
-	}
-
-	/**
-	 * Sets the background color. All the toolkits that use this class will
-	 * share the same background.
-	 * 
-	 * @param bg
-	 *            background color
-	 */
-	public void setBackground(Color bg) {
-		this.background = bg;
-		updateBorderColor();
-		updateFormHeaderColors();
-	}
-
-	/**
-	 * Sets the foreground color. All the toolkits that use this class will
-	 * share the same foreground.
-	 * 
-	 * @param fg
-	 *            foreground color
-	 */
-	public void setForeground(Color fg) {
-		this.foreground = fg;
-	}
-
-	/**
-	 * Returns the current background color.
-	 * 
-	 * @return the background color
-	 */
-	public Color getBackground() {
-		return background;
-	}
-
-	/**
-	 * Returns the current foreground color.
-	 * 
-	 * @return the foreground color
-	 */
-	public Color getForeground() {
-		return foreground;
-	}
-
-	/**
-	 * Returns the computed border color. Border color depends on the background
-	 * and is recomputed whenever the background changes.
-	 * 
-	 * @return the current border color
-	 */
-	public Color getBorderColor() {
-		return border;
-	}
-
-	/**
-	 * Tests if the background is white. White background has RGB value
-	 * 255,255,255.
-	 * 
-	 * @return <samp>true</samp> if background is white, <samp>false</samp>
-	 *         otherwise.
-	 */
-	public boolean isWhiteBackground() {
-		Color bg = getImpliedBackground();
-		return bg.getRed() == 255 && bg.getGreen() == 255
-				&& bg.getBlue() == 255;
-	}
-
-	/**
-	 * Returns the color object for the provided key or <samp>null </samp> if
-	 * not in the registry.
-	 * 
-	 * @param key
-	 *            the color key
-	 * @return color object if found, or <samp>null </samp> if not.
-	 */
-	public Color getColor(String key) {
-		if (key.startsWith(IFormColors.TB_PREFIX))
-			initializeSectionToolBarColors();
-		else if (key.startsWith(IFormColors.H_PREFIX))
-			initializeFormHeaderColors();
-		return (Color) colorRegistry.get(key);
-	}
-
-	/**
-	 * Disposes all the colors in the registry.
-	 */
-	public void dispose() {
-		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);
-		 */
-		RGB bg = getImpliedBackground().getRGB();
-		RGB listSelection = getSystemColor(SWT.COLOR_LIST_SELECTION);
-		RGB listForeground = getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-		RGB rgb = listSelection;
-
-		// Group 1
-		// Rule: If at least 2 of the LIST_SELECTION RGB values are equal to or
-		// between 0 and 120, then use 100% LIST_SELECTION as it is (no
-		// additions)
-		// Examples: XP Default, Win Classic Standard, Win High Con White, Win
-		// Classic Marine
-		if (testTwoPrimaryColors(listSelection, -1, 121))
-			rgb = listSelection;
-		// Group 2
-		// When LIST_BACKGROUND = white (255, 255, 255) or not black, text
-		// colour = LIST_SELECTION @ 100% Opacity + 50% LIST_FOREGROUND over
-		// LIST_BACKGROUND
-		// Rule: If at least 2 of the LIST_SELECTION RGB values are equal to or
-		// between 121 and 255, then add 50% LIST_FOREGROUND to LIST_SELECTION
-		// foreground colour
-		// Examples: Win Vista, XP Silver, XP Olive , Win Classic Plum, OSX
-		// Aqua, OSX Graphite, Linux GTK
-		else if (testTwoPrimaryColors(listSelection, 120, 256)
-				|| (bg.red == 0 && bg.green == 0 && bg.blue == 0))
-			rgb = blend(listSelection, listForeground, 50);
-		// Group 3
-		// When LIST_BACKGROUND = black (0, 0, 0), text colour = LIST_SELECTION
-		// @ 100% Opacity + 50% LIST_FOREGROUND over LIST_BACKGROUND
-		// Rule: If LIST_BACKGROUND = 0, 0, 0, then add 50% LIST_FOREGROUND to
-		// LIST_SELECTION foreground colour
-		// Examples: Win High Con Black, Win High Con #1, Win High Con #2
-		// (covered in the second part of the OR clause above)
-		createColor(IFormColors.TITLE, rgb);
-	}
-
-	private void createTwistieColors() {
-		RGB rgb = getColor(IFormColors.TITLE).getRGB();
-		RGB white = getSystemColor(SWT.COLOR_WHITE);
-		createColor(TB_TOGGLE, rgb);
-		rgb = blend(rgb, white, 60);
-		createColor(TB_TOGGLE_HOVER, rgb);
-	}
-
-	private void createTitleBarGradientColors() {
-		RGB tbBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-		RGB bg = getImpliedBackground().getRGB();
-
-		// Group 1
-		// Rule: If at least 2 of the RGB values are equal to or between 180 and
-		// 255, then apply specified opacity for Group 1
-		// Examples: Vista, XP Silver, Wn High Con #2
-		// Gradient Bottom = TITLE_BACKGROUND @ 30% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		if (testTwoPrimaryColors(tbBg, 179, 256))
-			tbBg = blend(tbBg, bg, 30);
-
-		// Group 2
-		// Rule: If at least 2 of the RGB values are equal to or between 121 and
-		// 179, then apply specified opacity for Group 2
-		// Examples: XP Olive, OSX Graphite, Linux GTK, Wn High Con Black
-		// Gradient Bottom = TITLE_BACKGROUND @ 20% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		else if (testTwoPrimaryColors(tbBg, 120, 180))
-			tbBg = blend(tbBg, bg, 20);
-
-		// Group 3
-		// Rule: Everything else
-		// Examples: XP Default, Wn Classic Standard, Wn Marine, Wn Plum, OSX
-		// Aqua, Wn High Con White, Wn High Con #1
-		// Gradient Bottom = TITLE_BACKGROUND @ 10% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		else {
-			tbBg = blend(tbBg, bg, 10);
-		}
-
-		createColor(IFormColors.TB_BG, tbBg);
-		
-		// for backward compatibility
-		createColor(TB_GBG, tbBg);
-	}
-
-	private void createTitleBarOutlineColors() {
-		// title bar outline - border color
-		RGB tbBorder = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-		RGB bg = getImpliedBackground().getRGB();
-		// Group 1
-		// Rule: If at least 2 of the RGB values are equal to or between 180 and
-		// 255, then apply specified opacity for Group 1
-		// Examples: Vista, XP Silver, Wn High Con #2
-		// Keyline = TITLE_BACKGROUND @ 70% Opacity over LIST_BACKGROUND
-		if (testTwoPrimaryColors(tbBorder, 179, 256))
-			tbBorder = blend(tbBorder, bg, 70);
-
-		// Group 2
-		// Rule: If at least 2 of the RGB values are equal to or between 121 and
-		// 179, then apply specified opacity for Group 2
-		// Examples: XP Olive, OSX Graphite, Linux GTK, Wn High Con Black
-
-		// Keyline = TITLE_BACKGROUND @ 50% Opacity over LIST_BACKGROUND
-		else if (testTwoPrimaryColors(tbBorder, 120, 180))
-			tbBorder = blend(tbBorder, bg, 50);
-
-		// Group 3
-		// Rule: Everything else
-		// Examples: XP Default, Wn Classic Standard, Wn Marine, Wn Plum, OSX
-		// Aqua, Wn High Con White, Wn High Con #1
-
-		// Keyline = TITLE_BACKGROUND @ 30% Opacity over LIST_BACKGROUND
-		else {
-			tbBorder = blend(tbBorder, bg, 30);
-		}
-		createColor(FormColors.TB_BORDER, tbBorder);
-	}
-
-	private void updateFormHeaderColors() {
-		if (colorRegistry.containsKey(IFormColors.H_GRADIENT_END)) {
-			disposeIfFound(IFormColors.H_GRADIENT_END);
-			disposeIfFound(IFormColors.H_GRADIENT_START);
-			disposeIfFound(IFormColors.H_BOTTOM_KEYLINE1);
-			disposeIfFound(IFormColors.H_BOTTOM_KEYLINE2);
-			disposeIfFound(IFormColors.H_HOVER_LIGHT);
-			disposeIfFound(IFormColors.H_HOVER_FULL);
-			initializeFormHeaderColors();
-		}
-	}
-
-	private void disposeIfFound(String key) {
-		Color color = getColor(key);
-		if (color != null) {
-			colorRegistry.remove(key);
-			color.dispose();
-		}
-	}
-
-	private void createFormHeaderColors() {
-		createFormHeaderGradientColors();
-		createFormHeaderKeylineColors();
-		createFormHeaderDNDColors();
-	}
-
-	private void createFormHeaderGradientColors() {
-		RGB titleBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-		Color bgColor = getImpliedBackground();
-		RGB bg = bgColor.getRGB();
-		RGB bottom, top;
-		// Group 1
-		// Rule: If at least 2 of the RGB values are equal to or between 180 and
-		// 255, then apply specified opacity for Group 1
-		// Examples: Vista, XP Silver, Wn High Con #2
-		// Gradient Bottom = TITLE_BACKGROUND @ 30% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		if (testTwoPrimaryColors(titleBg, 179, 256)) {
-			bottom = blend(titleBg, bg, 30);
-			top = bg;
-		}
-
-		// Group 2
-		// Rule: If at least 2 of the RGB values are equal to or between 121 and
-		// 179, then apply specified opacity for Group 2
-		// Examples: XP Olive, OSX Graphite, Linux GTK, Wn High Con Black
-		// Gradient Bottom = TITLE_BACKGROUND @ 20% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		else if (testTwoPrimaryColors(titleBg, 120, 180)) {
-			bottom = blend(titleBg, bg, 20);
-			top = bg;
-		}
-
-		// Group 3
-		// Rule: If at least 2 of the RGB values are equal to or between 0 and
-		// 120, then apply specified opacity for Group 3
-		// Examples: XP Default, Wn Classic Standard, Wn Marine, Wn Plum, OSX
-		// Aqua, Wn High Con White, Wn High Con #1
-		// Gradient Bottom = TITLE_BACKGROUND @ 10% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		else {
-			bottom = blend(titleBg, bg, 10);
-			top = bg;
-		}
-		createColor(IFormColors.H_GRADIENT_END, top);
-		createColor(IFormColors.H_GRADIENT_START, bottom);
-	}
-
-	private void createFormHeaderKeylineColors() {
-		RGB titleBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-		Color bgColor = getImpliedBackground();
-		RGB bg = bgColor.getRGB();
-		RGB keyline2;
-		// H_BOTTOM_KEYLINE1
-		createColor(IFormColors.H_BOTTOM_KEYLINE1, new RGB(255, 255, 255));
-
-		// H_BOTTOM_KEYLINE2
-		// Group 1
-		// Rule: If at least 2 of the RGB values are equal to or between 180 and
-		// 255, then apply specified opacity for Group 1
-		// Examples: Vista, XP Silver, Wn High Con #2
-		// Keyline = TITLE_BACKGROUND @ 70% Opacity over LIST_BACKGROUND
-		if (testTwoPrimaryColors(titleBg, 179, 256))
-			keyline2 = blend(titleBg, bg, 70);
-
-		// Group 2
-		// Rule: If at least 2 of the RGB values are equal to or between 121 and
-		// 179, then apply specified opacity for Group 2
-		// Examples: XP Olive, OSX Graphite, Linux GTK, Wn High Con Black
-		// Keyline = TITLE_BACKGROUND @ 50% Opacity over LIST_BACKGROUND
-		else if (testTwoPrimaryColors(titleBg, 120, 180))
-			keyline2 = blend(titleBg, bg, 50);
-
-		// Group 3
-		// Rule: If at least 2 of the RGB values are equal to or between 0 and
-		// 120, then apply specified opacity for Group 3
-		// Examples: XP Default, Wn Classic Standard, Wn Marine, Wn Plum, OSX
-		// Aqua, Wn High Con White, Wn High Con #1
-
-		// Keyline = TITLE_BACKGROUND @ 30% Opacity over LIST_BACKGROUND
-		else
-			keyline2 = blend(titleBg, bg, 30);
-		// H_BOTTOM_KEYLINE2
-		createColor(IFormColors.H_BOTTOM_KEYLINE2, keyline2);
-	}
-
-	private void createFormHeaderDNDColors() {
-		RGB titleBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
-		Color bgColor = getImpliedBackground();
-		RGB bg = bgColor.getRGB();
-		RGB light, full;
-		// ALL Themes
-		//
-		// Light Highlight
-		// When *near* the 'hot' area
-		// Rule: If near the title in the 'hot' area, show background highlight
-		// TITLE_BACKGROUND_GRADIENT @ 40%
-		light = blend(titleBg, bg, 40);
-		// Full Highlight
-		// When *on* the title area (regions 1 and 2)
-		// Rule: If near the title in the 'hot' area, show background highlight
-		// TITLE_BACKGROUND_GRADIENT @ 60%
-		full = blend(titleBg, bg, 60);
-		// H_DND_LIGHT
-		// H_DND_FULL
-		createColor(IFormColors.H_HOVER_LIGHT, light);
-		createColor(IFormColors.H_HOVER_FULL, full);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormDialog.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormDialog.java
deleted file mode 100644
index f96e914..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormDialog.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.internal.forms.Messages;
-
-/**
- * A general-purpose dialog that hosts a form. Clients should extend the class
- * and override <code>createFormContent(IManagedForm)</code> protected method.
- * <p>
- * Since forms with wrapped text typically don't have a preferred size, it is
- * important to set the initial dialog size upon creation:
- * <p>
- * 
- * <pre>
- * MyFormDialog dialog = new MyFormDialog(shell);
- * dialog.create();
- * dialog.getShell().setSize(500, 500);
- * dialog.open();
- * </pre>
- * 
- * <p>
- * Otherwise, the dialog may open very wide.
- * <p>
- * 
- * @since 3.3
- */
-
-public class FormDialog extends TrayDialog {
-	private FormToolkit toolkit;
-
-	/**
-	 * Creates a new form dialog for a provided parent shell.
-	 * 
-	 * @param shell
-	 *            the parent shell
-	 */
-	public FormDialog(Shell shell) {
-		super(shell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-
-	/**
-	 * Creates a new form dialog for a provided parent shell provider.
-	 * 
-	 * @param parentShellProvider
-	 *            the parent shell provider
-	 */
-	public FormDialog(IShellProvider parentShellProvider) {
-		super(parentShellProvider);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.TrayDialog#close()
-	 */
-	public boolean close() {
-		boolean rcode = super.close();
-		toolkit.dispose();
-		return rcode;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		toolkit = new FormToolkit(parent.getDisplay());
-		ScrolledForm sform = toolkit.createScrolledForm(parent);
-		sform.setLayoutData(new GridData(GridData.FILL_BOTH));
-		ManagedForm mform = new ManagedForm(toolkit, sform);
-		createFormContent(mform);
-		applyDialogFont(sform.getBody());
-		return sform;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.TrayDialog#createButtonBar(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createButtonBar(Composite parent) {
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		//Composite sep = new Composite(parent, SWT.NULL);
-		//sep.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
-		//gd.heightHint = 1;
-		Label sep = new Label(parent, SWT.HORIZONTAL|SWT.SEPARATOR);
-		sep.setLayoutData(gd);
-		Control bar = super.createButtonBar(parent);
-		return bar;
-	}
-
-	/**
-	 * Configures the dialog form and creates form content. Clients should
-	 * override this method.
-	 * 
-	 * @param mform
-	 *            the dialog form
-	 */
-	protected void createFormContent(IManagedForm mform) {
-		mform.getForm().setText(Messages.FormDialog_defaultTitle);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java
deleted file mode 100644
index 3b3b757..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import java.util.ArrayList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-
-/**
- * Manages a group of hyperlinks. It tracks activation, updates normal and
- * active colors and updates underline state depending on the underline
- * preference. Hyperlink labels are added to the group after creation and are
- * automatically removed from the group when they are disposed.
- * 
- * @since 3.0
- */
-
-public final class HyperlinkGroup extends HyperlinkSettings {
-	private ArrayList links = new ArrayList();
-	private Hyperlink lastActivated;
-	private Hyperlink lastEntered;
-	private GroupListener listener;
-	private boolean isActiveBackgroundSet;
-	private boolean isActiveForegroundSet;
-	private boolean isBackgroundSet;
-	private boolean isForegroundSet;
-
-	private class GroupListener implements Listener, IHyperlinkListener {
-		
-		private Color previousBackground;
-		private Color previousForeground;
-		
-		public void handleEvent(Event e) {
-			switch (e.type) {
-				case SWT.MouseEnter :
-					onMouseEnter(e);
-					break;
-				case SWT.MouseExit :
-					onMouseExit(e);
-					break;
-				case SWT.MouseDown :
-					onMouseDown(e);
-					break;
-				case SWT.Dispose :
-					unhook((Hyperlink) e.widget);
-					break;
-			}
-		}
-		private void onMouseEnter(Event e) {
-			Hyperlink link = (Hyperlink) e.widget;
-			previousBackground = link.getBackground();
-			previousForeground = link.getForeground();
-			if (isActiveBackgroundSet)
-				link.setBackground(getActiveBackground());
-			if (isActiveForegroundSet)
-				link.setForeground(getActiveForeground());
-			if (getHyperlinkUnderlineMode() == UNDERLINE_HOVER)
-				link.setUnderlined(true);
-			link.setCursor(getHyperlinkCursor());			
-		}
-		private void onMouseExit(Event e) {
-			Hyperlink link = (Hyperlink) e.widget;
-			if (isActiveBackgroundSet)
-				link.setBackground(previousBackground);
-			if (isActiveForegroundSet)
-				link.setForeground(previousForeground);
-			if (getHyperlinkUnderlineMode() == UNDERLINE_HOVER)
-				link.setUnderlined(false);
-		}
-		public void linkActivated(HyperlinkEvent e) {
-		}
-
-		public void linkEntered(HyperlinkEvent e) {
-			Hyperlink link = (Hyperlink) e.widget;
-			if (lastEntered != null) {
-				linkExited(lastEntered);
-			}
-			lastEntered = link;
-		}
-
-		public void linkExited(HyperlinkEvent e) {
-			linkExited((Hyperlink) e.widget);
-		}
-		private void linkExited(Hyperlink link) {
-			link.setCursor(null);
-			if (lastEntered == link)
-				lastEntered = null;
-		}
-	}
-
-	/**
-	 * Creates a hyperlink group.
-	 */
-
-	public HyperlinkGroup(Display display) {
-		super(display);
-		listener = new GroupListener();
-	}
-
-	/**
-	 * Returns the link that has been active the last, or <code>null</code>
-	 * if no link has been active yet or the last active link has been
-	 * disposed.
-	 * 
-	 * @return the last active link or <code>null</code>
-	 */
-	public Hyperlink getLastActivated() {
-		return lastActivated;
-	}
-	/**
-	 * Adds a hyperlink to the group to be jointly managed. Hyperlink will be
-	 * managed until it is disposed. Settings like colors, cursors and modes
-	 * will affect all managed hyperlinks.
-	 * 
-	 * @param link
-	 */
-
-	public void add(Hyperlink link) {
-		if (isBackgroundSet)
-			link.setBackground(getBackground());
-		if (isForegroundSet)
-			link.setForeground(getForeground());
-		if (getHyperlinkUnderlineMode() == UNDERLINE_ALWAYS)
-			link.setUnderlined(true);
-		hook(link);
-	}
-	
-	/**
-	 * Sets the new active hyperlink background for all the links.
-	 * 
-	 * @param newActiveBackground
-	 *            the new active background
-	 */
-	public void setActiveBackground(Color newActiveBackground) {
-		super.setActiveBackground(newActiveBackground);
-		isActiveBackgroundSet = true;
-	}
-	
-	/**
-	 * Sets the new active hyperlink foreground for all the links.
-	 * 
-	 * @param newActiveForeground
-	 *            the new active foreground
-	 */
-	public void setActiveForeground(Color newActiveForeground) {
-		super.setActiveForeground(newActiveForeground);
-		isActiveForegroundSet = true;
-	}
-	
-	/**
-	 * Sets the group background and also sets the background of all the
-	 * currently managed links.
-	 * 
-	 * @param bg
-	 *            the new background
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		isBackgroundSet = true;
-		if (links != null) {
-			for (int i = 0; i < links.size(); i++) {
-				Hyperlink label = (Hyperlink) links.get(i);
-				label.setBackground(bg);
-			}
-		}
-	}
-	/**
-	 * Sets the group foreground and also sets the background of all the
-	 * currently managed links.
-	 * 
-	 * @param fg
-	 *            the new foreground
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		isForegroundSet = true;
-		if (links != null) {
-			for (int i = 0; i < links.size(); i++) {
-				Hyperlink label = (Hyperlink) links.get(i);
-				label.setForeground(fg);
-			}
-		}
-	}
-	/**
-	 * Sets the hyperlink underline mode.
-	 * 
-	 * @param mode
-	 *            the new hyperlink underline mode
-	 * @see HyperlinkSettings
-	 */
-	public void setHyperlinkUnderlineMode(int mode) {
-		super.setHyperlinkUnderlineMode(mode);
-		if (links != null) {
-			for (int i = 0; i < links.size(); i++) {
-				Hyperlink label = (Hyperlink) links.get(i);
-				label.setUnderlined(mode == UNDERLINE_ALWAYS);
-			}
-		}
-	}
-
-	private void hook(Hyperlink link) {
-		link.addListener(SWT.MouseDown, listener);
-		link.addHyperlinkListener(listener);
-		link.addListener(SWT.Dispose, listener);
-		link.addListener(SWT.MouseEnter, listener);
-		link.addListener(SWT.MouseExit, listener);
-		links.add(link);
-	}
-
-	private void unhook(Hyperlink link) {
-		link.removeListener(SWT.MouseDown, listener);
-		link.removeHyperlinkListener(listener);
-		link.removeListener(SWT.MouseEnter, listener);
-		link.removeListener(SWT.MouseExit, listener);
-		if (lastActivated == link)
-			lastActivated = null;
-		if (lastEntered == link)
-			lastEntered = null;
-		links.remove(link);
-	}
-
-	private void onMouseDown(Event e) {
-		if (e.button == 1)
-			return;
-		lastActivated = (Hyperlink) e.widget;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.java
deleted file mode 100644
index 1051957..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.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
- *******************************************************************************/
-package org.eclipse.ui.forms;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.forms.widgets.*;
-/**
- * Manages color and underline mode settings for a group of hyperlinks. The
- * class is extended by HyperlinkGroup but is otherwise not intended to be
- * subclassed.
- * 
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class HyperlinkSettings {
-	/**
-	 * Underline mode to be used when hyperlinks should not be underlined.
-	 */
-	public static final int UNDERLINE_NEVER = 1;
-	/**
-	 * Underline mode to be used when hyperlinks should only be underlined on
-	 * mouse hover.
-	 */
-	public static final int UNDERLINE_HOVER = 2;
-	/**
-	 * Underline mode to be used when hyperlinks should always be underlined.
-	 */
-	public static final int UNDERLINE_ALWAYS = 3;
-	private int hyperlinkUnderlineMode = UNDERLINE_ALWAYS;
-	private Color background;
-	private Color foreground;
-	private Color activeBackground;
-	private Color activeForeground;
-	/**
-	 * The constructor.
-	 * 
-	 * @param display
-	 *            the display to use when creating colors.
-	 */
-	public HyperlinkSettings(Display display) {
-		initializeDefaultForegrounds(display);
-	}
-	/**
-	 * Initializes the hyperlink foregrounds from the JFace defaults set for the
-	 * entire workbench.
-	 * 
-	 * @see JFaceColors
-	 * @param display
-	 *            the display to use when creating colors
-	 */
-	public void initializeDefaultForegrounds(Display display) {
-		Color fg = JFaceColors.getHyperlinkText(display);
-		Color afg = JFaceColors.getActiveHyperlinkText(display);
-		if (fg==null)
-			fg = display.getSystemColor(SWT.COLOR_BLUE);
-		setForeground(fg);
-		setActiveForeground(afg);
-	}
-	/**
-	 * Returns the background to use for the active hyperlink.
-	 * 
-	 * @return active hyperlink background
-	 */
-	public Color getActiveBackground() {
-		return activeBackground;
-	}
-	/**
-	 * Returns the foreground to use for the active hyperlink.
-	 * 
-	 * @return active hyperlink foreground
-	 */
-	public Color getActiveForeground() {
-		return activeForeground;
-	}
-	/**
-	 * Returns the background to use for the normal hyperlink.
-	 * 
-	 * @return normal hyperlink background
-	 */
-	public Color getBackground() {
-		return background;
-	}
-	/**
-	 * Returns the cursor to use when the hyperlink is active. This cursor will
-	 * be shown before hyperlink listeners have been notified of hyperlink
-	 * activation and hidden when the notification method returns.
-	 * 
-	 * @return the busy cursor
-	 */
-	public Cursor getBusyCursor() {
-		return FormsResources.getBusyCursor();
-	}
-	/**
-	 * Returns the cursor to use when over text.
-	 * 
-	 * @return the text cursor
-	 */
-	public Cursor getTextCursor() {
-		return FormsResources.getTextCursor();
-	}
-	/**
-	 * Returns the foreground to use for the normal hyperlink.
-	 * 
-	 * @return the normal hyperlink foreground
-	 */
-	public Color getForeground() {
-		return foreground;
-	}
-	/**
-	 * Returns the cursor to use when hovering over the hyperlink.
-	 * 
-	 * @return the hyperlink cursor
-	 */
-	public Cursor getHyperlinkCursor() {
-		return FormsResources.getHandCursor();
-	}
-	/**
-	 * Returns the underline mode to be used for all the hyperlinks in this
-	 * group.
-	 * 
-	 * @return one of UNDERLINE_NEVER, UNDERLINE_ALWAYS, UNDERLINE_HOVER
-	 */
-	public int getHyperlinkUnderlineMode() {
-		return hyperlinkUnderlineMode;
-	}
-	/**
-	 * Sets the new active hyperlink background for all the links.
-	 * 
-	 * @param newActiveBackground
-	 *            the new active background
-	 */
-	public void setActiveBackground(Color newActiveBackground) {
-		activeBackground = newActiveBackground;
-	}
-	/**
-	 * Sets the new active hyperlink foreground for all the links.
-	 * 
-	 * @param newActiveForeground
-	 *            the new active foreground
-	 */
-	public void setActiveForeground(Color newActiveForeground) {
-		activeForeground = newActiveForeground;
-	}
-	/**
-	 * Sets the new hyperlink background for all the links.
-	 * 
-	 * @param newBackground
-	 *            the new hyperlink background
-	 */
-	public void setBackground(Color newBackground) {
-		background = newBackground;
-	}
-	/**
-	 * Sets the new hyperlink foreground for all the links.
-	 * 
-	 * @param newForeground
-	 *            the new hyperlink foreground
-	 */
-	public void setForeground(Color newForeground) {
-		foreground = newForeground;
-	}
-	/**
-	 * Sets the new hyperlink underline mode for all the links in this group.
-	 * 
-	 * @param mode
-	 *            one of <code>UNDERLINE_NEVER</code>,
-	 *            <code>UNDERLINE_HOVER</code> and
-	 *            <code>UNDERLINE_ALWAYS</code>.
-	 */
-	public void setHyperlinkUnderlineMode(int mode) {
-		hyperlinkUnderlineMode = mode;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.java
deleted file mode 100644
index 067f9cc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This interface should be implemented by clients providing
- * pages to handle object types in DetailsPart. Most of the
- * life cycle is the same as for the IFormPart. The page is
- * a part selection listener since selections in the master
- * part will be passed to the currently visible page.
- * 
- * @see DetailsPart
- * @see MasterDetailsBlock
- * @since 3.0
- */
-public interface IDetailsPage extends IFormPart, IPartSelectionListener {
-	/**
-	 * Creates the contents of the page in the provided parent.
-	 * @param parent the parent to create the page in
-	 */
-	void createContents(Composite parent);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.java
deleted file mode 100644
index 64cae36..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-/**
- * The class that implements this interface provides for dynamic
- * computation of page key and the page itself based on the
- * input object. It should be used in situations where
- * using the object class as a static key is not enough
- * i.e. different pages may need to be loaded for objects
- * of the same type depending on their state.
- * 
- * @see DetailsPart
- * @see MasterDetailsBlock
- * @since 3.0
- */
-public interface IDetailsPageProvider {
-/**
- * Returns the page key for the provided object. The assumption is
- * that the provider knows about various object types and
- * is in position to cast the object into a type and call methods
- * on it to determine the matching page key.
- * @param object the input object
- * @return the page key for the provided object
- */
-	Object getPageKey(Object object);
-/**
- * Returns the page for the provided key. This method is the dynamic
- * alternative to registering pages with the details part directly.
- * @param key the page key
- * @return the matching page for the provided key
- */
-	IDetailsPage getPage(Object key);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormColors.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormColors.java
deleted file mode 100644
index 29bf4d3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormColors.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-/**
- * A place to hold all the color constants used in the forms package.
- * 
- * @since 3.3
- */
-
-public interface IFormColors {
-	/**
-	 * A prefix for all the keys.
-	 */
-	String PREFIX = "org.eclipse.ui.forms."; //$NON-NLS-1$
-	/**
-	 * Key for the form title foreground color.
-	 */
-	String TITLE = PREFIX + "TITLE"; //$NON-NLS-1$
-
-	/**
-	 * A prefix for the header color constants.
-	 */
-	String H_PREFIX = PREFIX + "H_"; //$NON-NLS-1$
-	/*
-	 * A prefix for the section title bar color constants.
-	 */
-	String TB_PREFIX = PREFIX + "TB_"; //$NON-NLS-1$	
-	/**
-	 * Key for the form header background gradient ending color.
-	 */
-	String H_GRADIENT_END = H_PREFIX + "GRADIENT_END"; //$NON-NLS-1$
-
-	/**
-	 * Key for the form header background gradient starting color.
-	 * 
-	 */
-	String H_GRADIENT_START = H_PREFIX + "GRADIENT_START"; //$NON-NLS-1$
-	/**
-	 * Key for the form header bottom keyline 1 color.
-	 * 
-	 */
-	String H_BOTTOM_KEYLINE1 = H_PREFIX + "BOTTOM_KEYLINE1"; //$NON-NLS-1$
-	/**
-	 * Key for the form header bottom keyline 2 color.
-	 * 
-	 */
-	String H_BOTTOM_KEYLINE2 = H_PREFIX + "BOTTOM_KEYLINE2"; //$NON-NLS-1$
-	/**
-	 * Key for the form header light hover color.
-	 * 
-	 */
-	String H_HOVER_LIGHT = H_PREFIX + "H_HOVER_LIGHT"; //$NON-NLS-1$
-	/**
-	 * Key for the form header full hover color.
-	 * 
-	 */
-	String H_HOVER_FULL = H_PREFIX + "H_HOVER_FULL"; //$NON-NLS-1$
-
-	/**
-	 * Key for the tree/table border color.
-	 */
-	String BORDER = PREFIX + "BORDER"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section separator color.
-	 */
-	String SEPARATOR = PREFIX + "SEPARATOR"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar background.
-	 */
-	String TB_BG = TB_PREFIX + "BG"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar foreground.
-	 */
-	String TB_FG = TB_PREFIX + "FG"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar gradient.
-	 * @deprecated Since 3.3, this color is not used any more. The 
-	 * tool bar gradient is created starting from {@link #TB_BG} to
-	 * the section background color.
-	 */
-	String TB_GBG = TB_BG;
-
-	/**
-	 * Key for the section title bar border.
-	 */
-	String TB_BORDER = TB_PREFIX + "BORDER"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section toggle color. Since 3.1, this color is used for all
-	 * section styles.
-	 */
-	String TB_TOGGLE = TB_PREFIX + "TOGGLE"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section toggle hover color.
-	 * 
-	 */
-	String TB_TOGGLE_HOVER = TB_PREFIX + "TOGGLE_HOVER"; //$NON-NLS-1$		
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java
deleted file mode 100644
index fa23b3b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-/**
- * Classes that implement this interface can be added to the managed form and
- * take part in the form life cycle. The part is initialized with the form and
- * will be asked to accept focus. The part can receive form input and can elect
- * to do something according to it (for example, select an object that matches
- * the input).
- * <p>
- * The form part has two 'out of sync' states in respect to the model(s) that
- * feed the form: <b>dirty</b> and <b>stale</b>. When a part is dirty, it
- * means that the user interacted with it and now its widgets contain state that
- * is newer than the model. In order to sync up with the model, 'commit' needs
- * to be called. In contrast, the model can change 'under' the form (as a result
- * of some actions outside the form), resulting in data in the model being
- * 'newer' than the content presented in the form. A 'stale' form part is
- * brought in sync with the model by calling 'refresh'. The part is responsible
- * for notifying the form when one of these states change in the part. The form
- * reserves the right to handle this notification in the most appropriate way
- * for the situation (for example, if the form is in a page of the multi-page
- * editor, it may do nothing for stale parts if the page is currently not
- * showing).
- * <p>
- * When the form is disposed, each registered part is disposed as well. Parts
- * are responsible for releasing any system resources they created and for
- * removing themselves as listeners from all event providers.
- * 
- * @see IManagedForm
- * @since 3.0
- * 
- */
-public interface IFormPart {
-	/**
-	 * Initializes the part.
-	 * 
-	 * @param form
-	 *            the managed form that manages the part
-	 */
-	void initialize(IManagedForm form);
-
-	/**
-	 * Disposes the part allowing it to release allocated resources.
-	 */
-	void dispose();
-
-	/**
-	 * Returns true if the part has been modified with respect to the data
-	 * loaded from the model.
-	 * 
-	 * @return true if the part has been modified with respect to the data
-	 *         loaded from the model
-	 */
-	boolean isDirty();
-
-	/**
-	 * If part is displaying information loaded from a model, this method
-	 * instructs it to commit the new (modified) data back into the model.
-	 * 
-	 * @param onSave
-	 *            indicates if commit is called during 'save' operation or for
-	 *            some other reason (for example, if form is contained in a
-	 *            wizard or a multi-page editor and the user is about to leave
-	 *            the page).
-	 */
-	void commit(boolean onSave);
-
-	/**
-	 * Notifies the part that an object has been set as overall form's input.
-	 * The part can elect to react by revealing or selecting the object, or do
-	 * nothing if not applicable.
-	 * 
-	 * @return <code>true</code> if the part has selected and revealed the
-	 *         input object, <code>false</code> otherwise.
-	 */
-	boolean setFormInput(Object input);
-
-	/**
-	 * Instructs form part to transfer focus to the widget that should has focus
-	 * in that part. The method can do nothing (if it has no widgets capable of
-	 * accepting focus).
-	 */
-	void setFocus();
-
-	/**
-	 * Tests whether the form part is stale and needs refreshing. Parts can
-	 * receive notification from models that will make their content stale, but
-	 * may need to delay refreshing to improve performance (for example, there
-	 * is no need to immediately refresh a part on a form that is current on a
-	 * hidden page).
-	 * <p>
-	 * It is important to differentiate 'stale' and 'dirty' states. Part is
-	 * 'dirty' if user interacted with its editable widgets and changed the
-	 * values. In contrast, part is 'stale' when the data it presents in the
-	 * widgets has been changed in the model without direct user interaction.
-	 * 
-	 * @return <code>true</code> if the part needs refreshing,
-	 *         <code>false</code> otherwise.
-	 */
-	boolean isStale();
-
-	/**
-	 * Refreshes the part completely from the information freshly obtained from
-	 * the model. The method will not be called if the part is not stale.
-	 * Otherwise, the part is responsible for clearing the 'stale' flag after
-	 * refreshing itself.
-	 */
-	void refresh();
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java
deleted file mode 100644
index 84d8457..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * Managed form wraps a form widget and adds life cycle methods for form parts.
- * A form part is a portion of the form that participates in form life cycle
- * events.
- * <p>
- * There is no 1/1 mapping between widgets and form parts. A widget like Section
- * can be a part by itself, but a number of widgets can gather around one form
- * part.
- * <p>
- * This interface should not be extended or implemented. New form instances
- * should be created using ManagedForm.
- * 
- * @see ManagedForm
- * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IManagedForm {
-	/**
-	 * Initializes the form by looping through the managed parts and
-	 * initializing them. Has no effect if already called once.
-	 * 
-	 * @since 3.1
-	 */
-	public void initialize();
-
-	/**
-	 * Returns the toolkit used by this form.
-	 * 
-	 * @return the toolkit
-	 */
-	public FormToolkit getToolkit();
-
-	/**
-	 * Returns the form widget managed by this form.
-	 * 
-	 * @return the form widget
-	 */
-	public ScrolledForm getForm();
-
-	/**
-	 * Reflows the form as a result of the layout change.
-	 * 
-	 * @param changed
-	 *            if <code>true</code>, discard cached layout information
-	 */
-	public void reflow(boolean changed);
-
-	/**
-	 * A part can use this method to notify other parts that implement
-	 * IPartSelectionListener about selection changes.
-	 * 
-	 * @param part
-	 *            the part that broadcasts the selection
-	 * @param selection
-	 *            the selection in the part
-	 */
-	public void fireSelectionChanged(IFormPart part, ISelection selection);
-
-	/**
-	 * Returns all the parts currently managed by this form.
-	 * 
-	 * @return the managed parts
-	 */
-	IFormPart[] getParts();
-
-	/**
-	 * Adds the new part to the form.
-	 * 
-	 * @param part
-	 *            the part to add
-	 */
-	void addPart(IFormPart part);
-
-	/**
-	 * Removes the part from the form.
-	 * 
-	 * @param part
-	 *            the part to remove
-	 */
-	void removePart(IFormPart part);
-
-	/**
-	 * Sets the input of this page to the provided object.
-	 * 
-	 * @param input
-	 *            the new page input
-	 * @return <code>true</code> if the form contains this object,
-	 *         <code>false</code> otherwise.
-	 */
-	boolean setInput(Object input);
-
-	/**
-	 * Returns the current page input.
-	 * 
-	 * @return page input object or <code>null</code> if not applicable.
-	 */
-	Object getInput();
-
-	/**
-	 * Tests if form is dirty. A managed form is dirty if at least one managed
-	 * part is dirty.
-	 * 
-	 * @return <code>true</code> if at least one managed part is dirty,
-	 *         <code>false</code> otherwise.
-	 */
-	boolean isDirty();
-
-	/**
-	 * Notifies the form that the dirty state of one of its parts has changed.
-	 * The global dirty state of the form can be obtained by calling 'isDirty'.
-	 * 
-	 * @see #isDirty
-	 */
-	void dirtyStateChanged();
-
-	/**
-	 * Commits the dirty form. All pending changes in the widgets are flushed
-	 * into the model.
-	 * 
-	 * @param onSave
-	 */
-	void commit(boolean onSave);
-
-	/**
-	 * Tests if form is stale. A managed form is stale if at least one managed
-	 * part is stale. This can happen when the underlying model changes,
-	 * resulting in the presentation of the part being out of sync with the
-	 * model and needing refreshing.
-	 * 
-	 * @return <code>true</code> if the form is stale, <code>false</code>
-	 *         otherwise.
-	 */
-	boolean isStale();
-
-	/**
-	 * Notifies the form that the stale state of one of its parts has changed.
-	 * The global stale state of the form can be obtained by calling 'isStale'.
-	 */
-	void staleStateChanged();
-
-	/**
-	 * Refreshes the form by refreshing every part that is stale.
-	 */
-	void refresh();
-
-	/**
-	 * Sets the container that owns this form. Depending on the context, the
-	 * container may be wizard, editor page, editor etc.
-	 * 
-	 * @param container
-	 *            the container of this form
-	 */
-	void setContainer(Object container);
-
-	/**
-	 * Returns the container of this form.
-	 * 
-	 * @return the form container
-	 */
-	Object getContainer();
-
-	/**
-	 * Returns the message manager that will keep track of messages in this
-	 * form.
-	 * 
-	 * @return the message manager instance
-	 * @since 3.3
-	 */
-	IMessageManager getMessageManager();
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessage.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessage.java
deleted file mode 100644
index 0d165d6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessage.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.forms;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This interface encapsulates a single message that can be shown in a form.
- * Messages can be associated with controls, or be of a general nature.
- * 
- * @see IMessageManager
- * @since 3.3
- */
-public interface IMessage extends IMessageProvider {
-	/**
-	 * Returns the unique message key
-	 * 
-	 * @return the unique message key
-	 */
-	Object getKey();
-
-	/**
-	 * Returns data for application use
-	 * 
-	 * @return data object
-	 */
-	Object getData();
-
-	/**
-	 * Returns the control this message is associated with.
-	 * 
-	 * @return the control or <code>null</code> if this is a general message.
-	 */
-	Control getControl();
-
-	/**
-	 * Messages that are associated with controls can be shown with a prefix
-	 * that indicates the origin of the message (e.g. the label preceeding the
-	 * control).
-	 * 
-	 * @return the message prefix or <code>null</code> if this is a general
-	 *         message
-	 */
-	String getPrefix();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessageManager.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessageManager.java
deleted file mode 100644
index 933b3af..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessageManager.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.forms;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.Form;
-
-/**
- * This interface provides for managing typed messages in a form. Typed messages
- * are messages associated with a type that indicates their severity (error,
- * warning, information). The interface is responsible for:
- * <ul>
- * <li>Bridging the concept of typed messages and control decorations</li>
- * <li>Adding one or more messages per control in a form</li>
- * <li>Rolling the local messages up to the form header</li>
- * <li>Adding one or more general messages to the form header</li>
- * </ul>
- * <p>
- * To use it in a form, do the following:
- * <ol>
- * <li>For each interactive control, add a listener to it to monitor user input</li>
- * <li>Every time the input changes, validate it. If there is a problem, add a
- * message with a unique key to the manager. If there is already a message with
- * the same key in the manager, its type and message text will be replaced (no
- * duplicates). Note that you add can messages with different keys to the same
- * control to track multiple problems with the user input.</li>
- * <li>If the problem has been cleared, remove the message using the key
- * (attempting to remove a message that is not in the manager is safe).</li>
- * <li>If something happens in the form that is not related to any control, use
- * the other <code>addMessage</code> method.</li>
- * </ol>
- * <p>
- * This interface should only be referenced. It must not be implemented or
- * extended.
- * </p>
- * 
- * @since 3.3
- * @see IMessageProvider
- * @see IManagedForm
- * @noimplement This interface is not intended to be implemented by clients.
- */
-
-public interface IMessageManager {
-	/**
-	 * Adds a general message that is not associated with any decorated field.
-	 * Note that subsequent calls using the same key will not result in
-	 * duplicate messages. Instead, the previous message with the same key will
-	 * be replaced with the new message.
-	 * 
-	 * @param key
-	 *            a unique message key that will be used to look the message up
-	 *            later
-	 * 
-	 * @param messageText
-	 *            the message to add
-	 * @param data
-	 *            an object for application use (can be <code>null</code>)
-	 * @param type
-	 *            the message type as defined in <code>IMessageProvider</code>.
-	 */
-	void addMessage(Object key, String messageText, Object data, int type);
-
-	/**
-	 * Adds a message that should be associated with the provided control. Note
-	 * that subsequent calls using the same key will not result in duplicate
-	 * messages. Instead, the previous message with the same key will be
-	 * replaced with the new message.
-	 * 
-	 * @param key
-	 *            the unique message key
-	 * @param messageText
-	 *            the message to add
-	 * @param data
-	 *            an object for application use (can be <code>null</code>)
-	 * @param type
-	 *            the message type
-	 * @param control
-	 *            the control to associate the message with
-	 */
-	void addMessage(Object key, String messageText, Object data, int type,
-			Control control);
-
-	/**
-	 * Removes the general message with the provided key. Does nothing if
-	 * message for the key does not exist.
-	 * 
-	 * @param key
-	 *            the key of the message to remove
-	 */
-	void removeMessage(Object key);
-
-	/**
-	 * Removes all the general messages. If there are local messages associated
-	 * with controls, the replacement message may show up drawing user's
-	 * attention to these local messages. Otherwise, the container will clear
-	 * the message area.
-	 */
-	void removeMessages();
-
-	/**
-	 * Removes a keyed message associated with the provided control. Does
-	 * nothing if the message for that key does not exist.
-	 * 
-	 * @param key
-	 *            the id of the message to remove
-	 * @param control
-	 *            the control the message is associated with
-	 */
-	void removeMessage(Object key, Control control);
-
-	/**
-	 * Removes all the messages associated with the provided control. Does
-	 * nothing if there are no messages for this control.
-	 * 
-	 * @param control
-	 *            the control the messages are associated with
-	 */
-	void removeMessages(Control control);
-
-	/**
-	 * Removes all the local field messages and all the general container
-	 * messages.
-	 */
-	void removeAllMessages();
-
-	/**
-	 * Updates the message container with the messages currently in the manager.
-	 * There are two scenarios in which a client may want to use this method:
-	 * <ol>
-	 * <li>When controls previously managed by this manager have been disposed.</li>
-	 * <li>When automatic update has been turned off.</li>
-	 * </ol>
-	 * In all other situations, the manager will keep the form in sync
-	 * automatically.
-	 * 
-	 * @see #setAutoUpdate(boolean)
-	 */
-	void update();
-
-	/**
-	 * Controls whether the form is automatically updated when messages are
-	 * added or removed. By default, auto update is on. Clients can turn it off
-	 * prior to adding or removing a number of messages as a batch. Turning it
-	 * back on will trigger an update.
-	 * 
-	 * @param enabled
-	 *            sets the state of the automatic update
-	 */
-	void setAutoUpdate(boolean enabled);
-
-	/**
-	 * Tests whether the form will be automatically updated when messages are
-	 * added or removed.
-	 * 
-	 * @return <code>true</code> if auto update is active, <code>false</code>
-	 *         otherwise.
-	 */
-	boolean isAutoUpdate();
-
-	/**
-	 * Sets the alternative message prefix provider. The default prefix provider
-	 * is set by the manager.
-	 * 
-	 * @param provider
-	 *            the new prefix provider or <code>null</code> to turn the
-	 *            prefix generation off.
-	 */
-	void setMessagePrefixProvider(IMessagePrefixProvider provider);
-
-	/**
-	 * @return the current prefix provider or <code>null</code> if prefixes
-	 *         are not generated.
-	 */
-	IMessagePrefixProvider getMessagePrefixProvider();
-
-	/**
-	 * Message manager uses SWT.LEFT|SWT.BOTTOM for the default decoration
-	 * position. Use this method to change it.
-	 * 
-	 * @param position
-	 *            the decoration position
-	 * @see ControlDecoration
-	 */
-	void setDecorationPosition(int position);
-
-	/**
-	 * Returns the currently used decoration position for all control messages.
-	 * 
-	 * @return the current decoration position
-	 */
-
-	int getDecorationPosition();
-
-	/**
-	 * When message manager is used in context of a form, and there are
-	 * hyperlink listeners for messages in the header, the hyperlink event will
-	 * carry an object of type <code>IMessage[]</code> as an href. You can use
-	 * this method to create a summary text from this array consistent with the
-	 * tool tip used by the form header.
-	 * 
-	 * @param messages
-	 *            an array of messages
-	 * @return a textual representation of the messages with one message per
-	 *         line.
-	 * @see Form#addMessageHyperlinkListener(org.eclipse.ui.forms.events.IHyperlinkListener)
-	 */
-	String createSummary(IMessage[] messages);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessagePrefixProvider.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessagePrefixProvider.java
deleted file mode 100644
index 5404f6a..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessagePrefixProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.forms;
-
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This interface computes the prefix of a message that is created in the
- * context of a control. Since messages are rolled up to the header in the
- * message manager, it is important to create a prefix to indicate the context
- * of a message in the form. Typically the prefix is computed by looking at the
- * label that preceeds the control, if present. Alternative providers may
- * include other text to further specify the location of the message.
- * 
- * @see IMessageManager
- * @see IMessage
- * @since 3.3
- */
-public interface IMessagePrefixProvider {
-	/**
-	 * Returns the computed prefix for the provided control.
-	 * 
-	 * @param control
-	 *            the control to provide the prefix for
-	 * @return the computed prefix
-	 */
-	String getPrefix(Control control);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java
deleted file mode 100644
index a4ce605..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import org.eclipse.jface.viewers.ISelection;
-
-/**
- * Form parts can implement this interface if they want to be 
- * notified when another part on the same form changes selection 
- * state.
- * 
- * @see IFormPart
- * @since 3.0
- */
-public interface IPartSelectionListener {
-	/**
-	 * Called when the provided part has changed selection state.
-	 * 
-	 * @param part
-	 *            the selection source
-	 * @param selection
-	 *            the new selection
-	 */
-	public void selectionChanged(IFormPart part, ISelection selection);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java
deleted file mode 100644
index 3d3376b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import java.util.Vector;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.*;
-import org.eclipse.ui.internal.forms.MessageManager;
-
-/**
- * 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 MessageManager messageManager;
-
-	private Vector parts = new Vector();
-
-	/**
-	 * Creates a managed form in the provided parent. Form toolkit and widget
-	 * will be created and owned by this object.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 */
-	public ManagedForm(Composite parent) {
-		toolkit = new FormToolkit(parent.getDisplay());
-		ownsToolkit = true;
-		form = toolkit.createScrolledForm(parent);
-	}
-
-	/**
-	 * Creates a managed form that will use the provided toolkit and
-	 * 
-	 * @param toolkit
-	 * @param form
-	 */
-	public ManagedForm(FormToolkit toolkit, ScrolledForm form) {
-		this.form = form;
-		this.toolkit = toolkit;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#addPart(org.eclipse.ui.forms.IFormPart)
-	 */
-	public void addPart(IFormPart part) {
-		parts.add(part);
-		part.initialize(this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#removePart(org.eclipse.ui.forms.IFormPart)
-	 */
-	public void removePart(IFormPart part) {
-		parts.remove(part);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getParts()
-	 */
-	public IFormPart[] getParts() {
-		return (IFormPart[]) parts.toArray(new IFormPart[parts.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getToolkit()
-	 */
-	public FormToolkit getToolkit() {
-		return toolkit;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getForm()
-	 */
-	public ScrolledForm getForm() {
-		return form;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#reflow(boolean)
-	 */
-	public void reflow(boolean changed) {
-		form.reflow(changed);
-	}
-
-	/**
-	 * A part can use this method to notify other parts that implement
-	 * IPartSelectionListener about selection changes.
-	 * 
-	 * @param part
-	 *            the part that broadcasts the selection
-	 * @param selection
-	 *            the selection in the part
-	 * @see IPartSelectionListener
-	 */
-	public void fireSelectionChanged(IFormPart part, ISelection selection) {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart cpart = (IFormPart) parts.get(i);
-			if (part.equals(cpart))
-				continue;
-			if (cpart instanceof IPartSelectionListener) {
-				((IPartSelectionListener) cpart).selectionChanged(part,
-						selection);
-			}
-		}
-	}
-
-	/**
-	 * Initializes the form by looping through the managed parts and
-	 * initializing them. Has no effect if already called once.
-	 */
-	public void initialize() {
-		if (initialized)
-			return;
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			part.initialize(this);
-		}
-		initialized = true;
-	}
-
-	/**
-	 * Disposes all the parts in this form.
-	 */
-	public void dispose() {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			part.dispose();
-		}
-		if (ownsToolkit) {
-			toolkit.dispose();
-		}
-	}
-
-	/**
-	 * Refreshes the form by refreshes all the stale parts. Since 3.1, this
-	 * method is performed on a UI thread when called from another thread so it
-	 * is not needed to wrap the call in <code>Display.syncExec</code> or
-	 * <code>asyncExec</code>.
-	 */
-	public void refresh() {
-		Thread t = Thread.currentThread();
-		Thread dt = toolkit.getColors().getDisplay().getThread();
-		if (t.equals(dt))
-			doRefresh();
-		else {
-			toolkit.getColors().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					doRefresh();
-				}
-			});
-		}
-	}
-
-	private void doRefresh() {
-		int nrefreshed = 0;
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			if (part.isStale()) {
-				part.refresh();
-				nrefreshed++;
-			}
-		}
-		if (nrefreshed > 0)
-			form.reflow(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#commit(boolean)
-	 */
-	public void commit(boolean onSave) {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			if (part.isDirty())
-				part.commit(onSave);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#setInput(java.lang.Object)
-	 */
-	public boolean setInput(Object input) {
-		boolean pageResult = false;
-
-		this.input = input;
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			boolean result = part.setFormInput(input);
-			if (result)
-				pageResult = true;
-		}
-		return pageResult;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getInput()
-	 */
-	public Object getInput() {
-		return input;
-	}
-
-	/**
-	 * Transfers the focus to the first form part.
-	 */
-	public void setFocus() {
-		if (parts.size() > 0) {
-			IFormPart part = (IFormPart) parts.get(0);
-			part.setFocus();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#isDirty()
-	 */
-	public boolean isDirty() {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			if (part.isDirty())
-				return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#isStale()
-	 */
-	public boolean isStale() {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			if (part.isStale())
-				return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#dirtyStateChanged()
-	 */
-	public void dirtyStateChanged() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#staleStateChanged()
-	 */
-	public void staleStateChanged() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getContainer()
-	 */
-	public Object getContainer() {
-		return container;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#setContainer(java.lang.Object)
-	 */
-	public void setContainer(Object container) {
-		this.container = container;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IManagedForm#getMessageManager()
-	 */
-	public IMessageManager getMessageManager() {
-		if (messageManager == null)
-			messageManager = new MessageManager(form);
-		return messageManager;
-	}
-}
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 19dc3d1..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/MasterDetailsBlock.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * This class implements the 'master/details' UI pattern suitable for inclusion
- * in a form. The block consists of two parts: 'master' and 'details' in a sash
- * form that allows users to change the relative ratio on the page. The master
- * part needs to be created by the users of this class. The details part is
- * created by the block.
- * <p>
- * The master part is responsible for adding itself as a form part and firing
- * selection events. The details part catches the selection events and tries to
- * load a page registered to handle the selected object(s). The page shows the
- * details of the selected object(s) and allows users to edit them.
- * <p>
- * Details pages can be registered statically using 'registerPage' or
- * dynamically through the use of 'IDetailsPageProvider' in case where different
- * pages need to be shown for objects of the same type depending on their state.
- * <p>
- * Subclasses are required to implement abstract methods of this class. Master
- * part must be created and at least one details page should be registered in
- * order to show details of the objects selected in the master part. Tool bar
- * actions can be optionally added to the tool bar manager.
- * 
- * @see DetailsPart
- * @see IDetailsPage
- * @see IDetailsPageProvider
- * @since 3.0
- */
-public abstract class MasterDetailsBlock {
-	/**
-	 * Details part created by the block. No attempt should be made to access
-	 * this field inside <code>createMasterPart</code> because it has not been
-	 * created yet and will be <code>null</code>.
-	 */
-	protected DetailsPart detailsPart;
-
-	/**
-	 * The form that is the parent of both master and details part. The form
-	 * allows users to change the ratio between the two parts.
-	 */
-	protected SashForm sashForm;
-	
-	static final int DRAGGER_SIZE = 40;
-	
-	class MDSashForm extends SashForm {
-		ArrayList sashes = new ArrayList();
-		Listener listener = new Listener () {
-			public void handleEvent(Event e) {
-				switch (e.type) {
-				case SWT.MouseEnter:
-					e.widget.setData("hover", Boolean.TRUE); //$NON-NLS-1$
-					((Control)e.widget).redraw();
-					break;
-				case SWT.MouseExit:
-					e.widget.setData("hover", null); //$NON-NLS-1$
-					((Control)e.widget).redraw();
-					break;
-				case SWT.Paint:
-					onSashPaint(e);
-				break;
-				case SWT.Resize:
-					hookSashListeners();
-				break;
-				}
-			}
-		};
-		public MDSashForm(Composite parent, int style) {
-			super(parent, style);
-		}
-		
-		public void layout(boolean changed) {
-			super.layout(changed);
-			hookSashListeners();
-		}
-		
-		public void layout(Control [] children) {
-			super.layout(children);
-			hookSashListeners();
-		}
-
-		private void hookSashListeners() {
-			purgeSashes();
-			Control [] children = getChildren();
-			for (int i=0; i<children.length; i++) {
-				if (children[i] instanceof Sash) {
-					Sash sash = (Sash)children[i];
-					if (sashes.contains(sash))
-						continue;
-					sash.addListener(SWT.Paint, listener);
-					sash.addListener(SWT.MouseEnter, listener);
-					sash.addListener(SWT.MouseExit, listener);
-					sashes.add(sash);
-				}
-			}
-		}
-		private void purgeSashes() {
-			for (Iterator iter=sashes.iterator(); iter.hasNext();) {
-				Sash sash = (Sash)iter.next();
-				if (sash.isDisposed())
-					iter.remove();
-			}
-		}
-	}
-
-	/**
-	 * Creates the content of the master/details block inside the managed form.
-	 * This method should be called as late as possible inside the parent part.
-	 * 
-	 * @param managedForm
-	 *            the managed form to create the block in
-	 */
-	public void createContent(IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		form.getBody().setLayout(layout);
-		sashForm = new MDSashForm(form.getBody(), SWT.NULL);
-		sashForm.setData("form", managedForm); //$NON-NLS-1$
-		toolkit.adapt(sashForm, false, false);
-		sashForm.setMenu(form.getBody().getMenu());
-		sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
-		createMasterPart(managedForm, sashForm);
-		createDetailsPart(managedForm, sashForm);
-		hookResizeListener();
-		createToolBarActions(managedForm);
-		form.updateToolBar();
-	}
-	
-	private void hookResizeListener() {
-		Listener listener = ((MDSashForm)sashForm).listener;
-		Control [] children = sashForm.getChildren();
-		for (int i=0; i<children.length; i++) {
-			if (children[i] instanceof Sash) continue;
-			children[i].addListener(SWT.Resize, listener);
-		}
-	}
-
-	/**
-	 * Implement this method to create a master part in the provided parent.
-	 * Typical master parts are section parts that contain tree or table viewer.
-	 * 
-	 * @param managedForm
-	 *            the parent form
-	 * @param parent
-	 *            the parent composite
-	 */
-	protected abstract void createMasterPart(IManagedForm managedForm,
-			Composite parent);
-
-	/**
-	 * Implement this method to statically register pages for the expected
-	 * object types. This mechanism can be used when there is 1-&gt;1 mapping
-	 * between object classes and details pages.
-	 * 
-	 * @param detailsPart
-	 *            the details part
-	 */
-	protected abstract void registerPages(DetailsPart detailsPart);
-
-	/**
-	 * Implement this method to create form tool bar actions and add them to the
-	 * form tool bar if desired.
-	 * 
-	 * @param managedForm
-	 *            the form that owns the tool bar
-	 */
-	protected abstract void createToolBarActions(IManagedForm managedForm);
-
-	private void createDetailsPart(final IManagedForm mform, Composite parent) {
-		detailsPart = new DetailsPart(mform, parent, SWT.NULL);
-		mform.addPart(detailsPart);
-		registerPages(detailsPart);
-	}
-	
-	private void onSashPaint(Event e) {
-		Sash sash = (Sash)e.widget;
-		IManagedForm form = (IManagedForm)sash.getParent().getData("form"); //$NON-NLS-1$
-		FormColors colors = form.getToolkit().getColors();
-		boolean vertical = (sash.getStyle() & SWT.VERTICAL)!=0;
-		GC gc = e.gc;
-		Boolean hover = (Boolean)sash.getData("hover"); //$NON-NLS-1$
-		gc.setBackground(colors.getColor(IFormColors.TB_BG));
-		gc.setForeground(colors.getColor(IFormColors.TB_BORDER));
-		Point size = sash.getSize();
-		if (vertical) {
-			if (hover!=null)
-				gc.fillRectangle(0, 0, size.x, size.y);
-			//else
-				//gc.drawLine(1, 0, 1, size.y-1);
-		}
-		else {
-			if (hover!=null)
-				gc.fillRectangle(0, 0, size.x, size.y);
-			//else
-				//gc.drawLine(0, 1, size.x-1, 1);				
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java
deleted file mode 100644
index 618a352..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * Section part implements IFormPart interface based on the Section widget. It
- * can either wrap the widget or create one itself.
- * <p>
- * Subclasses should extend <code>SectionPart</code> and implement life cycle
- * methods like <code>refresh</code>, <code>commit</code>,
- * <code>setFocus</code> etc. Note that most of these methods are not empty -
- * calling <code>super</code> is required.
- * 
- * @see Section
- * @since 3.0
- */
-public class SectionPart extends AbstractFormPart {
-	private Section section;
-
-	/**
-	 * Creates a new section part based on the provided section.
-	 * 
-	 * @param section
-	 *            the section to use
-	 */
-	public SectionPart(Section section) {
-		this.section = section;
-		hookListeners();
-	}
-
-	/**
-	 * Creates a new section part inside the provided parent and using the
-	 * provided toolkit. The section part will create the section widget.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param toolkit
-	 *            the toolkit to use
-	 * @param style
-	 *            the section widget style
-	 */
-	public SectionPart(Composite parent, FormToolkit toolkit, int style) {
-		this(toolkit.createSection(parent, style));
-	}
-
-	/**
-	 * Adds listeners to the underlying widget.
-	 */
-	protected void hookListeners() {
-		if ((section.getExpansionStyle() & Section.TWISTIE) != 0
-				|| (section.getExpansionStyle() & Section.TREE_NODE) != 0) {
-			section.addExpansionListener(new ExpansionAdapter() {
-				public void expansionStateChanging(ExpansionEvent e) {
-					SectionPart.this.expansionStateChanging(e.getState());
-				}
-
-				public void expansionStateChanged(ExpansionEvent e) {
-					SectionPart.this.expansionStateChanged(e.getState());
-				}
-			});
-		}
-	}
-
-	/**
-	 * Returns the section widget used in this part.
-	 * 
-	 * @return the section widget
-	 */
-	public Section getSection() {
-		return section;
-	}
-
-	/**
-	 * The section is about to expand or collapse.
-	 * 
-	 * @param expanding
-	 *            <code>true</code> for expansion, <code>false</code> for
-	 *            collapse.
-	 */
-	protected void expansionStateChanging(boolean expanding) {
-	}
-
-	/**
-	 * The section has expanded or collapsed.
-	 * 
-	 * @param expanded
-	 *            <code>true</code> for expansion, <code>false</code> for
-	 *            collapse.
-	 */
-	protected void expansionStateChanged(boolean expanded) {
-		getManagedForm().getForm().reflow(false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.AbstractFormPart#setFocus()
-	 */
-	public void setFocus() {
-		Control client = section.getClient();
-		if (client != null)
-			client.setFocus();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java
deleted file mode 100644
index fc9cfed..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java
+++ /dev/null
@@ -1,692 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.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.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageSelectionProvider;
-
-/**
- * This class forms a base of multi-page form editors that typically use one or
- * more pages with forms and one page for raw source of the editor input.
- * <p>
- * Pages are added 'lazily' i.e. adding a page reserves a tab for it but does
- * not cause the page control to be created. Page control is created when an
- * attempt is made to select the page in question. This allows editors with
- * several tabs and complex pages to open quickly.
- * <p>
- * Subclasses should extend this class and implement <code>addPages</code>
- * method. One of the two <code>addPage</code> methods should be called to
- * contribute pages to the editor. One adds complete (standalone) editors as
- * nested tabs. These editors will be created right away and will be hooked so
- * that key bindings, selection service etc. is compatible with the one for the
- * standalone case. The other method adds classes that implement
- * <code>IFormPage</code> interface. These pages will be created lazily and
- * they will share the common key binding and selection service. Since 3.1,
- * FormEditor is a page change provider. It allows listeners to attach to it and
- * get notified when pages are changed. This new API in JFace allows dynamic
- * help to update on page changes.
- * 
- * @since 3.0
- */
-public abstract class FormEditor extends MultiPageEditorPart 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 formEditor the editor
-		 */
-		public FormEditorSelectionProvider(FormEditor formEditor) {
-			super(formEditor);
-		}
-
-		public ISelection getSelection() {
-			IEditorPart activeEditor = ((FormEditor) getMultiPageEditor())
-					.getActiveEditor();
-			if (activeEditor != null) {
-				ISelectionProvider selectionProvider = activeEditor.getSite()
-						.getSelectionProvider();
-				if (selectionProvider != null)
-					return selectionProvider.getSelection();
-			}
-			if (globalSelection != null) {
-			    return globalSelection;
-			}
-			return StructuredSelection.EMPTY;
-		}
-
-		/*
-		 * (non-Javadoc) Method declared on <code> ISelectionProvider </code> .
-		 */
-		public void setSelection(ISelection selection) {
-			IEditorPart activeEditor = ((FormEditor) getMultiPageEditor())
-					.getActiveEditor();
-			if (activeEditor != null) {
-				ISelectionProvider selectionProvider = activeEditor.getSite()
-						.getSelectionProvider();
-				if (selectionProvider != null)
-					selectionProvider.setSelection(selection);
-			} else {
-				this.globalSelection = selection;
-				fireSelectionChanged(new SelectionChangedEvent(this,
-						globalSelection));
-			}
-		}
-	}
-
-	/**
-	 * The constructor.
-	 */
-	public FormEditor() {
-	}
-
-	/**
-	 * Overrides super to plug in a different selection provider.
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		setSite(site);
-		setInput(input);
-		site.setSelectionProvider(new FormEditorSelectionProvider(this));
-	}
-
-	/**
-	 * Creates the common toolkit for this editor and adds pages to the editor.
-	 * 
-	 * @see #addPages
-	 */
-	protected void createPages() {
-		addPages();
-	}
-
-	/*
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#createPageContainer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Composite createPageContainer(Composite parent) {
-		parent = super.createPageContainer(parent);
-		toolkit = createToolkit(parent.getDisplay());
-		return parent;
-	}
-
-	/**
-	 * Creates the form toolkit. The method can be implemented to substitute a
-	 * subclass of the toolkit that should be used for this editor. A typical
-	 * use of this method would be to create the form toolkit using one shared
-	 * <code>FormColors</code> object to share resources across the multiple
-	 * editor instances.
-	 * 
-	 * @param display
-	 *            the display to use when creating the toolkit
-	 * @return the newly created toolkit instance
-	 */
-	protected FormToolkit createToolkit(Display display) {
-		return new FormToolkit(display);
-	}
-
-	/**
-	 * Subclass should implement this method to add pages to the editor using
-	 * 'addPage(IFormPage)' method.
-	 */
-	protected abstract void addPages();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IPageChangeProvider#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();
-	}
-	
-	/**
-	 * Commits all dirty pages in the editor. This method should
-	 * be called as a first step of a 'save' operation.
-	 * @param onSave <code>true</code> if commit is performed as part
-	 * of the 'save' operation, <code>false</code> otherwise.
-	 * @since 3.3
-	 */
-
-	protected void commitPages(boolean onSave) {
-		if (pages != null) {
-			for (int i = 0; i < pages.size(); i++) {
-				Object page = pages.get(i);
-				if (page instanceof IFormPage) {
-					IFormPage fpage = (IFormPage)page;
-					IManagedForm mform = fpage.getManagedForm();
-					if (mform != null && mform.isDirty())
-						mform.commit(onSave);
-				}
-			}
-		}	
-	}
-
-	/**
-	 * Adds a complete editor part to the multi-page editor.
-	 * 
-	 * @see MultiPageEditorPart#addPage(IEditorPart, IEditorInput)
-	 */
-	public int addPage(IEditorPart editor, IEditorInput input)
-			throws PartInitException {
-		int index = super.addPage(editor, input);
-		if (editor instanceof IFormPage)
-			configurePage(index, (IFormPage) editor);
-		else
-			registerPage(-1, editor);
-		return index;
-	}
-
-	/**
-	 * Adds a complete editor part to the multi-page editor at the specified
-	 * position.
-	 * 
-	 * @see MultiPageEditorPart#addPage(int, IEditorPart, IEditorInput)
-	 * @since 3.1
-	 */
-	public void addPage(int index, IEditorPart editor, IEditorInput input)
-			throws PartInitException {
-		super.addPage(index, editor, input);
-		if (editor instanceof IFormPage)
-			configurePage(index, (IFormPage) editor);
-		else
-			registerPage(index, editor);
-	}
-
-	/**
-	 * 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 oldPageIndex = getCurrentPage();
-		if (oldPageIndex != -1 && pages.size() > oldPageIndex
-				&& pages.get(oldPageIndex) instanceof IFormPage
-				&& oldPageIndex != newPageIndex) {
-			// Check the old page
-			IFormPage oldFormPage = (IFormPage) pages.get(oldPageIndex);
-			if (oldFormPage.canLeaveThePage() == false) {
-				setActivePage(oldPageIndex);
-				return;
-			}
-		}
-		// Now is the absolute last moment to create the page control.
-		Object page = pages.get(newPageIndex);
-		if (page instanceof IFormPage) {
-			IFormPage fpage = (IFormPage) page;
-			if (fpage.getPartControl() == null) {
-				fpage.createPartControl(getContainer());
-				setControl(newPageIndex, fpage.getPartControl());
-				fpage.getPartControl().setMenu(getContainer().getMenu());
-			}
-		}
-		if (oldPageIndex != -1 && pages.size() > oldPageIndex
-				&& pages.get(oldPageIndex) instanceof IFormPage) {
-			// Commit old page before activating the new one
-			IFormPage oldFormPage = (IFormPage) pages.get(oldPageIndex);
-			IManagedForm mform = oldFormPage.getManagedForm();
-			if (mform != null)
-				mform.commit(false);
-		}
-		if (pages.size() > newPageIndex
-				&& pages.get(newPageIndex) instanceof IFormPage)
-			((IFormPage) pages.get(newPageIndex)).setActive(true);
-		if (oldPageIndex != -1 && pages.size() > oldPageIndex
-				&& newPageIndex != oldPageIndex && 
-				pages.get(oldPageIndex) instanceof IFormPage)
-			((IFormPage) pages.get(oldPageIndex)).setActive(false);
-		// Call super - this will cause pages to switch
-		super.pageChange(newPageIndex);
-		this.currentPage = newPageIndex;
-		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(String, Object)
-	 */
-	public IFormPage selectReveal(Object pageInput) {
-		for (int i = 0; i < pages.size(); i++) {
-			Object page = pages.get(i);
-			if (page instanceof IFormPage) {
-				IFormPage fpage = (IFormPage) page;
-				if (fpage.selectReveal(pageInput))
-					return fpage;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns active page instance if the currently selected page index is not
-	 * -1, or <code>null</code> if it is.
-	 * 
-	 * @return active page instance if selected, or <code>null</code> if no
-	 *         page is currently active.
-	 */
-	public IFormPage getActivePageInstance() {
-		int index = getActivePage();
-		if (index != -1) {
-			Object page = pages.get(index);
-			if (page instanceof IFormPage)
-				return (IFormPage) page;
-		}
-		return null;
-	}
-
-	/**
-	 * @see MultiPageEditorPart#setActivePage(int)
-	 */
-	protected void setActivePage(int pageIndex) {
-		// fix for window handles problem
-		// this should be called only when the editor is first opened
-		if (pages.size() > pageIndex
-				&& pages.get(pageIndex) instanceof IFormPage) {
-			super.setActivePage(pageIndex);
-			IFormPage activePage = (IFormPage) pages.get(pageIndex);
-			activePage.setActive(true);
-		} else
-			super.setActivePage(pageIndex);
-		updateActionBarContributor(pageIndex);
-	}
-
-	/**
-	 * Notifies action bar contributor about page change.
-	 * 
-	 * @param pageIndex
-	 *            the index of the new page
-	 */
-	protected void updateActionBarContributor(int pageIndex) {
-		// this is to enable the undo/redo actions before a page change has
-		// occurred
-		IEditorActionBarContributor contributor = getEditorSite()
-				.getActionBarContributor();
-		if (contributor != null
-				&& contributor instanceof MultiPageEditorActionBarContributor) {
-			((MultiPageEditorActionBarContributor) contributor)
-					.setActivePage(getEditor(pageIndex));
-		}
-	}
-
-	/**
-	 * Closes the editor programmatically.
-	 * 
-	 * @param save
-	 *            if <code>true</code>, the content should be saved before
-	 *            closing.
-	 */
-	public void close(final boolean save) {
-		Display display = getSite().getShell().getDisplay();
-		display.asyncExec(new Runnable() {
-			public void run() {
-				if (toolkit != null) {
-					getSite().getPage().closeEditor(FormEditor.this, save);
-				}
-			}
-		});
-	}
-
-	private void registerPage(int index, Object page) throws PartInitException {
-		if (!pages.contains(page)) {
-			if (index == -1)
-				pages.add(page);
-			else
-				pages.add(index, page);
-		}
-		if (page instanceof IFormPage) {
-			IFormPage fpage = (IFormPage) page;
-			if (fpage.isEditor() == false)
-				fpage.init(getEditorSite(), getEditorInput());
-		}
-	}
-
-	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);
-				}
-			});
-		}
-	}
-}
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 64da9f1..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormPage.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 a7f4ff9..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/IFormPage.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.editor;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.forms.IManagedForm;
-/**
- * Interface that all GUI pages need to implement in order
- * to be added to FormEditor part. The interface makes 
- * several assumptions:
- * <ul>
- * <li>The form page has a managed form</li>
- * <li>The form page has a unique id</li>
- * <li>The form page can be GUI but can also wrap a complete
- * editor class (in that case, it should return <code>true</code>
- * from <code>isEditor()</code> method).</li>
- * <li>The form page is lazy i.e. understands that 
- * its part control will be created at the last possible
- * moment.</li>.
- * </ul>
- * <p>Existing editors can be wrapped by implementing
- * this interface. In this case, 'isEditor' should return <code>true</code>.
- * A common editor to wrap in <code>TextEditor</code> that is
- * often added to show the raw source code of the file open into
- * the multi-page editor.
- * 
- * @since 3.0
- */
-public interface IFormPage extends IEditorPart {
-	/**
-	 * @param editor
-	 *            the form editor that this page belongs to
-	 */
-	void initialize(FormEditor editor);
-	/**
-	 * Returns the editor this page belongs to.
-	 * 
-	 * @return the form editor
-	 */
-	FormEditor getEditor();
-	/**
-	 * Returns the managed form of this page, unless this is a source page.
-	 * 
-	 * @return the managed form or <samp>null </samp> if this is a source page.
-	 */
-	IManagedForm getManagedForm();
-	/**
-	 * Indicates whether the page has become the active in the editor. Classes
-	 * that implement this interface may use this method to commit the page (on
-	 * <code>false</code>) or lazily create and/or populate the content on
-	 * <code>true</code>.
-	 * 
-	 * @param active
-	 *            <code>true</code> if page should be visible, <code>false</code>
-	 *            otherwise.
-	 */
-	void setActive(boolean active);
-	/**
-	 * Returns <samp>true </samp> if page is currently active, false if not.
-	 * 
-	 * @return <samp>true </samp> for active page.
-	 */
-	boolean isActive();
-	/**
-	 * Tests if the content of the page is in a state that allows the
-	 * editor to flip to another page. Typically, pages that contain
-	 * raw source with syntax errors should not allow editors to 
-	 * leave them until errors are corrected.
-	 * @return <code>true</code> if the editor can flip to another page,
-	 * <code>false</code> otherwise.
-	 */
-	boolean canLeaveThePage();
-	/**
-	 * Returns the control associated with this page.
-	 * 
-	 * @return the control of this page if created or <samp>null </samp> if the
-	 *         page has not been shown yet.
-	 */
-	Control getPartControl();
-	/**
-	 * Page must have a unique id that can be used to show it without knowing
-	 * its relative position in the editor.
-	 * 
-	 * @return the unique page identifier
-	 */
-	String getId();
-	/**
-	 * Returns the position of the page in the editor.
-	 * 
-	 * @return the zero-based index of the page in the editor.
-	 */
-	int getIndex();
-	/**
-	 * Sets the position of the page in the editor.
-	 * 
-	 * @param index
-	 *            the zero-based index of the page in the editor.
-	 */
-	void setIndex(int index);
-	/**
-	 * Tests whether this page wraps a complete editor that
-	 * can be registered on its own, or represents a page
-	 * that cannot exist outside the multi-page editor context.
-	 * 
-	 * @return <samp>true </samp> if the page wraps an editor,
-	 *         <samp>false </samp> if this is a form page.
-	 */
-	boolean isEditor();
-	/**
-	 * A hint to bring the provided object into focus. If the object is in a
-	 * tree or table control, select it. If it is shown on a scrollable page,
-	 * ensure that it is visible. If the object is not presented in 
-	 * the page, <code>false</code> should be returned to allow another
-	 * page to try.
-	 * 
-	 * @param object
-	 *            object to select and reveal
-	 * @return <code>true</code> if the request was successful, <code>false</code>
-	 *         otherwise.
-	 */
-	boolean selectReveal(Object object);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java
deleted file mode 100644
index 3443e2a..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.editor;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.ManagedForm;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * A variation of {@link FormEditor}, this editor has a stable header that does
- * not change when pages are switched. Pages that are added to this editor
- * should not have the title or image set.
- * 
- * @since 3.3
- */
-public abstract class SharedHeaderFormEditor extends FormEditor {
-	private HeaderForm headerForm;
-	
-	private boolean wasHeaderActive= true;
-	private Listener activationListener= null;
-
-	private static class HeaderForm extends ManagedForm {
-		public HeaderForm(FormEditor editor, ScrolledForm form) {
-			super(editor.getToolkit(), form);
-			setContainer(editor);
-			if (editor.getEditorInput() != null)
-				setInput(editor.getEditorInput());
-		}
-
-		private FormEditor getEditor() {
-			return (FormEditor) getContainer();
-		}
-
-		public void dirtyStateChanged() {
-			getEditor().editorDirtyStateChanged();
-		}
-
-		public void staleStateChanged() {
-			refresh();
-		}
-	}
-
-	/**
-	 * The default constructor.
-	 */
-
-	public SharedHeaderFormEditor() {
-	}
-
-	/**
-	 * Overrides <code>super</code> to create a form in which to host the tab
-	 * folder. This form will be responsible for managing
-	 * 
-	 * @param parent
-	 *            the page container parent
-	 * 
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#createPageContainer(org.eclipse.swt.widgets.Composite)
-	 */
-
-	protected Composite createPageContainer(Composite parent) {
-		parent = super.createPageContainer(parent);
-		parent.setLayout(new FillLayout());
-		ScrolledForm scform = getToolkit().createScrolledForm(parent);
-		scform.getForm().setData(FormUtil.IGNORE_BODY, Boolean.TRUE);
-		headerForm = new HeaderForm(this, scform);
-		createHeaderContents(headerForm);
-		return headerForm.getForm().getBody();
-	}
-
-	/**
-	 * Returns the form that owns the shared header.
-	 * 
-	 * @return the shared header
-	 */
-
-	public IManagedForm getHeaderForm() {
-		return headerForm;
-	}
-	
-	protected void createPages() {
-		super.createPages();
-		
-		// preempt MultiPageEditorPart#createPartControl(Composite)
-		if (getActivePage() == -1) {
-			// create page control and initialize page, keep focus on header by calling super implementation
-			super.setActivePage(0);
-		}
-	}
-	
-	protected void setActivePage(int pageIndex) {
-		// programmatic focus change
-		wasHeaderActive= false;
-		super.setActivePage(pageIndex);
-	}
-	
-	public void setFocus() {
-		installActivationListener();
-		if (wasHeaderActive)
-			((ManagedForm) getHeaderForm()).setFocus();
-		else {
-			int index= getActivePage();
-			if (index == -1)
-				((ManagedForm) getHeaderForm()).setFocus();
-			else
-				super.setFocus();
-		}
-	}
-	
-	private void installActivationListener() {
-		if (activationListener == null) {
-			activationListener = new Listener() {
-				public void handleEvent(Event event) {
-					boolean wasHeaderActive = event.widget != getContainer();
-					
-					int activePage = getActivePage();
-					if (SharedHeaderFormEditor.this.wasHeaderActive != wasHeaderActive && activePage != -1 && pages.get(activePage) instanceof IEditorPart) {
-						
-						if (wasHeaderActive) {
-							deactivateSite(true, true);
-						} else {
-							activateSite();
-						}
-					}
-					
-					SharedHeaderFormEditor.this.wasHeaderActive = wasHeaderActive;
-				}
-			};
-			getContainer().addListener(SWT.Activate, activationListener);
-			getHeaderForm().getForm().getForm().getHead().addListener(SWT.Activate, activationListener);
-		}
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#dispose()
-	 */
-	public void dispose() {
-		if (headerForm != null) {
-			headerForm.dispose();
-			headerForm = null;
-		}
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#isDirty()
-	 */
-	public boolean isDirty() {
-		return headerForm.isDirty() || super.isDirty();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#commitPages(boolean)
-	 */
-	protected void commitPages(boolean onSave) {
-		if (headerForm != null && headerForm.isDirty())
-			headerForm.commit(onSave);
-		super.commitPages(onSave);
-	}
-
-	/**
-	 * Subclasses should extend this method to configure the form that owns the
-	 * shared header. If the header form will contain controls that can change
-	 * the state of the editor, they should be wrapped in an IFormPart so that
-	 * they can participate in the life cycle event management.
-	 * 
-	 * @param headerForm
-	 *            the form that owns the shared header
-	 * @see IFormPart
-	 */
-	protected void createHeaderContents(IManagedForm headerForm) {
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/package.html b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/package.html
deleted file mode 100644
index df243bc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/package.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Support for forms-based multi-page editors.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.java
deleted file mode 100644
index f483062..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.events;
-/**
- * This adapter class provides default implementations for the methods
- * described by the <code>ExpansionListener</code> interface.
- * <p>
- * Classes that wish to deal with <code>ExpansionEvent</code>s can extend
- * this class and override only the methods which they are interested in.
- * </p>
- * 
- * @see IExpansionListener
- * @see ExpansionEvent
- * @since 3.0
- */
-public class ExpansionAdapter implements IExpansionListener {
-	/**
-	 * Sent when the link is entered. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void expansionStateChanging(ExpansionEvent e) {
-	}
-	/**
-	 * Sent when the link is exited. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void expansionStateChanged(ExpansionEvent e) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.java
deleted file mode 100644
index e2b34e5..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.events;
-import org.eclipse.swt.events.TypedEvent;
-/**
- * Notifies listeners when expandable controls change expansion state.
- * 
- * @since 3.0
- */
-public final class ExpansionEvent extends TypedEvent {
-	private static final long serialVersionUID = 6009335074727417445L;
-	/**
-	 * Creates a new expansion ecent.
-	 * 
-	 * @param obj
-	 *            event source
-	 * @param state
-	 *            the new expansion state
-	 */
-	public ExpansionEvent(Object obj, boolean state) {
-		super(obj);
-		data = state ? Boolean.TRUE : Boolean.FALSE;
-	}
-	/**
-	 * Returns the new expansion state of the widget.
-	 * 
-	 * @return <code>true</code> if the widget is now expaned, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean getState() {
-		return data.equals(Boolean.TRUE) ? true : false;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java
deleted file mode 100644
index 4dd56ae..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.events;
-/**
- * This adapter class provides default implementations for the methods
- * described by the <code>HyperlinkListener</code> interface.
- * <p>
- * Classes that wish to deal with <code>HyperlinkEvent</code> s can extend
- * this class and override only the methods which they are interested in.
- * </p>
- * 
- * @see IHyperlinkListener
- * @see HyperlinkEvent
- * @since 3.0
- */
-public class HyperlinkAdapter implements IHyperlinkListener {
-	/**
-	 * Sent when the link is entered. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void linkEntered(HyperlinkEvent e) {
-	}
-	/**
-	 * Sent when the link is exited. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void linkExited(HyperlinkEvent e) {
-	}
-	/**
-	 * Sent when the link is activated. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void linkActivated(HyperlinkEvent e) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.java
deleted file mode 100644
index a8bec77..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.events;
-import org.eclipse.swt.events.TypedEvent;
-import org.eclipse.swt.widgets.Widget;
-/**
- * Notifies listeners about a hyperlink change.
- *
- * @since 3.0
- */
-public final class HyperlinkEvent extends TypedEvent {
-	private static final long serialVersionUID = 6009335074727417445L;
-	private String label;
-	private int stateMask;
-	/**
-	 * Creates a new hyperlink
-	 * 
-	 * @param widget
-	 *            event source
-	 * @param href
-	 *            the hyperlink reference that will be followed upon when the
-	 *            hyperlink is activated.
-	 * @param label
-	 *            the name of the hyperlink (the text that is rendered as a
-	 *            link in the source widget).
-	 * @param stateMask
-	 *            the given state mask
-	 */
-	public HyperlinkEvent(Widget widget, Object href, String label, int stateMask) {
-		super(widget);
-		this.widget = widget;
-		this.data = href;
-		this.label = label;
-		this.stateMask = stateMask;
-	}
-	/**
-	 * The hyperlink reference that will be followed when the hyperlink is
-	 * activated.
-	 * 
-	 * @return the hyperlink reference object
-	 */
-	public Object getHref() {
-		return this.data;
-	}
-	/**
-	 * The text of the hyperlink rendered in the source widget.
-	 * 
-	 * @return the hyperlink label
-	 */
-	public String getLabel() {
-		return label;
-	}
-	/**
-	 * Returns the value of the keyboard state mask present when
-	 * the event occured, or SWT.NULL for no modifiers.
-	 * @return the keyboard state mask or <code>SWT.NULL</code>. 
-	 */
-	public int getStateMask() {
-		return stateMask;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.java
deleted file mode 100644
index 771ada3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.events;
-/**
- * Classes that implement this interface will be notified before and after the
- * expandable control's expansion state changes.
- * 
- * @since 3.0
- */
-public interface IExpansionListener {
-	/**
-	 * Notifies the listener that the expandable control is about to change its
-	 * expansion state. The state provided by the event is the new state.
-	 * 
-	 * @param e
-	 *            the expansion event
-	 */
-	void expansionStateChanging(ExpansionEvent e);
-	/**
-	 * Notifies the listener after the expandable control has changed its
-	 * expansion state. The state provided by the event is the new state.
-	 * 
-	 * @param e
-	 *            the expansion event
-	 */
-	void expansionStateChanged(ExpansionEvent e);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.java
deleted file mode 100644
index 34c18c4..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.events;
-/**
- * Classes that implement this interface will be notified when hyperlinks are
- * entered, exited and activated.
- * 
- * @see org.eclipse.ui.forms.widgets.Hyperlink
- * @see org.eclipse.ui.forms.widgets.ImageHyperlink
- * @see org.eclipse.ui.forms.widgets.FormText
- * @since 3.0
- */
-public interface IHyperlinkListener {
-	/**
-	 * Sent when hyperlink is entered either by mouse entering the link client
-	 * area, or keyboard focus switching to the hyperlink.
-	 * 
-	 * @param e
-	 *            an event containing information about the hyperlink
-	 */
-	void linkEntered(HyperlinkEvent e);
-	/**
-	 * Sent when hyperlink is exited either by mouse exiting the link client
-	 * area, or keyboard focus switching from the hyperlink.
-	 * 
-	 * @param e
-	 *            an event containing information about the hyperlink
-	 */
-	void linkExited(HyperlinkEvent e);
-	/**
-	 * Sent when hyperlink is activated either by mouse click inside the link
-	 * client area, or by pressing 'Enter' key while hyperlink has keyboard
-	 * focus.
-	 * 
-	 * @param e
-	 *            an event containing information about the hyperlink
-	 */
-	void linkActivated(HyperlinkEvent e);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/package.html b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/package.html
deleted file mode 100644
index 56fb041..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/package.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Events and listeners for forms-based parts.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/package.html b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/package.html
deleted file mode 100644
index 6e8c5dc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/package.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Forms-based controls for use in views, editors, and wizards.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java
deleted file mode 100644
index 3b543f2..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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;
-	boolean paintFocus=true;
-
-	/*
-	 * Armed link is one that will activate on a mouse up event, i.e.
-	 * it has received a mouse down and mouse still on top of it.
-	 */
-	private boolean armed;
-
-	private ListenerList listeners;
-
-	/**
-	 * Amount of the margin width around the hyperlink (default is 1).
-	 */
-	protected int marginWidth = 1;
-
-	/**
-	 * Amount of the margin height around the hyperlink (default is 1).
-	 */
-	protected int marginHeight = 1;
-
-	/**
-	 * Creates a new hyperlink in the provided parent.
-	 * 
-	 * @param parent
-	 *            the control parent
-	 * @param style
-	 *            the widget style
-	 */
-	public AbstractHyperlink(Composite parent, int style) {
-		super(parent, style);
-		addListener(SWT.KeyDown, new Listener() {
-			public void handleEvent(Event e) {
-				if (e.character == '\r') {
-					handleActivate(e);
-				}
-			}
-		});
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				paint(e);
-			}
-		});
-		addListener(SWT.Traverse, new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.detail) {
-				case SWT.TRAVERSE_PAGE_NEXT:
-				case SWT.TRAVERSE_PAGE_PREVIOUS:
-				case SWT.TRAVERSE_ARROW_NEXT:
-				case SWT.TRAVERSE_ARROW_PREVIOUS:
-				case SWT.TRAVERSE_RETURN:
-					e.doit = false;
-					return;
-				}
-				e.doit = true;
-			}
-		});
-		Listener listener = new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.type) {
-				case SWT.FocusIn:
-					hasFocus = true;
-					handleEnter(e);
-					break;
-				case SWT.FocusOut:
-					hasFocus = false;
-					handleExit(e);
-					break;
-				case SWT.DefaultSelection:
-					handleActivate(e);
-					break;
-				case SWT.MouseEnter:
-					handleEnter(e);
-					break;
-				case SWT.MouseExit:
-					handleExit(e);
-					break;
-				case SWT.MouseDown:
-					handleMouseDown(e);
-					break;
-				case SWT.MouseUp:
-					handleMouseUp(e);
-					break;
-				case SWT.MouseMove:
-					handleMouseMove(e);
-					break;
-				}
-			}
-		};
-		addListener(SWT.MouseEnter, listener);
-		addListener(SWT.MouseExit, listener);
-		addListener(SWT.MouseDown, listener);
-		addListener(SWT.MouseUp, listener);
-		addListener(SWT.MouseMove, listener);
-		addListener(SWT.FocusIn, listener);
-		addListener(SWT.FocusOut, listener);
-		setCursor(FormsResources.getHandCursor());
-	}
-
-	/**
-	 * Adds the event listener to this hyperlink.
-	 * 
-	 * @param listener
-	 *            the event listener to add
-	 */
-	public void addHyperlinkListener(IHyperlinkListener listener) {
-		if (listeners == null)
-			listeners = new ListenerList();
-		listeners.add(listener);
-	}
-
-	/**
-	 * Removes the event listener from this hyperlink.
-	 * 
-	 * @param listener
-	 *            the event listener to remove
-	 */
-	public void removeHyperlinkListener(IHyperlinkListener listener) {
-		if (listeners == null)
-			return;
-		listeners.remove(listener);
-	}
-
-	/**
-	 * Returns the selection state of the control. When focus is gained, the
-	 * state will be <samp>true </samp>; it will switch to <samp>false </samp>
-	 * when the control looses focus.
-	 * 
-	 * @return <code>true</code> if the widget has focus, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean getSelection() {
-		return hasFocus;
-	}
-
-	/**
-	 * Called when hyperlink is entered. Subclasses that override this method
-	 * must call 'super'.
-	 */
-	protected void handleEnter(Event e) {
-		redraw();
-		if (listeners == null)
-			return;
-		int size = listeners.size();
-		HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(),
-				e.stateMask);
-		Object[] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-			listener.linkEntered(he);
-		}
-	}
-
-	/**
-	 * Called when hyperlink is exited. Subclasses that override this method
-	 * must call 'super'.
-	 */
-	protected void handleExit(Event e) {
-		// disarm the link; won't activate on mouseup
-		armed = false;
-		redraw();
-		if (listeners == null)
-			return;
-		int size = listeners.size();
-		HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(),
-				e.stateMask);
-		Object[] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-			listener.linkExited(he);
-		}
-	}
-
-	/**
-	 * Called when hyperlink has been activated. Subclasses that override this
-	 * method must call 'super'.
-	 */
-	protected void handleActivate(Event e) {
-		// disarm link, back to normal state
-		armed = false;
-		if (listeners == null)
-			return;
-		int size = listeners.size();
-		setCursor(FormsResources.getBusyCursor());
-		HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(),
-				e.stateMask);
-		Object[] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-			listener.linkActivated(he);
-		}
-		if (!isDisposed())
-			setCursor(FormsResources.getHandCursor());
-		triggerAccessible();
-	}
-
-	void triggerAccessible() {
-		getAccessible().setFocus(ACC.CHILDID_SELF);
-	}
-
-	/**
-	 * Sets the object associated with this hyperlink. Concrete implementation
-	 * of this class can use if to store text, URLs or model objects that need
-	 * to be processed on hyperlink events.
-	 * 
-	 * @param href
-	 *            the hyperlink object reference
-	 */
-	public void setHref(Object href) {
-		setData("href", href); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the object associated with this hyperlink.
-	 * 
-	 * @see #setHref
-	 * @return the hyperlink object reference
-	 */
-	public Object getHref() {
-		return getData("href"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the textual representation of this hyperlink suitable for showing
-	 * in tool tips or on the status line.
-	 * 
-	 * @return the hyperlink text
-	 */
-	public String getText() {
-		return getToolTipText();
-	}
-
-	/**
-	 * Paints the hyperlink as a reaction to the provided paint event.
-	 * 
-	 * @param gc
-	 *            graphic context
-	 */
-	protected abstract void paintHyperlink(GC gc);
-
-	/**
-	 * Paints the control as a reaction to the provided paint event.
-	 * 
-	 * @param e
-	 *            the paint event
-	 */
-	protected void paint(PaintEvent e) {
-		GC gc = e.gc;
-		Rectangle clientArea = getClientArea();
-		if (clientArea.width == 0 || clientArea.height == 0)
-			return;
-		paintHyperlink(gc);
-		if (paintFocus && hasFocus) {
-			Rectangle carea = getClientArea();
-			gc.setForeground(getForeground());
-			gc.drawFocus(0, 0, carea.width, carea.height);
-		}
-	}
-
-	private void handleMouseDown(Event e) {
-		if (e.button != 1)
-			return;
-		// armed and ready to activate on mouseup
-		armed = true;
-	}
-
-	private void handleMouseUp(Event e) {
-		if (!armed || e.button != 1)
-			return;
-		Point size = getSize();
-		// Filter out mouse up events outside
-		// the link. This can happen when mouse is
-		// clicked, dragged outside the link, then
-		// released.
-		if (e.x < 0)
-			return;
-		if (e.y < 0)
-			return;
-		if (e.x >= size.x)
-			return;
-		if (e.y >= size.y)
-			return;
-		handleActivate(e);
-	}
-
-	private void handleMouseMove(Event e) {
-		// disarm link if we move out of bounds
-		if (armed) {
-			Point size = getSize();
-			armed = (e.x >= 0 && e.y >= 0 && e.x < size.x && e.y < size.y);
-		}
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
-	 */
-
-	public void setEnabled (boolean enabled) {
-		super.setEnabled(enabled);
-		redraw();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java
deleted file mode 100644
index 42e9375..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     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.min(ncolumns, children.length);
-			ncolumns = Math.max(ncolumns, minNumColumns);
-			ncolumns = Math.min(ncolumns, maxNumColumns);
-		}
-		int perColHeight = cheight / ncolumns;
-		if (cheight % ncolumns != 0)
-			perColHeight++;
-		int colHeight = 0;
-		int[] heights = new int[ncolumns];
-		int ncol = 0;
-		
-		boolean fillIn = false;
-		
-		for (int i = 0; i < sizes.length; i++) {
-			int childHeight = sizes[i].y;
-			if (i>0 && colHeight + childHeight > perColHeight) {
-				heights[ncol] = colHeight;
-				ncol++;
-				if (ncol == ncolumns || fillIn) {
-					// overflow - start filling in
-					fillIn = true;
-					ncol = findShortestColumn(heights);
-				}
-				colHeight = heights[ncol];
-			}
-			if (colHeight > 0)
-				colHeight += verticalSpacing;
-			colHeight += childHeight;
-		}
-		heights[ncol] = Math.max(heights[ncol],colHeight);
-		
-		Point size = new Point(0, 0);
-		for (int i = 0; i < ncolumns; i++) {
-			size.y = Math.max(size.y, heights[i]);
-		}
-		size.x = cwidth * ncolumns + (ncolumns - 1) * horizontalSpacing;
-		size.x += leftMargin + rightMargin;
-		//System.out.println("ColumnLayout: whint="+wHint+", size.x="+size.x);
-		size.y += topMargin + bottomMargin;
-		return size;
-	}
-
-	private Point computeControlSize(Control c, int wHint) {
-		ColumnLayoutData cd = (ColumnLayoutData) c.getLayoutData();
-		int widthHint = cd != null ? cd.widthHint : wHint;
-		int heightHint = cd != null ? cd.heightHint : SWT.DEFAULT;
-		return c.computeSize(widthHint, heightHint);
-	}
-
-	private int findShortestColumn(int[] heights) {
-		int result = 0;
-		int height = Integer.MAX_VALUE;
-		for (int i = 0; i < heights.length; i++) {
-			if (height > heights[i]) {
-				height = heights[i];
-				result = i;
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite,
-	 *      boolean)
-	 */
-	protected void layout(Composite parent, boolean flushCache) {
-		Control[] children = parent.getChildren();
-		Rectangle carea = parent.getClientArea();
-		int cwidth = 0;
-		int cheight = 0;
-		Point[] sizes = new Point[children.length];
-		for (int i = 0; i < children.length; i++) {
-			sizes[i] = computeControlSize(children[i], SWT.DEFAULT);
-			cwidth = Math.max(cwidth, sizes[i].x);
-			cheight += sizes[i].y;
-		}
-		int ncolumns = (carea.width - leftMargin - rightMargin - horizontalSpacing) / (cwidth + horizontalSpacing);
-		ncolumns = Math.min(ncolumns, children.length);		
-		ncolumns = Math.max(ncolumns, minNumColumns);
-		ncolumns = Math.min(ncolumns, maxNumColumns);
-		int realWidth = (carea.width - leftMargin - rightMargin + horizontalSpacing) / ncolumns - horizontalSpacing;
-//		int childrenPerColumn = children.length / ncolumns;
-//		if (children.length % ncolumns != 0)
-//			childrenPerColumn++;
-//		int colWidth = 0;
-
-		int fillWidth = Math.max(cwidth, realWidth);
-		
-		int perColHeight = cheight / ncolumns;
-		if (cheight % ncolumns != 0)
-			perColHeight++;
-		
-		int colHeight = 0;
-		int[] heights = new int[ncolumns];
-		int ncol = 0;
-		int x = leftMargin;
-		boolean fillIn = false;
-		
-		for (int i = 0; i < sizes.length; i++) {
-			Control child = children[i];
-			Point csize = sizes[i];
-			ColumnLayoutData cd = (ColumnLayoutData) child.getLayoutData();
-			int align = cd != null ? cd.horizontalAlignment : ColumnLayoutData.FILL;
-			int childWidth = align == ColumnLayoutData.FILL ? fillWidth : csize.x;
-
-			if (i>0 && colHeight + csize.y > perColHeight) {
-				heights[ncol] = colHeight;
-				if (fillIn || ncol == ncolumns-1) {
-					// overflow - start filling in
-					fillIn = true;
-					ncol = findShortestColumn(heights);
-					
-					x = leftMargin + ncol * (fillWidth + horizontalSpacing);
-
-				}
-				else {
-					ncol++;
-					x += fillWidth + horizontalSpacing;
-				}
-				colHeight = heights[ncol];
-			}
-			if (colHeight > 0)
-				colHeight += verticalSpacing;
-			
-			
-			switch (align) {
-				case ColumnLayoutData.LEFT :
-				case ColumnLayoutData.FILL :
-					child.setBounds(x, topMargin+colHeight, childWidth, csize.y);
-					break;
-				case ColumnLayoutData.RIGHT :
-					child.setBounds(x + fillWidth - childWidth, topMargin+colHeight, childWidth, csize.y);
-					break;
-				case ColumnLayoutData.CENTER :
-					child.setBounds(x + fillWidth / 2 - childWidth / 2, topMargin+colHeight, childWidth, csize.y);
-					break;
-			}
-			
-			colHeight += csize.y;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.widgets.ILayoutExtension#computeMaximumWidth(org.eclipse.swt.widgets.Composite,
-	 *      boolean)
-	 */
-	public int computeMaximumWidth(Composite parent, boolean changed) {
-		return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.widgets.ILayoutExtension#computeMinimumWidth(org.eclipse.swt.widgets.Composite,
-	 *      boolean)
-	 */
-	public int computeMinimumWidth(Composite parent, boolean changed) {
-		return computeSize(parent, 0, SWT.DEFAULT, changed).x;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.java
deleted file mode 100644
index 2f6fc09..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.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.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 c540514..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ExpandableComposite.java
+++ /dev/null
@@ -1,1097 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Kai Nacke - Fix for Bug 202382
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IExpansionListener;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-import org.eclipse.ui.internal.forms.widgets.FormsResources;
-
-/**
- * This composite is capable of expanding or collapsing a single client that is
- * its direct child. The composite renders an expansion toggle affordance
- * (according to the chosen style), and a title that also acts as a hyperlink
- * (can be selected and is traversable). The client is layed out below the title
- * when expanded, or hidden when collapsed.
- * <p>
- * The widget can be instantiated as-is, or subclassed to modify some aspects of
- * it. *
- * <p>
- * Since 3.1, left/right arrow keys can be used to control the expansion state.
- * If several expandable composites are created in the same parent, up/down
- * arrow keys can be used to traverse between them. Expandable text accepts
- * mnemonics and mnemonic activation will toggle the expansion state.
- * 
- * <p>
- * While expandable composite recognize that different styles can be used to
- * render the title bar, and even defines the constants for these styles (<code>TITLE_BAR</code>
- * and <code>SHORT_TITLE_BAR</code> the actual painting is done in the
- * subclasses.
- * 
- * @see Section
- * @since 3.0
- */
-public class ExpandableComposite extends Canvas {
-	/**
-	 * If this style is used, a twistie will be used to render the expansion
-	 * toggle.
-	 */
-	public static final int TWISTIE = 1 << 1;
-
-	/**
-	 * If this style is used, a tree node with either + or - signs will be used
-	 * to render the expansion toggle.
-	 */
-	public static final int TREE_NODE = 1 << 2;
-
-	/**
-	 * If this style is used, the title text will be rendered as a hyperlink
-	 * that can individually accept focus. Otherwise, it will still act like a
-	 * hyperlink, but only the toggle control will accept focus.
-	 */
-	public static final int FOCUS_TITLE = 1 << 3;
-
-	/**
-	 * If this style is used, the client origin will be vertically aligned with
-	 * the title text. Otherwise, it will start at x = 0.
-	 */
-	public static final int CLIENT_INDENT = 1 << 4;
-
-	/**
-	 * If this style is used, computed size of the composite will take the
-	 * client width into consideration only in the expanded state. Otherwise,
-	 * client width will always be taken into acount.
-	 */
-	public static final int COMPACT = 1 << 5;
-
-	/**
-	 * If this style is used, the control will be created in the expanded state.
-	 * This state can later be changed programmatically or by the user if
-	 * TWISTIE or TREE_NODE style is used.
-	 */
-	public static final int EXPANDED = 1 << 6;
-
-	/**
-	 * If this style is used, title bar decoration will be painted behind the
-	 * text.
-	 */
-	public static final int TITLE_BAR = 1 << 8;
-
-	/**
-	 * If this style is used, a short version of the title bar decoration will
-	 * be painted behind the text. This style is useful when a more descrete
-	 * option is needed for the title bar.
-	 * 
-	 * @since 3.1
-	 */
-	public static final int SHORT_TITLE_BAR = 1 << 9;
-
-	/**
-	 * If this style is used, title will not be rendered.
-	 */
-	public static final int NO_TITLE = 1 << 12;
-
-	/**
-	 * By default, text client is right-aligned. If this style is used, it will
-	 * be positioned after the text control and vertically centered with it.
-	 */
-	public static final int LEFT_TEXT_CLIENT_ALIGNMENT = 1 << 13;
-
-	/**
-	 * Width of the margin that will be added around the control (default is 0).
-	 */
-	public int marginWidth = 0;
-
-	/**
-	 * Height of the margin that will be added around the control (default is
-	 * 0).
-	 */
-	public int marginHeight = 0;
-
-	/**
-	 * Vertical spacing between the title area and the composite client control
-	 * (default is 3).
-	 */
-	public int clientVerticalSpacing = 3;
-
-	/**
-	 * Vertical spacing between the title area and the description control
-	 * (default is 0). The description control is normally placed at the new
-	 * line as defined in the font used to render it. This value will be added
-	 * to it.
-	 * 
-	 * @since 3.3
-	 */
-	public int descriptionVerticalSpacing = 0;
-
-	/**
-	 * Horizontal margin around the inside of the title bar area when TITLE_BAR
-	 * or SHORT_TITLE_BAR style is used. This variable is not used otherwise.
-	 * 
-	 * @since 3.3
-	 */
-	public int titleBarTextMarginWidth = 6;
-
-	/**
-	 * The toggle widget used to expand the composite.
-	 */
-	protected ToggleHyperlink toggle;
-
-	/**
-	 * The text label for the title.
-	 */
-	protected Control textLabel;
-
-	/**
-	 * @deprecated this variable was left as protected by mistake. It will be
-	 *             turned into static and hidden in the future versions. Do not
-	 *             use them and do not change its value.
-	 */
-	protected int VGAP = 3;
-	/**
-	 * @deprecated this variable was left as protected by mistake. It will be
-	 *             turned into static and hidden in the future versions. Do not
-	 *             use it and do not change its value.
-	 */
-	protected int GAP = 4;
-
-	static final int IGAP = 4;
-	static final int IVGAP = 3;
-
-	private static final Point NULL_SIZE = new Point(0, 0);
-
-	private static final int VSPACE = 3;
-
-	private static final int SEPARATOR_HEIGHT = 2;
-
-	private int expansionStyle = TWISTIE | FOCUS_TITLE | EXPANDED;
-
-	private boolean expanded;
-
-	private Control textClient;
-
-	private Control client;
-
-	private ListenerList listeners = new ListenerList();
-
-	private Color titleBarForeground;
-
-	private class ExpandableLayout extends Layout implements ILayoutExtension {
-
-		private SizeCache toggleCache = new SizeCache();
-
-		private SizeCache textClientCache = new SizeCache();
-
-		private SizeCache textLabelCache = new SizeCache();
-
-		private SizeCache descriptionCache = new SizeCache();
-
-		private SizeCache clientCache = new SizeCache();
-
-		private void initCache(boolean shouldFlush) {
-			toggleCache.setControl(toggle);
-			textClientCache.setControl(textClient);
-			textLabelCache.setControl(textLabel);
-			descriptionCache.setControl(getDescriptionControl());
-			clientCache.setControl(client);
-
-			if (shouldFlush) {
-				toggleCache.flush();
-				textClientCache.flush();
-				textLabelCache.flush();
-				descriptionCache.flush();
-				clientCache.flush();
-			}
-		}
-
-		protected void layout(Composite parent, boolean changed) {
-			initCache(changed);
-
-			Rectangle clientArea = parent.getClientArea();
-			int thmargin = 0;
-			int tvmargin = 0;
-
-			if (hasTitleBar()) {
-				thmargin = titleBarTextMarginWidth;
-				tvmargin = IVGAP;
-			}
-			int x = marginWidth + thmargin;
-			int y = marginHeight + tvmargin;
-			Point tsize = NULL_SIZE;
-			Point tcsize = NULL_SIZE;
-			if (toggle != null)
-				tsize = toggleCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			int twidth = clientArea.width - marginWidth - marginWidth
-					- thmargin - thmargin;
-			if (tsize.x > 0)
-				twidth -= tsize.x + IGAP;
-			if (textClient != null) {
-				tcsize = textClientCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			Point size = NULL_SIZE;
-			if (textLabel != null) {
-				if (tcsize.x > 0 && FormUtil.isWrapControl(textClient)) {
-					size = textLabelCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-					if (twidth < size.x + IGAP + tcsize.x) {
-						twidth -= IGAP;
-						if (textLabel instanceof Label)
-							size = FormUtil.computeWrapSize(new GC(textLabel), ((Label)textLabel).getText(), Math.round(twidth*(size.x/(float)(size.x+tcsize.x))));
-						else
-							size = textLabelCache.computeSize(Math.round(twidth*(size.x/(float)(size.x+tcsize.x))), SWT.DEFAULT);
-						tcsize = textClientCache.computeSize(twidth-size.x, SWT.DEFAULT);
-					}
-				}
-				else {
-					if (tcsize.x > 0)
-						twidth -= tcsize.x + IGAP;
-					size = textLabelCache.computeSize(twidth, SWT.DEFAULT);
-				}
-			}
-			if (textLabel instanceof Label) {
-				Point defSize = textLabelCache.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				if (defSize.y == size.y) {
-					// One line - pick the smaller of the two widths
-					size.x = Math.min(defSize.x, size.x);
-				}
-			}
-			if (toggle != null) {
-				GC gc = new GC(ExpandableComposite.this);
-				gc.setFont(getFont());
-				FontMetrics fm = gc.getFontMetrics();
-				int textHeight = fm.getHeight();
-				gc.dispose();
-				if (textClient != null
-						&& (expansionStyle & LEFT_TEXT_CLIENT_ALIGNMENT) != 0) {
-					textHeight = Math.max(textHeight, tcsize.y);
-				}
-				int ty = textHeight / 2 - tsize.y / 2 + 1;
-				ty = Math.max(ty, 0);
-				ty += marginHeight + tvmargin;
-				toggle.setLocation(x, ty);
-				toggle.setSize(tsize);
-				x += tsize.x + IGAP;
-			}
-			if (textLabel != null) {
-				int ty = y;
-				if (textClient != null
-						&& (expansionStyle & LEFT_TEXT_CLIENT_ALIGNMENT) != 0) {
-					if (size.y < tcsize.y)
-						ty = tcsize.y / 2 - size.y / 2 + marginHeight
-								+ tvmargin;
-				}
-				textLabelCache.setBounds(x, ty, size.x, size.y);
-			}
-			if (textClient != null) {
-				int tcx;
-				if ((expansionStyle & LEFT_TEXT_CLIENT_ALIGNMENT) != 0) {
-					tcx = x + size.x + GAP;
-				} else {
-					tcx = clientArea.width - tcsize.x - marginWidth - thmargin;
-				}
-				textClientCache.setBounds(tcx, y, tcsize.x, tcsize.y);
-			}
-			int tbarHeight = 0;
-			if (size.y > 0)
-				tbarHeight = size.y;
-			if (tcsize.y > 0)
-				tbarHeight = Math.max(tbarHeight, tcsize.y);
-			y += tbarHeight;
-			if (hasTitleBar())
-				y += tvmargin;
-			if (getSeparatorControl() != null) {
-				y += VSPACE;
-				getSeparatorControl().setBounds(marginWidth, y,
-						clientArea.width - marginWidth - marginWidth,
-						SEPARATOR_HEIGHT);
-				y += SEPARATOR_HEIGHT;
-				if (expanded)
-					y += VSPACE;
-			}
-			if (expanded) {
-				int areaWidth = clientArea.width - marginWidth - marginWidth
-						- thmargin - thmargin;
-				int cx = marginWidth + thmargin;
-				if ((expansionStyle & CLIENT_INDENT) != 0) {
-					cx = x;
-					areaWidth -= x;
-				}
-				if (client != null) {
-					Point dsize = null;
-					Control desc = getDescriptionControl();
-					if (desc != null) {
-						dsize = descriptionCache.computeSize(areaWidth,
-								SWT.DEFAULT);
-						y += descriptionVerticalSpacing;
-						descriptionCache.setBounds(cx, y, areaWidth, dsize.y);
-						y += dsize.y + clientVerticalSpacing;
-					} else {
-						y += clientVerticalSpacing;
-						if (getSeparatorControl() != null)
-							y -= VSPACE;
-					}
-					int cwidth = areaWidth;
-					int cheight = clientArea.height - marginHeight
-							- marginHeight - y;
-					clientCache.setBounds(cx, y, cwidth, cheight);
-				}
-			}
-		}
-
-		protected Point computeSize(Composite parent, int wHint, int hHint,
-				boolean changed) {
-			initCache(changed);
-
-			int width = 0, height = 0;
-			Point tsize = NULL_SIZE;
-			int twidth = 0;
-			if (toggle != null) {
-				tsize = toggleCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				twidth = tsize.x + IGAP;
-			}
-			int thmargin = 0;
-			int tvmargin = 0;
-
-			if (hasTitleBar()) {
-				thmargin = titleBarTextMarginWidth;
-				tvmargin = IVGAP;
-			}
-			int innerwHint = wHint;
-			if (innerwHint != SWT.DEFAULT)
-				innerwHint -= twidth + marginWidth + marginWidth + thmargin
-						+ thmargin;
-
-			int innertHint = innerwHint;
-
-			Point tcsize = NULL_SIZE;
-			if (textClient != null) {
-				tcsize = textClientCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			Point size = NULL_SIZE;
-
-			if (textLabel != null) {
-				if (tcsize.x > 0 && FormUtil.isWrapControl(textClient)) {
-					size = textLabelCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-					if (innertHint != SWT.DEFAULT && innertHint < size.x + IGAP + tcsize.x) {
-						innertHint -= IGAP;
-						if (textLabel instanceof Label)
-							size = FormUtil.computeWrapSize(new GC(textLabel), ((Label)textLabel).getText(), Math.round(innertHint*(size.x/(float)(size.x+tcsize.x))));
-						else
-							size = textLabelCache.computeSize(Math.round(innertHint*(size.x/(float)(size.x+tcsize.x))), SWT.DEFAULT);
-						tcsize = textClientCache.computeSize(innertHint-size.x, SWT.DEFAULT);
-					}
-				} else {
-					if (innertHint != SWT.DEFAULT && tcsize.x > 0)
-						innertHint -= IGAP + tcsize.x;
-					size = textLabelCache.computeSize(innertHint, SWT.DEFAULT);
-				}
-			}
-			if (textLabel instanceof Label) {
-				Point defSize = textLabelCache.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				if (defSize.y == size.y) {
-					// One line - pick the smaller of the two widths
-					size.x = Math.min(defSize.x, size.x);
-				}
-			}
-			if (size.x > 0)
-				width = size.x;
-			if (tcsize.x > 0)
-				width += IGAP + tcsize.x;
-			if (toggle != null)
-				width += twidth;
-			height = tcsize.y > 0 ? Math.max(tcsize.y, size.y) : size.y;
-			if (getSeparatorControl() != null) {
-				height += VSPACE + SEPARATOR_HEIGHT;
-				if (expanded && client != null)
-					height += VSPACE;
-			}
-			// if (hasTitleBar())
-			// height += VSPACE;
-			if ((expanded || (expansionStyle & COMPACT) == 0) && client != null) {
-				int cwHint = wHint;
-				int clientIndent = 0;
-				if ((expansionStyle & CLIENT_INDENT) != 0)
-					clientIndent = twidth;
-
-				if (cwHint != SWT.DEFAULT) {
-					cwHint -= marginWidth + marginWidth + thmargin + thmargin;
-					if ((expansionStyle & CLIENT_INDENT) != 0)
-						if (tcsize.x > 0)
-							cwHint -= twidth;
-				}
-				Point dsize = null;
-				Point csize = clientCache.computeSize(FormUtil.getWidthHint(
-						cwHint, client), SWT.DEFAULT);
-				if (getDescriptionControl() != null) {
-					int dwHint = cwHint;
-					if (dwHint == SWT.DEFAULT) {
-						dwHint = csize.x;
-						if ((expansionStyle & CLIENT_INDENT) != 0)
-							dwHint -= twidth;
-					}
-					dsize = descriptionCache.computeSize(dwHint, SWT.DEFAULT);
-				}
-				if (dsize != null) {
-					width = Math.max(width, dsize.x + clientIndent);
-					if (expanded)
-						height += descriptionVerticalSpacing + dsize.y
-								+ clientVerticalSpacing;
-				} else {
-					height += clientVerticalSpacing;
-					if (getSeparatorControl() != null)
-						height -= VSPACE;
-				}
-				width = Math.max(width, csize.x + clientIndent);
-				if (expanded)
-					height += csize.y;
-			}
-			if (toggle != null)
-				height = height - size.y + Math.max(size.y, tsize.y);
-
-			Point result = new Point(width + marginWidth + marginWidth
-					+ thmargin + thmargin, height + marginHeight + marginHeight
-					+ tvmargin + tvmargin);
-			return result;
-		}
-
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, 0, SWT.DEFAULT, changed).x;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.parts.ILayoutExtension#computeMinimumWidth(org.eclipse.swt.widgets.Composite,
-		 *      boolean)
-		 */
-		public int computeMaximumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-		}
-	}
-
-	/**
-	 * Creates an expandable composite using a TWISTIE toggle.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            SWT style bits
-	 */
-	public ExpandableComposite(Composite parent, int style) {
-		this(parent, style, TWISTIE);
-	}
-
-	/**
-	 * Creates the expandable composite in the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param style
-	 *            the control style (as expected by SWT subclass)
-	 * @param expansionStyle
-	 *            the style of the expansion widget (TREE_NODE, TWISTIE,
-	 *            CLIENT_INDENT, COMPACT, FOCUS_TITLE,
-	 *            LEFT_TEXT_CLIENT_ALIGNMENT, NO_TITLE)
-	 */
-	public ExpandableComposite(Composite parent, int style, int expansionStyle) {
-		super(parent, style);
-		this.expansionStyle = expansionStyle;
-		if ((expansionStyle & TITLE_BAR) != 0)
-			setBackgroundMode(SWT.INHERIT_DEFAULT);
-		super.setLayout(new ExpandableLayout());
-		if (hasTitleBar()) {
-			this.addPaintListener(new PaintListener() {
-				public void paintControl(PaintEvent e) {
-					onPaint(e);
-				}
-			});
-		}
-		if ((expansionStyle & TWISTIE) != 0)
-			toggle = new Twistie(this, SWT.NULL);
-		else if ((expansionStyle & TREE_NODE) != 0)
-			toggle = new TreeNode(this, SWT.NULL);
-		else
-			expanded = true;
-		if ((expansionStyle & EXPANDED) != 0)
-			expanded = true;
-		if (toggle != null) {
-			toggle.setExpanded(expanded);
-			toggle.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					toggleState();
-				}
-			});
-			toggle.addPaintListener(new PaintListener() {
-				public void paintControl(PaintEvent e) {
-					if (textLabel instanceof Label && !isFixedStyle())
-						textLabel.setForeground(toggle.hover ? toggle
-								.getHoverDecorationColor()
-								: getTitleBarForeground());
-				}
-			});
-			toggle.addKeyListener(new KeyAdapter() {
-				public void keyPressed(KeyEvent e) {
-					if (e.keyCode == SWT.ARROW_UP) {
-						verticalMove(false);
-						e.doit = false;
-					} else if (e.keyCode == SWT.ARROW_DOWN) {
-						verticalMove(true);
-						e.doit = false;
-					}
-				}
-			});
-			if ((getExpansionStyle()&FOCUS_TITLE)==0) {
-				toggle.paintFocus=false;
-				toggle.addFocusListener(new FocusListener() {
-					public void focusGained(FocusEvent e) {
-						textLabel.redraw();
-					}
-
-					public void focusLost(FocusEvent e) {
-						textLabel.redraw();
-					}
-				});
-			}
-		}
-		if ((expansionStyle & FOCUS_TITLE) != 0) {
-			Hyperlink link = new Hyperlink(this, SWT.WRAP);
-			link.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					programmaticToggleState();
-				}
-			});
-			textLabel = link;
-		} else if ((expansionStyle & NO_TITLE) == 0) {
-			final Label label = new Label(this, SWT.WRAP);
-			if (!isFixedStyle()) {
-				label.setCursor(FormsResources.getHandCursor());
-				Listener listener = new Listener() {
-					public void handleEvent(Event e) {
-						switch (e.type) {
-						case SWT.MouseDown:
-							if (toggle != null)
-								toggle.setFocus();
-							break;
-						case SWT.MouseUp:
-							label.setCursor(FormsResources.getBusyCursor());
-							programmaticToggleState();
-							label.setCursor(FormsResources.getHandCursor());
-							break;
-						case SWT.MouseEnter:
-							if (toggle != null) {
-								label.setForeground(toggle
-										.getHoverDecorationColor());
-								toggle.hover = true;
-								toggle.redraw();
-							}
-							break;
-						case SWT.MouseExit:
-							if (toggle != null) {
-								label.setForeground(getTitleBarForeground());
-								toggle.hover = false;
-								toggle.redraw();
-							}
-							break;
-						case SWT.Paint:
-							if (toggle != null) {
-								paintTitleFocus(e.gc);
-							}
-							break;
-						}
-					}
-				};
-				label.addListener(SWT.MouseDown, listener);
-				label.addListener(SWT.MouseUp, listener);
-				label.addListener(SWT.MouseEnter, listener);
-				label.addListener(SWT.MouseExit, listener);
-				label.addListener(SWT.Paint, listener);
-			}
-			textLabel = label;
-		}
-		if (textLabel != null) {
-			textLabel.setMenu(getMenu());
-			textLabel.addTraverseListener(new TraverseListener() {
-				public void keyTraversed(TraverseEvent e) {
-					if (e.detail == SWT.TRAVERSE_MNEMONIC) {
-						// steal the mnemonic
-						if (!isVisible() || !isEnabled())
-							return;
-						if (FormUtil.mnemonicMatch(getText(), e.character)) {
-							e.doit = false;
-							if (!isFixedStyle()) {
-							    programmaticToggleState();
-							}
-							setFocus();
-						}
-					}
-				}
-			});
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#forceFocus()
-	 */
-	public boolean forceFocus() {
-		return false;
-	}
-
-	/**
-	 * Overrides 'super' to pass the menu to the text label.
-	 * 
-	 * @param menu
-	 *            the menu from the parent to attach to this control.
-	 */
-
-	public void setMenu(Menu menu) {
-		if (textLabel != null)
-			textLabel.setMenu(menu);
-		super.setMenu(menu);
-	}
-
-	/**
-	 * Prevents assignment of the layout manager - expandable composite uses its
-	 * own layout.
-	 */
-	public final void setLayout(Layout layout) {
-	}
-
-	/**
-	 * Sets the background of all the custom controls in the expandable.
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		if ((getExpansionStyle() & TITLE_BAR) == 0) {
-			if (textLabel != null)
-				textLabel.setBackground(bg);
-			if (toggle != null)
-				toggle.setBackground(bg);
-		}
-	}
-
-	/**
-	 * Sets the foreground of all the custom controls in the expandable.
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		if (textLabel != null)
-			textLabel.setForeground(fg);
-		if (toggle != null)
-			toggle.setForeground(fg);
-	}
-
-	/**
-	 * Sets the color of the toggle control.
-	 * 
-	 * @param c
-	 *            the color object
-	 */
-	public void setToggleColor(Color c) {
-		if (toggle != null)
-			toggle.setDecorationColor(c);
-	}
-
-	/**
-	 * Sets the active color of the toggle control (when the mouse enters the
-	 * toggle area).
-	 * 
-	 * @param c
-	 *            the active color object
-	 */
-	public void setActiveToggleColor(Color c) {
-		if (toggle != null)
-			toggle.setHoverDecorationColor(c);
-	}
-
-	/**
-	 * Sets the fonts of all the custom controls in the expandable.
-	 */
-	public void setFont(Font font) {
-		super.setFont(font);
-		if (textLabel != null)
-			textLabel.setFont(font);
-		if (toggle != null)
-			toggle.setFont(font);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
-	 */
-
-	public void setEnabled(boolean enabled) {
-		if (textLabel != null)
-			textLabel.setEnabled(enabled);
-		if (toggle != null)
-			toggle.setEnabled(enabled);
-		super.setEnabled(enabled);
-	}
-
-	/**
-	 * Sets the client of this expandable composite. The client must not be
-	 * <samp>null </samp> and must be a direct child of this container.
-	 * 
-	 * @param client
-	 *            the client that will be expanded or collapsed
-	 */
-	public void setClient(Control client) {
-		Assert.isTrue(client != null && client.getParent().equals(this));
-		this.client = client;
-	}
-
-	/**
-	 * Returns the current expandable client.
-	 * 
-	 * @return the client control
-	 */
-	public Control getClient() {
-		return client;
-	}
-
-	/**
-	 * Sets the title of the expandable composite. The title will act as a
-	 * hyperlink and activating it will toggle the client between expanded and
-	 * collapsed state.
-	 * 
-	 * @param title
-	 *            the new title string
-	 * @see #getText()
-	 */
-	public void setText(String title) {
-		if (textLabel instanceof Label)
-			((Label) textLabel).setText(title);
-		else if (textLabel instanceof Hyperlink)
-			((Hyperlink) textLabel).setText(title);
-	}
-
-	/**
-	 * Returns the title string.
-	 * 
-	 * @return the title string
-	 * @see #setText(String)
-	 */
-	public String getText() {
-		if (textLabel instanceof Label)
-			return ((Label) textLabel).getText();
-		else if (textLabel instanceof Hyperlink)
-			return ((Hyperlink) textLabel).getText();
-		else
-			return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Tests the expanded state of the composite.
-	 * 
-	 * @return <samp>true </samp> if expanded, <samp>false </samp> if collapsed.
-	 */
-	public boolean isExpanded() {
-		return expanded;
-	}
-
-	/**
-	 * Returns the bitwise-ORed style bits for the expansion control.
-	 * 
-	 * @return the bitwise-ORed style bits for the expansion control
-	 */
-	public int getExpansionStyle() {
-		return expansionStyle;
-	}
-
-	/**
-	 * Programmatically changes expanded state.
-	 * 
-	 * @param expanded
-	 *            the new expanded state
-	 */
-	public void setExpanded(boolean expanded) {
-		internalSetExpanded(expanded);
-		if (toggle != null)
-			toggle.setExpanded(expanded);
-	}
-
-	/**
-	 * Performs the expansion state change for the expandable control.
-	 * 
-	 * @param expanded
-	 *            the expansion state
-	 */
-	protected void internalSetExpanded(boolean expanded) {
-		if (this.expanded != expanded) {
-			this.expanded = expanded;
-			if (getDescriptionControl() != null)
-				getDescriptionControl().setVisible(expanded);
-			if (client != null)
-				client.setVisible(expanded);
-			layout();
-		}
-	}
-
-	/**
-	 * Adds the listener that will be notified when the expansion state changes.
-	 * 
-	 * @param listener
-	 *            the listener to add
-	 */
-	public void addExpansionListener(IExpansionListener listener) {
-		listeners.add(listener);
-	}
-
-	/**
-	 * Removes the expansion listener.
-	 * 
-	 * @param listener
-	 *            the listner to remove
-	 */
-	public void removeExpansionListener(IExpansionListener listener) {
-		listeners.remove(listener);
-	}
-
-	/**
-	 * If TITLE_BAR or SHORT_TITLE_BAR style is used, title bar decoration will
-	 * be painted behind the text in this method. The default implementation
-	 * does nothing - subclasses are responsible for rendering the title area.
-	 * 
-	 * @param e
-	 *            the paint event
-	 */
-	protected void onPaint(PaintEvent e) {
-	}
-
-	/**
-	 * Returns description control that will be placed under the title if
-	 * present.
-	 * 
-	 * @return the description control or <samp>null </samp> if not used.
-	 */
-	protected Control getDescriptionControl() {
-		return null;
-	}
-
-	/**
-	 * Returns the separator control that will be placed between the title and
-	 * the description if present.
-	 * 
-	 * @return the separator control or <samp>null </samp> if not used.
-	 */
-	protected Control getSeparatorControl() {
-		return null;
-	}
-
-	/**
-	 * Computes the size of the expandable composite.
-	 * 
-	 * @see org.eclipse.swt.widgets.Composite#computeSize
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		Point size;
-		ExpandableLayout layout = (ExpandableLayout) getLayout();
-		if (wHint == SWT.DEFAULT || hHint == SWT.DEFAULT) {
-			size = layout.computeSize(this, wHint, hHint, changed);
-		} else {
-			size = new Point(wHint, hHint);
-		}
-		Rectangle trim = computeTrim(0, 0, size.x, size.y);
-		return new Point(trim.width, trim.height);
-	}
-
-	/**
-	 * Returns <samp>true </samp> if the composite is fixed i.e. cannot be
-	 * expanded or collapsed. Fixed control will still contain the title,
-	 * separator and description (if present) as well as the client, but will be
-	 * in the permanent expanded state and the toggle affordance will not be
-	 * shown.
-	 * 
-	 * @return <samp>true </samp> if the control is fixed in the expanded state,
-	 *         <samp>false </samp> if it can be collapsed.
-	 */
-	protected boolean isFixedStyle() {
-		return (expansionStyle & TWISTIE) == 0
-				&& (expansionStyle & TREE_NODE) == 0;
-	}
-
-	/**
-	 * Returns the text client control.
-	 * 
-	 * @return Returns the text client control if specified, or
-	 *         <code>null</code> if not.
-	 */
-	public Control getTextClient() {
-		return textClient;
-	}
-
-	/**
-	 * Sets the text client control. Text client is a control that is a child of
-	 * the expandable composite and is placed to the right of the text. It can
-	 * be used to place small image hyperlinks. If more than one control is
-	 * needed, use Composite to hold them. Care should be taken that the height
-	 * of the control is comparable to the height of the text.
-	 * 
-	 * @param textClient
-	 *            the textClient to set or <code>null</code> if not needed any
-	 *            more.
-	 */
-	public void setTextClient(Control textClient) {
-		if (this.textClient != null)
-			this.textClient.dispose();
-		this.textClient = textClient;
-	}
-
-	/**
-	 * Returns the difference in height between the text and the text client (if
-	 * set). This difference can cause vertical alignment problems when two
-	 * expandable composites are placed side by side, one with and one without
-	 * the text client. Use this method obtain the value to add to either
-	 * <code>descriptionVerticalSpacing</code> (if you have description) or
-	 * <code>clientVerticalSpacing</code> to correct the alignment of the
-	 * expandable without the text client.
-	 * 
-	 * @return the difference in height between the text and the text client or
-	 *         0 if no corrective action is needed.
-	 * @since 3.3
-	 */
-	public int getTextClientHeightDifference() {
-		if (textClient == null || textLabel == null)
-			return 0;
-		int theight = textLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		int tcheight = textClient.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		return Math.max(tcheight - theight, 0);
-	}
-
-	/**
-	 * Tests if this expandable composite renders a title bar around the text.
-	 * 
-	 * @return <code>true</code> for <code>TITLE_BAR</code> or
-	 *         <code>SHORT_TITLE_BAR</code> styles, <code>false</code>
-	 *         otherwise.
-	 */
-	protected boolean hasTitleBar() {
-		return (getExpansionStyle() & TITLE_BAR) != 0
-				|| (getExpansionStyle() & SHORT_TITLE_BAR) != 0;
-	}
-
-	/**
-	 * Sets the color of the title bar foreground when TITLE_BAR style is used.
-	 * 
-	 * @param color
-	 *            the title bar foreground
-	 */
-	public void setTitleBarForeground(Color color) {
-		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;
-	}
-
-	// end of APIs
-
-	private void toggleState() {
-		boolean newState = !isExpanded();
-		fireExpanding(newState, true);
-		internalSetExpanded(newState);
-		fireExpanding(newState, false);
-		if (newState)
-			FormUtil.ensureVisible(this);
-	}
-
-	private void fireExpanding(boolean state, boolean before) {
-		int size = listeners.size();
-		if (size == 0)
-			return;
-		ExpansionEvent e = new ExpansionEvent(this, state);
-		Object [] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IExpansionListener listener = (IExpansionListener) listenerList[i];
-			if (before)
-				listener.expansionStateChanging(e);
-			else
-				listener.expansionStateChanged(e);
-		}
-	}
-
-	private void verticalMove(boolean down) {
-		Composite parent = getParent();
-		Control[] children = parent.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child == this) {
-				ExpandableComposite sibling = getSibling(children, i, down);
-				if (sibling != null && sibling.toggle != null) {
-					sibling.setFocus();
-				}
-				break;
-			}
-		}
-	}
-
-	private ExpandableComposite getSibling(Control[] children, int index,
-			boolean down) {
-		int loc = down ? index + 1 : index - 1;
-		while (loc >= 0 && loc < children.length) {
-			Control c = children[loc];
-			if (c instanceof ExpandableComposite && c.isVisible())
-				return (ExpandableComposite) c;
-			loc = down ? loc + 1 : loc - 1;
-		}
-		return null;
-	}
-
-	private void programmaticToggleState() {
-		if (toggle != null)
-			toggle.setExpanded(!toggle.isExpanded());
-		toggleState();
-	}
-	
-	private void paintTitleFocus(GC gc) {
-		Point size = textLabel.getSize();
-		gc.setBackground(textLabel.getBackground());
-		gc.setForeground(textLabel.getForeground());
-		if (toggle.isFocusControl())
-			gc.drawFocus(0, 0, size.x, size.y);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java
deleted file mode 100644
index 893f33c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java
+++ /dev/null
@@ -1,789 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.internal.forms.widgets.FormHeading;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * Form is a custom control that renders a title and an optional background
- * image above the body composite. It can be used alone when part of parents
- * that are scrolled. If scrolling is required, use <code>ScrolledForm</code>
- * instead because it has an instance of <code>Form</code> and adds scrolling
- * capability.
- * <p>
- * Form can have a title if set. If not set, title area will not be left empty -
- * form body will be resized to fill the entire form. In addition, an optional
- * title image can be set and is rendered to the left of the title (since 3.2).
- * <p>
- * Form can have a title drop down menu if the menu bar manager is not empty
- * (since 3.3).
- * <p>
- * Form title can support drag and drop if drag and drop support methods are
- * invoked. When used, additional decoration is rendered behind the title to
- * reinforce the drag and drop ability (since 3.3).
- * <p>
- * The form supports status messages. These messages can have various severity
- * (error, warning, info or none). If status hyperlink handler is specified, the
- * messages with the specified severity other than none will be rendered as
- * hyperlinks.
- * <p>
- * Form can have a background image behind the title text. The image is tiled as
- * many times as needed to fill the title area. Alternatively, gradient
- * background can be painted vertically or horizontally.
- * <p>
- * Form can be put in a 'busy' state. While in this state, title image is
- * replaced with an animation that lasts as long as the 'busy' state is active.
- * <p>
- * It is possible to create an optional head client control. When created, this
- * control is placed in the form heading as a second row.
- * <p>
- * Form has a custom layout manager that is wrap-enabled. If a form is placed in
- * a composite whose layout manager implements ILayoutExtension, the body of the
- * form will participate in wrapping as long as its layout manager implements
- * ILayoutExtension as well.
- * <p>
- * Children of the form should typically be created using FormToolkit to match
- * the appearance and behaviour. When creating children, use the form body as a
- * parent by calling 'getBody()' on the form instance. Example:
- * 
- * <pre>
- * FormToolkit toolkit = new FormToolkit(parent.getDisplay());
- * Form form = toolkit.createForm(parent);
- * form.setText(&quot;Sample form&quot;);
- * form.getBody().setLayout(new GridLayout());
- * toolkit.createButton(form.getBody(), &quot;Checkbox&quot;, SWT.CHECK);
- * </pre>
- * 
- * <p>
- * No layout manager has been set on the body. Clients are required to set the
- * desired layout manager explicitly.
- * <p>
- * Although the class is not final, it should not be subclassed.
- * 
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class Form extends Composite {
-	private FormHeading head;
-
-	private Composite body;
-
-	private SizeCache bodyCache = new SizeCache();
-
-	private SizeCache headCache = new SizeCache();
-
-	private FormText selectionText;
-
-	private class FormLayout extends Layout implements ILayoutExtension {
-		public int computeMinimumWidth(Composite composite, boolean flushCache) {
-			return computeSize(composite, 5, SWT.DEFAULT, flushCache).x;
-		}
-
-		public int computeMaximumWidth(Composite composite, boolean flushCache) {
-			return computeSize(composite, SWT.DEFAULT, SWT.DEFAULT, flushCache).x;
-		}
-
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			if (flushCache) {
-				bodyCache.flush();
-				headCache.flush();
-			}
-			bodyCache.setControl(body);
-			headCache.setControl(head);
-
-			int width = 0;
-			int height = 0;
-
-			Point hsize = headCache.computeSize(FormUtil.getWidthHint(wHint,
-					head), SWT.DEFAULT);
-			width = Math.max(hsize.x, width);
-			height = hsize.y;
-			
-			boolean ignoreBody=getData(FormUtil.IGNORE_BODY)!=null;
-			
-			Point bsize;
-			if (ignoreBody)
-				bsize = new Point(0,0);
-			else
-				bsize = bodyCache.computeSize(FormUtil.getWidthHint(wHint,
-					body), SWT.DEFAULT);
-			width = Math.max(bsize.x, width);
-			height += bsize.y;
-			return new Point(width, height);
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			if (flushCache) {
-				bodyCache.flush();
-				headCache.flush();
-			}
-			bodyCache.setControl(body);
-			headCache.setControl(head);
-			Rectangle carea = composite.getClientArea();
-
-			Point hsize = headCache.computeSize(carea.width, SWT.DEFAULT);
-			headCache.setBounds(0, 0, carea.width, hsize.y);
-			bodyCache
-					.setBounds(0, hsize.y, carea.width, carea.height - hsize.y);
-		}
-	}
-
-	/**
-	 * Creates the form content control as a child of the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 */
-	public Form(Composite parent, int style) {
-		super(parent, SWT.NO_BACKGROUND | style);
-		super.setLayout(new FormLayout());
-		head = new FormHeading(this, SWT.NULL);
-		head.setMenu(parent.getMenu());
-		body = new LayoutComposite(this, SWT.NULL);
-		body.setMenu(parent.getMenu());
-	}
-
-	/**
-	 * Passes the menu to the form body.
-	 * 
-	 * @param menu
-	 *            the parent menu
-	 */
-	public void setMenu(Menu menu) {
-		super.setMenu(menu);
-		head.setMenu(menu);
-		body.setMenu(menu);
-	}
-
-	/**
-	 * Fully delegates the size computation to the internal layout manager.
-	 */
-	public final Point computeSize(int wHint, int hHint, boolean changed) {
-		return ((FormLayout) getLayout()).computeSize(this, wHint, hHint,
-				changed);
-	}
-
-	/**
-	 * Prevents from changing the custom control layout.
-	 */
-	public final void setLayout(Layout layout) {
-	}
-
-	/**
-	 * Returns the title text that will be rendered at the top of the form.
-	 * 
-	 * @return the title text
-	 */
-	public String getText() {
-		return head.getText();
-	}
-
-	/**
-	 * Returns the title image that will be rendered to the left of the title.
-	 * 
-	 * @return the title image or <code>null</code> if not set.
-	 * @since 3.2
-	 */
-	public Image getImage() {
-		return head.getImage();
-	}
-
-	/**
-	 * Sets the foreground color of the form. This color will also be used for
-	 * the body.
-	 * 
-	 * @param fg
-	 *            the foreground color
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		head.setForeground(fg);
-		body.setForeground(fg);
-	}
-
-	/**
-	 * Sets the background color of the form. This color will also be used for
-	 * the body.
-	 * 
-	 * @param bg
-	 *            the background color
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		head.setBackground(bg);
-		body.setBackground(bg);
-	}
-
-	/**
-	 * Sets the font of the header text.
-	 * 
-	 * @param font
-	 *            the new font
-	 */
-	public void setFont(Font font) {
-		super.setFont(font);
-		head.setFont(font);
-	}
-
-	/**
-	 * Sets the text to be rendered at the top of the form above the body as a
-	 * title.
-	 * <p>
-	 * <strong>Note:</strong> Mnemonics are indicated by an '&amp;' that causes
-	 * the next character to be the mnemonic. Mnemonics are not applicable in
-	 * the case of the form title but need to be taken into acount due to the
-	 * usage of the underlying widget that renders mnemonics in the title area.
-	 * The mnemonic indicator character '&amp;' can be escaped by doubling it in
-	 * the string, causing a single '&amp;' to be displayed.
-	 * </p>
-	 * 
-	 * @param text
-	 *            the title text
-	 */
-	public void setText(String text) {
-		head.setText(text);
-		layout();
-		redraw();
-	}
-
-	/**
-	 * Sets the image to be rendered to the left of the title. This image will
-	 * be temporarily hidden in two cases:
-	 * 
-	 * <ol>
-	 * <li>When the form is busy - replaced with a busy animation</li>
-	 * <li>When the form has message set - replaced with the image indicating
-	 * message severity</li>
-	 * </ol>
-	 * 
-	 * @param image
-	 *            the title image or <code>null</code> to show no image.
-	 * @since 3.2
-	 */
-	public void setImage(Image image) {
-		head.setImage(image);
-		layout();
-		redraw();
-	}
-
-	/**
-	 * Sets the background colors to be painted behind the title text in a
-	 * gradient. Note that this method will reset color previously set by
-	 * {@link #setBackground(Color)}. This is necessary for the simulated
-	 * transparency of the heading in all of its children control.
-	 * 
-	 * @param gradientColors
-	 *            the array of colors that form the gradient
-	 * @param percents
-	 *            the partition of the overall space between the gradient colors
-	 * @param vertical
-	 *            of <code>true</code>, the gradient will be rendered
-	 *            vertically, if <code>false</code> the orientation will be
-	 *            horizontal.
-	 */
-
-	public void setTextBackground(Color[] gradientColors, int[] percents,
-			boolean vertical) {
-		head.setTextBackground(gradientColors, percents, vertical);
-	}
-
-	/**
-	 * Returns the optional background image of the form head.
-	 * 
-	 * @return the background image or <code>null</code> if not specified.
-	 */
-	public Image getBackgroundImage() {
-		return head.getHeadingBackgroundImage();
-	}
-
-	/**
-	 * Sets the optional background image to be rendered behind the title
-	 * starting at the position 0,0. If the image is smaller than the container
-	 * in any dimension, it will be tiled.
-	 * 
-	 * @since 3.2
-	 * 
-	 * @param backgroundImage
-	 *            the head background image.
-	 * 
-	 */
-	public void setBackgroundImage(Image backgroundImage) {
-		head.setHeadingBackgroundImage(backgroundImage);
-	}
-
-	/**
-	 * Returns the tool bar manager that is used to manage tool items in the
-	 * form's title area.
-	 * 
-	 * @return form tool bar manager
-	 */
-	public IToolBarManager getToolBarManager() {
-		return head.getToolBarManager();
-	}
-
-	/**
-	 * Sets the tool bar vertical alignment relative to the header. Can be
-	 * useful when there is more free space at the second row (with the head
-	 * client).
-	 * 
-	 * @param alignment
-	 *            SWT.TOP or SWT.BOTTOM
-	 * @since 3.3
-	 */
-
-	public void setToolBarVerticalAlignment(int alignment) {
-		head.setToolBarAlignment(alignment);
-	}
-
-	/**
-	 * Returns the current tool bar alignment (if used).
-	 * 
-	 * @return SWT.TOP or SWT.BOTTOM
-	 * @since 3.3
-	 */
-
-	public int getToolBarVerticalAlignment() {
-		return head.getToolBarAlignment();
-	}
-
-	/**
-	 * Returns the menu manager that is used to manage title area drop-down menu
-	 * items.
-	 * 
-	 * @return title area drop-down menu manager
-	 * @since 3.3
-	 */
-	public IMenuManager getMenuManager() {
-		return head.getMenuManager();
-	}
-
-	/**
-	 * Updates the local tool bar manager if used. Does nothing if local tool
-	 * bar manager has not been created yet.
-	 */
-	public void updateToolBar() {
-		head.updateToolBar();
-	}
-
-	/**
-	 * Returns the container that occupies the head of the form (the form area
-	 * above the body). Use this container as a parent for the head client.
-	 * 
-	 * @return the head of the form.
-	 * @since 3.2
-	 */
-	public Composite getHead() {
-		return head;
-	}
-
-	/**
-	 * Returns the optional head client if set.
-	 * 
-	 * @return the head client or <code>null</code> if not set.
-	 * @see #setHeadClient(Control)
-	 * @since 3.2
-	 */
-	public Control getHeadClient() {
-		return head.getHeadClient();
-	}
-
-	/**
-	 * Sets the optional head client. Head client is placed after the form
-	 * title. This option causes the tool bar to be placed in the second raw of
-	 * the header (below the head client).
-	 * <p>
-	 * The head client must be a child of the composite returned by
-	 * <code>getHead()</code> method.
-	 * 
-	 * @param headClient
-	 *            the optional child of the head
-	 * @since 3.2
-	 */
-	public void setHeadClient(Control headClient) {
-		head.setHeadClient(headClient);
-		layout();
-	}
-
-	/**
-	 * Returns the container that occupies the body of the form (the form area
-	 * below the title). Use this container as a parent for the controls that
-	 * should be in the form. No layout manager has been set on the form body.
-	 * 
-	 * @return Returns the body of the form.
-	 */
-	public Composite getBody() {
-		return body;
-	}
-
-	/**
-	 * Tests if the background image is tiled to cover the entire area of the
-	 * form heading.
-	 * 
-	 * @return <code>true</code> if heading background image is tiled,
-	 *         <code>false</code> otherwise.
-	 */
-	public boolean isBackgroundImageTiled() {
-		return head.isBackgroundImageTiled();
-	}
-
-	/**
-	 * Sets whether the header background image is repeated to cover the entire
-	 * heading area or not.
-	 * 
-	 * @param backgroundImageTiled
-	 *            set <code>true</code> to tile the image, or
-	 *            <code>false</code> to paint the background image only once
-	 *            at 0,0
-	 */
-	public void setBackgroundImageTiled(boolean backgroundImageTiled) {
-		head.setBackgroundImageTiled(backgroundImageTiled);
-	}
-
-	/**
-	 * Returns the background image alignment.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             either painted at 0,0 and/or tiled.
-	 * @return SWT.LEFT
-	 */
-	public int getBackgroundImageAlignment() {
-		return SWT.LEFT;
-	}
-
-	/**
-	 * Sets the background image alignment.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             always tiled and alignment cannot be controlled.
-	 * @param backgroundImageAlignment
-	 *            The backgroundImageAlignment to set.
-	 * @since 3.1
-	 */
-	public void setBackgroundImageAlignment(int backgroundImageAlignment) {
-	}
-
-	/**
-	 * Tests if background image is clipped.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             always clipped.
-	 * @return true
-	 * @since 3.1
-	 */
-	public boolean isBackgroundImageClipped() {
-		return true;
-	}
-
-	/**
-	 * Sets whether the background image is clipped.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             always clipped.
-	 * @param backgroundImageClipped
-	 *            the value to set
-	 * @since 3.1
-	 */
-	public void setBackgroundImageClipped(boolean backgroundImageClipped) {
-	}
-
-	/**
-	 * Tests if the form head separator is visible.
-	 * 
-	 * @return <code>true</code> if the head/body separator is visible,
-	 *         <code>false</code> otherwise
-	 * @since 3.2
-	 */
-	public boolean isSeparatorVisible() {
-		return head.isSeparatorVisible();
-	}
-
-	/**
-	 * If set, adds a separator between the head and body. Since 3.3, the colors
-	 * that are used to render it are {@link IFormColors#H_BOTTOM_KEYLINE1} and
-	 * {@link IFormColors#H_BOTTOM_KEYLINE2}.
-	 * 
-	 * @param addSeparator
-	 *            <code>true</code> to make the separator visible,
-	 *            <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-	public void setSeparatorVisible(boolean addSeparator) {
-		head.setSeparatorVisible(addSeparator);
-	}
-
-	/**
-	 * Returns the color used to render the optional head separator. If gradient
-	 * text background is used additional colors from the gradient will be used
-	 * to render the separator.
-	 * 
-	 * @return separator color or <code>null</code> if not set.
-	 * @since 3.2
-	 * @deprecated use <code>getHeadColor(IFormColors.H_BOTTOM_KEYLINE2)</code>
-	 */
-
-	public Color getSeparatorColor() {
-		return head.getColor(IFormColors.H_BOTTOM_KEYLINE2);
-	}
-
-	/**
-	 * Sets the color to be used to render the optional head separator.
-	 * 
-	 * @param separatorColor
-	 *            the color to render the head separator or <code>null</code>
-	 *            to use the default color.
-	 * @since 3.2
-	 * @deprecated use
-	 *             <code>setHeadColor(IFormColors.H_BOTTOM_KEYLINE2, separatorColor)</code>
-	 */
-	public void setSeparatorColor(Color separatorColor) {
-		head.putColor(IFormColors.H_BOTTOM_KEYLINE2, separatorColor);
-	}
-
-	/**
-	 * Sets the color used to paint an aspect of the form heading.
-	 * 
-	 * @param key
-	 *            a valid form heading color key as defined in
-	 *            {@link IFormColors}. Relevant keys all start with an H_
-	 *            prefix.
-	 * @param color
-	 *            the color to use for the provided key
-	 * @since 3.3
-	 */
-
-	public void setHeadColor(String key, Color color) {
-		head.putColor(key, color);
-	}
-
-	/**
-	 * Returns the color that is currently use to paint an aspect of the form
-	 * heading, or <code>null</code> if not defined.
-	 * 
-	 * @param key
-	 *            the color key
-	 * @return the color object or <code>null</code> if not set.
-	 * @since 3.3
-	 */
-
-	public Color getHeadColor(String key) {
-		return head.getColor(key);
-	}
-
-	/**
-	 * Sets the message for this form. Message text is rendered in the form head
-	 * when shown.
-	 * 
-	 * @param message
-	 *            the message, or <code>null</code> to clear the message
-	 * @see #setMessage(String, int)
-	 * @since 3.2
-	 */
-	public void setMessage(String message) {
-		this.setMessage(message, 0, null);
-	}
-
-	/**
-	 * Sets the message for this form with an indication of what type of message
-	 * it is.
-	 * <p>
-	 * The valid message types are one of <code>NONE</code>,
-	 * <code>INFORMATION</code>,<code>WARNING</code>, or
-	 * <code>ERROR</code> defined in IMessageProvider interface.
-	 * </p>
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 * @param newType
-	 *            the message type
-	 * @see org.eclipse.jface.dialogs.IMessageProvider
-	 * @since 3.2
-	 */
-
-	public void setMessage(String newMessage, int newType) {
-		this.setMessage(newMessage, newType, null);
-	}
-
-	/**
-	 * Sets the message for this form with an indication of what type of message
-	 * it is.
-	 * <p>
-	 * The valid message types are one of <code>NONE</code>,
-	 * <code>INFORMATION</code>,<code>WARNING</code>, or
-	 * <code>ERROR</code> defined in IMessageProvider interface.
-	 * </p>
-	 * <p>
-	 * In addition to the summary message, this method also sets an array of
-	 * individual messages.
-	 * 
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 * @param newType
-	 *            the message type
-	 * @param children
-	 *            the individual messages that contributed to the overall
-	 *            message
-	 * @see org.eclipse.jface.dialogs.IMessageProvider
-	 * @since 3.3
-	 */
-
-	public void setMessage(String newMessage, int newType, IMessage[] children) {
-		head.showMessage(newMessage, newType, children);
-		layout();
-	}
-
-	/**
-	 * Adds a message hyperlink listener. If at least one listener is present,
-	 * messages will be rendered as hyperlinks.
-	 * 
-	 * @param listener
-	 * @see #removeMessageHyperlinkListener(IHyperlinkListener)
-	 * @since 3.3
-	 */
-	public void addMessageHyperlinkListener(IHyperlinkListener listener) {
-		head.addMessageHyperlinkListener(listener);
-	}
-
-	/**
-	 * Remove the message hyperlink listener.
-	 * 
-	 * @param listener
-	 * @see #addMessageHyperlinkListener(IHyperlinkListener)
-	 * @since 3.3
-	 */
-	public void removeMessageHyperlinkListener(IHyperlinkListener listener) {
-		head.removeMessageHyperlinkListener(listener);
-	}
-
-	/**
-	 * Tests if the form is in the 'busy' state. Busy form displays 'busy'
-	 * animation in the area of the title image.
-	 * 
-	 * @return <code>true</code> if busy, <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-
-	public boolean isBusy() {
-		return head.isBusy();
-	}
-
-	/**
-	 * Sets the form's busy state. Busy form will display 'busy' animation in
-	 * the area of the title image.
-	 * 
-	 * @param busy
-	 *            the form's busy state
-	 * @since 3.2
-	 */
-
-	public void setBusy(boolean busy) {
-		head.setBusy(busy);
-	}
-
-	/**
-	 * Adds support for dragging items out of the form title area via a user
-	 * drag-and-drop operation.
-	 * 
-	 * @param operations
-	 *            a bitwise OR of the supported drag and drop operation types (
-	 *            <code>DROP_COPY</code>,<code>DROP_LINK</code>, and
-	 *            <code>DROP_MOVE</code>)
-	 * @param transferTypes
-	 *            the transfer types that are supported by the drag operation
-	 * @param listener
-	 *            the callback that will be invoked to set the drag data and to
-	 *            cleanup after the drag and drop operation finishes
-	 * @see org.eclipse.swt.dnd.DND
-	 * @since 3.3
-	 */
-	public void addTitleDragSupport(int operations, Transfer[] transferTypes,
-			DragSourceListener listener) {
-		head.addDragSupport(operations, transferTypes, listener);
-	}
-
-	/**
-	 * Adds support for dropping items into the form title area via a user
-	 * drag-and-drop operation.
-	 * 
-	 * @param operations
-	 *            a bitwise OR of the supported drag and drop operation types (
-	 *            <code>DROP_COPY</code>,<code>DROP_LINK</code>, and
-	 *            <code>DROP_MOVE</code>)
-	 * @param transferTypes
-	 *            the transfer types that are supported by the drop operation
-	 * @param listener
-	 *            the callback that will be invoked after the drag and drop
-	 *            operation finishes
-	 * @see org.eclipse.swt.dnd.DND
-	 * @since 3.3
-	 */
-	public void addTitleDropSupport(int operations, Transfer[] transferTypes,
-			DropTargetListener listener) {
-		head.addDropSupport(operations, transferTypes, listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-	 */
-	public String getMessage() {
-		return head.getMessage();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-	 */
-	public int getMessageType() {
-		return head.getMessageType();
-	}
-
-	/**
-	 * Returns the children messages that the cause of the summary message
-	 * currently set on the form.
-	 * 
-	 * @return an array of children messages or <code>null</code> if not set.
-	 * @see #setMessage(String, int, IMessage[])
-	 * @since 3.3
-	 */
-	public IMessage[] getChildrenMessages() {
-		return head.getChildrenMessages();
-	}
-
-	void setSelectionText(FormText text) {
-		if (selectionText != null && selectionText != text) {
-			selectionText.clearSelection();
-		}
-		this.selectionText = text;
-	}
-}
\ 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 347a325..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java
+++ /dev/null
@@ -1,1723 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.Accessible;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MenuEvent;
-import org.eclipse.swt.events.MenuListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.TypedListener;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.internal.forms.Messages;
-import org.eclipse.ui.internal.forms.widgets.ControlSegment;
-import org.eclipse.ui.internal.forms.widgets.FormFonts;
-import org.eclipse.ui.internal.forms.widgets.FormTextModel;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-import org.eclipse.ui.internal.forms.widgets.IFocusSelectable;
-import org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment;
-import org.eclipse.ui.internal.forms.widgets.ImageSegment;
-import org.eclipse.ui.internal.forms.widgets.Locator;
-import org.eclipse.ui.internal.forms.widgets.Paragraph;
-import org.eclipse.ui.internal.forms.widgets.ParagraphSegment;
-import org.eclipse.ui.internal.forms.widgets.SelectionData;
-import org.eclipse.ui.internal.forms.widgets.TextSegment;
-
-/**
- * This class is a read-only text control that is capable of rendering wrapped
- * text. Text can be rendered as-is or by parsing the formatting XML tags.
- * Independently, words that start with http:// can be converted into hyperlinks
- * on the fly.
- * <p>
- * When configured to use formatting XML, the control requires the root element
- * <code>form</code> to be used. The following tags can be children of the
- * <code>form</code> element:
- * </p>
- * <ul>
- * <li><b>p </b>- for defining paragraphs. The following attributes are
- * allowed:
- * <ul>
- * <li><b>vspace </b>- if set to 'false', no vertical space will be added
- * (default is 'true')</li>
- * </ul>
- * </li>
- * <li><b>li </b>- for defining list items. The following attributes are
- * allowed:
- * <ul>
- * <li><b>vspace </b>- the same as with the <b>p </b> tag</li>
- * <li><b>style </b>- could be 'bullet' (default), 'text' and 'image'</li>
- * <li><b>value </b>- not used for 'bullet'. For text, it is the value of the
- * text that is rendered as a bullet. For image, it is the href of the image to
- * be rendered as a bullet.</li>
- * <li><b>indent </b>- the number of pixels to indent the text in the list item
- * </li>
- * <li><b>bindent </b>- the number of pixels to indent the bullet itself</li>
- * </ul>
- * </li>
- * </ul>
- * <p>
- * Text in paragraphs and list items will be wrapped according to the width of
- * the control. The following tags can appear as children of either <b>p </b> or
- * <b>li </b> elements:
- * <ul>
- * <li><b>img </b>- to render an image. Element accepts attribute 'href' that
- * is a key to the <code>Image</code> set using 'setImage' method. Vertical
- * position of image relative to surrounding text is optionally controlled by
- * the attribute <b>align</b> that can have values <b>top</b>, <b>middle</b>
- * and <b>bottom</b></li>
- * <li><b>a </b>- to render a hyperlink. Element accepts attribute 'href' that
- * will be provided to the hyperlink listeners via HyperlinkEvent object. The
- * element also accepts 'nowrap' attribute (default is false). When set to
- * 'true', the hyperlink will not be wrapped. Hyperlinks automatically created
- * when 'http://' is encountered in text are not wrapped.</li>
- * <li><b>b </b>- the enclosed text will use bold font.</li>
- * <li><b>br </b>- forced line break (no attributes).</li>
- * <li><b>span </b>- the enclosed text will have the color and font specified
- * in the element attributes. Color is provided using 'color' attribute and is a
- * key to the Color object set by 'setColor' method. Font is provided using
- * 'font' attribute and is a key to the Font object set by 'setFont' method. As with
- * hyperlinks, it is possible to block wrapping by setting 'nowrap' to true
- * (false by default).
- * </li>
- * <li><b>control (new in 3.1)</b> - to place a control that is a child of the
- * text control. Element accepts attribute 'href' that is a key to the Control
- * object set using 'setControl' method. Optionally, attribute 'fill' can be set
- * to <code>true</code> to make the control fill the entire width of the text.
- * Form text is not responsible for creating or disposing controls, it only
- * places them relative to the surrounding text. Similar to <b>img</b>,
- * vertical position of the control can be set using the <b>align</b>
- * attribute. In addition, <b>width</b> and <b>height</b> attributes can
- * be used to force the dimensions of the control. If not used,
- * the preferred control size will be used.
- * </ul>
- * <p>
- * None of the elements can nest. For example, you cannot have <b>b </b> inside
- * a <b>span </b>. This was done to keep everything simple and transparent.
- * Since 3.1, an exception to this rule has been added to support nesting images
- * and text inside the hyperlink tag (<b>a</b>). Image enclosed in the
- * hyperlink tag acts as a hyperlink, can be clicked on and can accept and
- * render selection focus. When both text and image is enclosed, selection and
- * rendering will affect both as a single hyperlink.
- * </p>
- * <p>
- * Since 3.1, it is possible to select text. Text selection can be
- * programmatically accessed and also copied to clipboard. Non-textual objects
- * (images, controls etc.) in the selection range are ignored.
- * <p>
- * Care should be taken when using this control. Form text is not an HTML
- * browser and should not be treated as such. If you need complex formatting
- * capabilities, use Browser widget. If you need editing capabilities and
- * font/color styles of text segments is all you need, use StyleText widget.
- * Finally, if all you need is to wrap text, use SWT Label widget and create it
- * with SWT.WRAP style.
- * 
- * @see FormToolkit
- * @see TableWrapLayout
- * @since 3.0
- */
-public class FormText extends Canvas {
-	/**
-	 * The object ID to be used when registering action to handle URL hyperlinks
-	 * (those that should result in opening the web browser). Value is
-	 * "urlHandler".
-	 */
-	public static final String URL_HANDLER_ID = "urlHandler"; //$NON-NLS-1$
-
-	/**
-	 * Value of the horizontal margin (default is 0).
-	 */
-	public int marginWidth = 0;
-
-	/**
-	 * Value of tue vertical margin (default is 1).
-	 */
-	public int marginHeight = 1;
-
-	// private fields
-	private static final boolean DEBUG_TEXT = false;//"true".equalsIgnoreCase(Platform.getDebugOption(FormUtil.DEBUG_TEXT));
-	private static final boolean DEBUG_TEXTSIZE = false;//"true".equalsIgnoreCase(Platform.getDebugOption(FormUtil.DEBUG_TEXTSIZE));
-
-	private static final boolean DEBUG_FOCUS = false;//"true".equalsIgnoreCase(Platform.getDebugOption(FormUtil.DEBUG_FOCUS));	
-
-	private boolean hasFocus;
-
-	private boolean paragraphsSeparated = true;
-
-	private FormTextModel model;
-
-	private ListenerList listeners;
-
-	private Hashtable resourceTable = new Hashtable();
-
-	private IHyperlinkSegment entered;
-
-	private IHyperlinkSegment armed;
-
-	private boolean mouseFocus = false;
-
-	private boolean controlFocusTransfer = false;
-
-	private boolean inSelection = false;
-
-	private SelectionData selData;
-
-	private static final String INTERNAL_MENU = "__internal_menu__"; //$NON-NLS-1$
-
-	private static final String CONTROL_KEY = "__segment__"; //$NON-NLS-1$
-
-	private class FormTextLayout extends Layout implements ILayoutExtension {
-		public FormTextLayout() {
-		}
-
-		public int computeMaximumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-		}
-
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, 5, SWT.DEFAULT, true).x;
-		}
-
-		/*
-		 * @see Layout#computeSize(Composite, int, int, boolean)
-		 */
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean changed) {
-			long start = 0;
-
-			if (DEBUG_TEXT)
-				start = System.currentTimeMillis();
-			int innerWidth = wHint;
-			if (innerWidth != SWT.DEFAULT)
-				innerWidth -= marginWidth * 2;
-			Point textSize = computeTextSize(innerWidth);
-			int textWidth = textSize.x + 2 * marginWidth;
-			int textHeight = textSize.y + 2 * marginHeight;
-			Point result = new Point(textWidth, textHeight);
-			if (DEBUG_TEXT) {
-				long stop = System.currentTimeMillis();
-				System.out.println("FormText computeSize: " + (stop - start) //$NON-NLS-1$
-						+ "ms"); //$NON-NLS-1$
-			}
-			if (DEBUG_TEXTSIZE) {
-				System.out.println("FormText ("+model.getAccessibleText()+"), computeSize: wHint="+wHint+", result="+result); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-			return result;
-		}
-
-		private Point computeTextSize(int wHint) {
-			Paragraph[] paragraphs = model.getParagraphs();
-			GC gc = new GC(FormText.this);
-			gc.setFont(getFont());
-			Locator loc = new Locator();
-			int width = wHint != SWT.DEFAULT ? wHint : 0;
-			FontMetrics fm = gc.getFontMetrics();
-			int lineHeight = fm.getHeight();
-			boolean selectableInTheLastRow = false;
-			for (int i = 0; i < paragraphs.length; i++) {
-				Paragraph p = paragraphs[i];
-				if (i > 0 && getParagraphsSeparated()
-						&& p.getAddVerticalSpace())
-					loc.y += getParagraphSpacing(lineHeight);
-				loc.rowHeight = 0;
-				loc.indent = p.getIndent();
-				loc.x = p.getIndent();
-				ParagraphSegment[] segments = p.getSegments();
-				if (segments.length > 0) {
-					selectableInTheLastRow = false;
-					int pwidth = 0;
-					for (int j = 0; j < segments.length; j++) {
-						ParagraphSegment segment = segments[j];
-						segment.advanceLocator(gc, wHint, loc, resourceTable,
-								false);
-						if (wHint != SWT.DEFAULT) {
-							width = Math.max(width, loc.width);
-						} else {
-							pwidth += 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) {
-			FormFonts.getInstance().markFinished(boldFont);
-			resourceTable.remove(FormTextModel.BOLD_FONT_ID);
-		}
-		ensureBoldFontPresent(getFont());
-	}
-
-	/**
-	 * Sets the provided text. Text can be rendered as-is, or by parsing the
-	 * formatting tags. Optionally, sections of text starting with http:// will
-	 * be converted to hyperlinks.
-	 * 
-	 * @param text
-	 *            the text to render
-	 * @param parseTags
-	 *            if <samp>true </samp>, formatting tags will be parsed.
-	 *            Otherwise, text will be rendered as-is.
-	 * @param expandURLs
-	 *            if <samp>true </samp>, URLs found in the untagged text will be
-	 *            converted into hyperlinks.
-	 */
-	public void setText(String text, boolean parseTags, boolean expandURLs) {
-		disposeResourceTable(false);
-		entered = null;
-		if (parseTags)
-			model.parseTaggedText(text, expandURLs);
-		else
-			model.parseRegularText(text, expandURLs);
-		hookControlSegmentFocus();
-		layout();
-		redraw();
-	}
-
-	/**
-	 * Sets the contents of the stream. Optionally, URLs in untagged text can be
-	 * converted into hyperlinks. The caller is responsible for closing the
-	 * stream.
-	 * 
-	 * @param is
-	 *            stream to render
-	 * @param expandURLs
-	 *            if <samp>true </samp>, URLs found in untagged text will be
-	 *            converted into hyperlinks.
-	 */
-	public void setContents(InputStream is, boolean expandURLs) {
-		entered = null;
-		disposeResourceTable(false);
-		model.parseInputStream(is, expandURLs);
-		hookControlSegmentFocus();
-		layout();
-		redraw();
-	}
-
-	private void hookControlSegmentFocus() {
-		Paragraph[] paragraphs = model.getParagraphs();
-		if (paragraphs == null)
-			return;
-		Listener listener = new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.type) {
-				case SWT.FocusIn:
-					if (!controlFocusTransfer)
-						syncControlSegmentFocus((Control) e.widget);
-					break;
-				case SWT.Traverse:
-					if (DEBUG_FOCUS)
-						System.out.println("Control traversal: " + e); //$NON-NLS-1$
-					switch (e.detail) {
-					case SWT.TRAVERSE_PAGE_NEXT:
-					case SWT.TRAVERSE_PAGE_PREVIOUS:
-					case SWT.TRAVERSE_ARROW_NEXT:
-					case SWT.TRAVERSE_ARROW_PREVIOUS:
-						e.doit = false;
-						return;
-					}
-					Control c = (Control) e.widget;
-					ControlSegment segment = (ControlSegment) c
-							.getData(CONTROL_KEY);
-					if (e.detail == SWT.TRAVERSE_TAB_NEXT)
-						e.doit = advanceControl(c, segment, true);
-					else if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS)
-						e.doit = advanceControl(c, segment, false);
-					if (!e.doit)
-						e.detail = SWT.TRAVERSE_NONE;
-					break;
-				}
-			}
-		};
-		for (int i = 0; i < paragraphs.length; i++) {
-			Paragraph p = paragraphs[i];
-			ParagraphSegment[] segments = p.getSegments();
-			for (int j = 0; j < segments.length; j++) {
-				if (segments[j] instanceof ControlSegment) {
-					ControlSegment cs = (ControlSegment) segments[j];
-					Control c = cs.getControl(resourceTable);
-					if (c != null) {
-						if (c.getData(CONTROL_KEY) == null) {
-							// first time - hook
-							c.setData(CONTROL_KEY, cs);
-							attachTraverseListener(c, listener);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	private void attachTraverseListener(Control c, Listener listener) {
-		if (c instanceof Composite) {
-			Composite parent = (Composite) c;
-			Control[] children = parent.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				attachTraverseListener(children[i], listener);
-			}
-			if (c instanceof Canvas) {
-				// If Canvas, the control iteself can accept
-				// traverse events and should be monitored
-				c.addListener(SWT.Traverse, listener);
-				c.addListener(SWT.FocusIn, listener);
-			}
-		} else {
-			c.addListener(SWT.Traverse, listener);
-			c.addListener(SWT.FocusIn, listener);
-		}
-	}
-
-	/**
-	 * If we click on the control randomly, our internal book-keeping will be
-	 * off. We need to update the model and mark the control segment and
-	 * currently selected. Hyperlink that may have had focus must also be
-	 * exited.
-	 * 
-	 * @param control
-	 *            the control that got focus
-	 */
-	private void syncControlSegmentFocus(Control control) {
-		ControlSegment cs = null;
-
-		while (control != null) {
-			cs = (ControlSegment) control.getData(CONTROL_KEY);
-			if (cs != null)
-				break;
-			control = control.getParent();
-		}
-		if (cs == null)
-			return;
-		IFocusSelectable current = model.getSelectedSegment();
-		// If the model and the control match, all is well
-		if (current == cs)
-			return;
-		IHyperlinkSegment oldLink = null;
-		if (current != null && current instanceof IHyperlinkSegment) {
-			oldLink = (IHyperlinkSegment) current;
-			exitLink(oldLink, SWT.NULL);
-		}
-		if (DEBUG_FOCUS)
-			System.out.println("Sync control: " + cs + ", oldLink=" + oldLink); //$NON-NLS-1$ //$NON-NLS-2$
-		model.select(cs);
-		if (oldLink != null)
-			paintFocusTransfer(oldLink, null);
-		// getAccessible().setFocus(model.getSelectedSegmentIndex());
-	}
-
-	private boolean advanceControl(Control c, ControlSegment segment,
-			boolean next) {
-		Composite parent = c.getParent();
-		if (parent == this) {
-			// segment-level control
-			IFocusSelectable nextSegment = model.getNextFocusSegment(next);
-			if (nextSegment != null) {
-				controlFocusTransfer = true;
-				super.forceFocus();
-				controlFocusTransfer = false;
-				model.select(segment);
-				return advance(next);
-			}
-			// nowhere to go
-			return setFocusToNextSibling(this, next);
-		}
-		if (setFocusToNextSibling(c, next))
-			return true;
-		// still here - must go one level up
-		segment = (ControlSegment) parent.getData(CONTROL_KEY);
-		return advanceControl(parent, segment, next);
-	}
-
-	private boolean setFocusToNextSibling(Control c, boolean next) {
-		Composite parent = c.getParent();
-		Control[] children = parent.getTabList();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child == c) {
-				// here
-				if (next) {
-					for (int j = i + 1; j < children.length; j++) {
-						Control nc = children[j];
-						if (doFocusSibling(nc))
-							return false;
-					}
-				} else {
-					for (int j = i - 1; j >= 0; j--) {
-						Control pc = children[j];
-						if (doFocusSibling(pc))
-							return false;
-					}
-				}
-			}
-		}
-		return false;
-	}
-	
-	private boolean doFocusSibling(Control control) {
-		if (!(control instanceof FormText))
-			return control.setFocus();
-		return ((FormText) control).setFocusProgramatic();
-	}
-
-	/**
-	 * Controls whether whitespace inside paragraph and list items is
-	 * normalized. Note that the new value will not affect the current text in
-	 * the control, only subsequent calls to <code>setText</code> or
-	 * <code>setContents</code>.
-	 * <p>
-	 * If normalized:
-	 * <ul>
-	 * <li>all white space characters will be condensed into at most one when
-	 * between words.</li>
-	 * <li>new line characters will be ignored and replaced with one white
-	 * space character</li>
-	 * <li>white space characters after the opening tags and before the closing
-	 * tags will be trimmed</li>
-	 * 
-	 * @param value
-	 *            <code>true</code> if whitespace is normalized,
-	 *            <code>false</code> otherwise.
-	 */
-	public void setWhitespaceNormalized(boolean value) {
-		model.setWhitespaceNormalized(value);
-	}
-
-	/**
-	 * Tests whether whitespace inside paragraph and list item is normalized.
-	 * 
-	 * @see #setWhitespaceNormalized(boolean)
-	 * @return <code>true</code> if whitespace is normalized,
-	 *         <code>false</code> otherwise.
-	 */
-	public boolean isWhitespaceNormalized() {
-		return model.isWhitespaceNormalized();
-	}
-
-	/**
-	 * Disposes the internal menu if created and sets the menu provided as a
-	 * parameter.
-	 * 
-	 * @param menu
-	 *            the menu to associate with this text control
-	 */
-	public void setMenu(Menu menu) {
-		Menu currentMenu = super.getMenu();
-		if (currentMenu != null && INTERNAL_MENU.equals(currentMenu.getData())) {
-			// internal menu set
-			if (menu != null) {
-				currentMenu.dispose();
-				super.setMenu(menu);
-			}
-		} else
-			super.setMenu(menu);
-	}
-
-	private void createMenu() {
-		Menu menu = new Menu(this);
-		final MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
-		copyItem.setText(Messages.FormText_copy);
-
-		SelectionListener listener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (e.widget == copyItem) {
-					copy();
-				}
-			}
-		};
-		copyItem.addSelectionListener(listener);
-		menu.addMenuListener(new MenuListener() {
-			public void menuShown(MenuEvent e) {
-				copyItem.setEnabled(canCopy());
-			}
-
-			public void menuHidden(MenuEvent e) {
-			}
-		});
-		menu.setData(INTERNAL_MENU);
-		super.setMenu(menu);
-	}
-
-	/**
-	 * Returns the hyperlink settings that are in effect for this control.
-	 * 
-	 * @return current hyperlinks settings
-	 */
-	public HyperlinkSettings getHyperlinkSettings() {
-		return model.getHyperlinkSettings();
-	}
-
-	/**
-	 * Sets the hyperlink settings to be used for this control. Settings will
-	 * affect things like hyperlink color, rendering style, cursor etc.
-	 * 
-	 * @param settings
-	 *            hyperlink settings for this control
-	 */
-	public void setHyperlinkSettings(HyperlinkSettings settings) {
-		model.setHyperlinkSettings(settings);
-	}
-
-	/**
-	 * Adds a listener that will handle hyperlink events.
-	 * 
-	 * @param listener
-	 *            the listener to add
-	 */
-	public void addHyperlinkListener(IHyperlinkListener listener) {
-		if (listeners == null)
-			listeners = new ListenerList();
-		listeners.add(listener);
-	}
-
-	/**
-	 * Removes the hyperlink listener.
-	 * 
-	 * @param listener
-	 *            the listener to remove
-	 */
-	public void removeHyperlinkListener(IHyperlinkListener listener) {
-		if (listeners == null)
-			return;
-		listeners.remove(listener);
-	}
-
-	/**
-	 * Adds a selection listener. A Selection event is sent by the widget when
-	 * the selection has changed.
-	 * <p>
-	 * <code>widgetDefaultSelected</code> is not called for FormText.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the listener
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
-	 *                thread that created the receiver</li>
-	 *                </ul>
-	 * @exception IllegalArgumentException
-	 *                <ul>
-	 *                <li>ERROR_NULL_ARGUMENT when listener is null</li>
-	 *                </ul>
-	 * @since 3.1
-	 */
-	public void addSelectionListener(SelectionListener listener) {
-		checkWidget();
-		if (listener == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-		TypedListener typedListener = new TypedListener(listener);
-		addListener(SWT.Selection, typedListener);
-	}
-
-	/**
-	 * Removes the specified selection listener.
-	 * <p>
-	 * 
-	 * @param listener
-	 *            the listener
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
-	 *                thread that created the receiver</li>
-	 *                </ul>
-	 * @exception IllegalArgumentException
-	 *                <ul>
-	 *                <li>ERROR_NULL_ARGUMENT when listener is null</li>
-	 *                </ul>
-	 * @since 3.1
-	 */
-	public void removeSelectionListener(SelectionListener listener) {
-		checkWidget();
-		if (listener == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-		removeListener(SWT.Selection, listener);
-	}
-
-	/**
-	 * Returns the selected text.
-	 * <p>
-	 * 
-	 * @return selected text, or an empty String if there is no selection.
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
-	 *                thread that created the receiver</li>
-	 *                </ul>
-	 * @since 3.1
-	 */
-
-	public String getSelectionText() {
-		checkWidget();
-		if (selData != null)
-			return selData.getSelectionText();
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Tests if the text is selected and can be copied into the clipboard.
-	 * 
-	 * @return <code>true</code> if the selected text can be copied into the
-	 *         clipboard, <code>false</code> otherwise.
-	 * @since 3.1
-	 */
-	public boolean canCopy() {
-		return selData != null && selData.canCopy();
-	}
-
-	/**
-	 * Copies the selected text into the clipboard. Does nothing if no text is
-	 * selected or the text cannot be copied for any other reason.
-	 * 
-	 * @since 3.1
-	 */
-
-	public void copy() {
-		if (!canCopy())
-			return;
-		Clipboard clipboard = new Clipboard(getDisplay());
-		Object[] o = new Object[] { getSelectionText() };
-		Transfer[] t = new Transfer[] { TextTransfer.getInstance() };
-		clipboard.setContents(o, t);
-		clipboard.dispose();
-	}
-
-	/**
-	 * Returns the reference of the hyperlink that currently has keyboard focus,
-	 * or <code>null</code> if there are no hyperlinks in the receiver or no
-	 * hyperlink has focus at the moment.
-	 * 
-	 * @return href of the selected hyperlink or <code>null</code> if none
-	 *         selected.
-	 * @since 3.1
-	 */
-	public Object getSelectedLinkHref() {
-		IHyperlinkSegment link = getSelectedLink();
-		return link != null ? link.getHref() : null;
-	}
-
-	/**
-	 * Returns the text of the hyperlink that currently has keyboard focus, or
-	 * <code>null</code> if there are no hyperlinks in the receiver or no
-	 * hyperlink has focus at the moment.
-	 * 
-	 * @return text of the selected hyperlink or <code>null</code> if none
-	 *         selected.
-	 * @since 3.1
-	 */
-	public String getSelectedLinkText() {
-		IHyperlinkSegment link = getSelectedLink();
-		return link != null ? link.getText() : null;
-	}
-
-	private IHyperlinkSegment getSelectedLink() {
-		IFocusSelectable segment = model.getSelectedSegment();
-		if (segment != null && segment instanceof IHyperlinkSegment)
-			return (IHyperlinkSegment) segment;
-		return null;
-	}
-
-	private void initAccessible() {
-		Accessible accessible = getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				if (e.childID == ACC.CHILDID_SELF)
-					e.result = model.getAccessibleText();
-				else {
-					int linkCount = model.getHyperlinkCount();
-					if (e.childID >= 0 && e.childID < linkCount) {
-						IHyperlinkSegment link = model.getHyperlink(e.childID);
-						e.result = link.getText();
-					}
-				}
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				e.result = getToolTipText();
-				int linkCount = model.getHyperlinkCount();
-				if (e.result == null && e.childID >= 0 && e.childID < linkCount) {
-					IHyperlinkSegment link = model.getHyperlink(e.childID);
-					e.result = link.getText();
-				}
-			}
-		});
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-			public void getChildAtPoint(AccessibleControlEvent e) {
-				Point pt = toControl(new Point(e.x, e.y));
-				IHyperlinkSegment link = model.findHyperlinkAt(pt.x, pt.y);
-				if (link != null)
-					e.childID = model.indexOf(link);
-				else
-					e.childID = ACC.CHILDID_SELF;
-			}
-
-			public void getLocation(AccessibleControlEvent e) {
-				Rectangle location = null;
-				if (e.childID != ACC.CHILDID_SELF
-						&& e.childID != ACC.CHILDID_NONE) {
-					int index = e.childID;
-					IHyperlinkSegment link = model.getHyperlink(index);
-					if (link != null) {
-						location = link.getBounds();
-					}
-				}
-				if (location == null) {
-					location = getBounds();
-				}
-				Point pt = toDisplay(new Point(location.x, location.y));
-				e.x = pt.x;
-				e.y = pt.y;
-				e.width = location.width;
-				e.height = location.height;
-			}
-
-			public void getFocus(AccessibleControlEvent e) {
-				int childID = ACC.CHILDID_NONE;
-
-				if (model.hasFocusSegments()) {
-					int selectedIndex = model.getSelectedSegmentIndex();
-					if (selectedIndex != -1) {
-						childID = selectedIndex;
-					}
-				}
-				e.childID = childID;
-			}
-			
-			public void getDefaultAction (AccessibleControlEvent e) {
-				if (model.getHyperlinkCount() > 0) {
-				    e.result = SWT.getMessage ("SWT_Press"); //$NON-NLS-1$
-				} 
-			}
-
-			public void getChildCount(AccessibleControlEvent e) {
-				e.detail = model.getHyperlinkCount();
-			}
-
-			public void getRole(AccessibleControlEvent e) {
-				int role = 0;
-				int childID = e.childID;
-				int linkCount = model.getHyperlinkCount();
-				if (childID == ACC.CHILDID_SELF) { 
-					if (linkCount > 0) {
-					    role = ACC.ROLE_LINK;
-					} else {
-						role = ACC.ROLE_TEXT;
-					}
-				} else if (childID >= 0 && childID < linkCount) {
-					role = ACC.ROLE_LINK;
-				}
-				e.detail = role;
-			}
-
-			public void getSelection(AccessibleControlEvent e) {
-				int selectedIndex = model.getSelectedSegmentIndex();
-				e.childID = (selectedIndex == -1) ? ACC.CHILDID_NONE
-						: selectedIndex;
-			}
-
-			public void getState(AccessibleControlEvent e) {
-				int linkCount = model.getHyperlinkCount();
-				int selectedIndex = model.getSelectedSegmentIndex();
-				int state = 0;
-				int childID = e.childID;
-				if (childID == ACC.CHILDID_SELF) {
-					state = ACC.STATE_NORMAL;
-				} else if (childID >= 0 && childID < linkCount) {
-					state = ACC.STATE_SELECTABLE;
-					if (isFocusControl()) {
-						state |= ACC.STATE_FOCUSABLE;
-					}
-					if (selectedIndex == childID) {
-						state |= ACC.STATE_SELECTED;
-						if (isFocusControl()) {
-							state |= ACC.STATE_FOCUSED;
-						}
-					}
-				}
-				state |= ACC.STATE_READONLY;
-				e.detail = state;
-			}
-
-			public void getChildren(AccessibleControlEvent e) {
-				int linkCount = model.getHyperlinkCount();
-				Object[] children = new Object[linkCount];
-				for (int i = 0; i < linkCount; i++) {
-					children[i] = new Integer(i);
-				}
-				e.children = children;
-			}
-
-			public void getValue(AccessibleControlEvent e) {
-				// e.result = model.getAccessibleText();
-			}
-		});
-	}
-
-	private void startSelection(MouseEvent e) {
-		inSelection = true;
-		selData = new SelectionData(e);
-		redraw();
-		Form form = FormUtil.getForm(this);
-		if (form != null)
-			form.setSelectionText(this);
-	}
-
-	private void endSelection(MouseEvent e) {
-		inSelection = false;
-		if (selData != null) {
-			if (!selData.isEnclosed())
-				selData = null;
-			else
-				computeSelection();
-		}
-		notifySelectionChanged();
-	}
-
-	private void computeSelection() {
-		GC gc = new GC(this);
-		Paragraph[] paragraphs = model.getParagraphs();
-		IHyperlinkSegment selectedLink = getSelectedLink();
-		if (getDisplay().getFocusControl() != this)
-			selectedLink = null;
-		for (int i = 0; i < paragraphs.length; i++) {
-			Paragraph p = paragraphs[i];
-			if (i > 0)
-				selData.markNewLine();
-			p.computeSelection(gc, resourceTable, selectedLink, selData);
-		}
-		gc.dispose();
-	}
-
-	void clearSelection() {
-		selData = null;
-		if (!isDisposed()) {
-			redraw();
-			notifySelectionChanged();
-		}
-	}
-
-	private void notifySelectionChanged() {
-		Event event = new Event();
-		event.widget = this;
-		event.display = this.getDisplay();
-		event.type = SWT.Selection;
-		notifyListeners(SWT.Selection, event);
-		getAccessible().selectionChanged();
-	}
-
-	private void handleDrag(MouseEvent e) {
-		if (selData != null) {
-			ScrolledComposite scomp = FormUtil.getScrolledComposite(this);
-			if (scomp != null) {
-				FormUtil.ensureVisible(scomp, this, e);
-			}
-			selData.update(e);
-			redraw();
-		}
-	}
-
-	private void handleMouseClick(MouseEvent e, boolean down) {
-		if (DEBUG_FOCUS)
-			System.out.println("FormText: mouse click(" + down + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-		if (down) {
-			// select a hyperlink
-			mouseFocus = true;
-			IHyperlinkSegment segmentUnder = model.findHyperlinkAt(e.x, e.y);
-			if (segmentUnder != null) {
-				IHyperlinkSegment oldLink = getSelectedLink();
-				if (getDisplay().getFocusControl() != this) {
-					setFocus();
-				}
-				model.selectLink(segmentUnder);
-				enterLink(segmentUnder, e.stateMask);
-				paintFocusTransfer(oldLink, segmentUnder);
-			}
-			if (e.button == 1) {
-				startSelection(e);
-				armed = segmentUnder;
-			}
-			else {
-			}
-		} else {
-			if (e.button == 1) {
-				endSelection(e);
-				IHyperlinkSegment segmentUnder = model
-						.findHyperlinkAt(e.x, e.y);
-				if (segmentUnder != null && armed == segmentUnder && selData == null) {
-					activateLink(segmentUnder, e.stateMask);
-					armed = null;
-				}
-			}
-			mouseFocus = false;
-		}
-	}
-
-	private void handleMouseHover(MouseEvent e) {
-	}
-
-	private void updateTooltipText(ParagraphSegment segment) {
-		String tooltipText = null;
-		if (segment != null) {
-			tooltipText = segment.getTooltipText();
-		}
-		String currentTooltipText = getToolTipText();
-
-		if ((currentTooltipText != null && tooltipText == null)
-				|| (currentTooltipText == null && tooltipText != null))
-			setToolTipText(tooltipText);
-	}
-
-	private void handleMouseMove(MouseEvent e) {
-		if (inSelection) {
-			handleDrag(e);
-			return;
-		}
-		ParagraphSegment segmentUnder = model.findSegmentAt(e.x, e.y);
-		updateTooltipText(segmentUnder);
-		if (segmentUnder == null) {
-			if (entered != null) {
-				exitLink(entered, e.stateMask);
-				paintLinkHover(entered, false);
-				entered = null;
-			}
-			setCursor(null);
-		} else {
-			if (segmentUnder instanceof IHyperlinkSegment) {
-				IHyperlinkSegment linkUnder = (IHyperlinkSegment) segmentUnder;
-				if (entered!=null && linkUnder!=entered) {
-					// Special case: links are so close that there are 0 pixels between.
-					// Must exit the link before entering the next one.
-					exitLink(entered, e.stateMask);
-					paintLinkHover(entered, false);
-					entered = null;
-				}
-				if (entered == null) {
-					entered = linkUnder;
-					enterLink(linkUnder, e.stateMask);
-					paintLinkHover(entered, true);
-					setCursor(model.getHyperlinkSettings().getHyperlinkCursor());
-				}
-			} else {
-				if (entered != null) {
-					exitLink(entered, e.stateMask);
-					paintLinkHover(entered, false);
-					entered = null;
-				}
-				if (segmentUnder instanceof TextSegment)
-					setCursor(model.getHyperlinkSettings().getTextCursor());
-				else
-					setCursor(null);
-			}
-		}
-	}
-
-	private boolean advance(boolean next) {
-		if (DEBUG_FOCUS)
-			System.out.println("Advance: next=" + next); //$NON-NLS-1$
-		IFocusSelectable current = model.getSelectedSegment();
-		if (current != null && current instanceof IHyperlinkSegment)
-			exitLink((IHyperlinkSegment) current, SWT.NULL);
-		IFocusSelectable newSegment = null;
-		boolean valid = false;
-		// get the next segment that can accept focus. Links
-		// can always accept focus but controls may not
-		while (!valid) {
-			if (!model.traverseFocusSelectableObjects(next))
-				break;
-			newSegment = model.getSelectedSegment();
-			if (newSegment == null)
-				break;
-			valid = setControlFocus(next, newSegment);
-		}
-		IHyperlinkSegment newLink = newSegment instanceof IHyperlinkSegment ? (IHyperlinkSegment) newSegment
-				: null;
-		if (valid)
-			enterLink(newLink, SWT.NULL);
-		IHyperlinkSegment oldLink = current instanceof IHyperlinkSegment ? (IHyperlinkSegment) current
-				: null;
-		if (oldLink != null || newLink != null)
-			paintFocusTransfer(oldLink, newLink);
-		if (newLink != null)
-			ensureVisible(newLink);
-		if (newLink != null)
-			getAccessible().setFocus(model.getSelectedSegmentIndex());
-		return !valid;
-	}
-
-	private boolean setControlFocus(boolean next, IFocusSelectable selectable) {
-		controlFocusTransfer = true;
-		boolean result = selectable.setFocus(resourceTable, next);
-		controlFocusTransfer = false;
-		return result;
-	}
-
-	private void handleFocusChange() {
-		if (DEBUG_FOCUS) {
-			System.out.println("Handle focus change: hasFocus=" + hasFocus //$NON-NLS-1$
-					+ ", mouseFocus=" + mouseFocus); //$NON-NLS-1$
-		}
-		if (hasFocus) {
-			boolean advance = true;
-			if (!mouseFocus) {
-				// if (model.restoreSavedLink() == false)
-				boolean valid = false;
-				IFocusSelectable selectable = null;
-				while (!valid) {
-					if (!model.traverseFocusSelectableObjects(advance))
-						break;
-					selectable = model.getSelectedSegment();
-					if (selectable == null)
-						break;
-					valid = setControlFocus(advance, selectable);
-				}
-				if (selectable == null)
-					setFocusToNextSibling(this, true);
-				else
-					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 = FormFonts.getInstance().getBoldFont(getDisplay(), regularFont);
-		resourceTable.put(FormTextModel.BOLD_FONT_ID, boldFont);
-	}
-
-	private void paint(PaintEvent e) {
-		GC gc = e.gc;
-		gc.setFont(getFont());
-		ensureBoldFontPresent(getFont());
-		gc.setForeground(getForeground());
-		gc.setBackground(getBackground());
-		repaint(gc, e.x, e.y, e.width, e.height);
-	}
-
-	private void repaint(GC gc, int x, int y, int width, int height) {
-		Image textBuffer = new Image(getDisplay(), width, height);
-		Color bg = getBackground();
-		Color fg = getForeground();
-		if (!getEnabled()) {
-			bg = getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			fg = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-		}
-		GC textGC = new GC(textBuffer, gc.getStyle());
-		textGC.setForeground(fg);
-		textGC.setBackground(bg);
-		textGC.setFont(getFont());
-		textGC.fillRectangle(0, 0, width, height);
-		Rectangle repaintRegion = new Rectangle(x, y, width, height);
-
-		Paragraph[] paragraphs = model.getParagraphs();
-		IHyperlinkSegment selectedLink = getSelectedLink();
-		if (getDisplay().getFocusControl() != this)
-			selectedLink = null;
-		for (int i = 0; i < paragraphs.length; i++) {
-			Paragraph p = paragraphs[i];
-			p
-					.paint(textGC, repaintRegion, resourceTable, selectedLink,
-							selData);
-		}
-		textGC.dispose();
-		gc.drawImage(textBuffer, x, y);
-		textBuffer.dispose();
-	}
-
-	private int getParagraphSpacing(int lineHeight) {
-		return lineHeight / 2;
-	}
-
-	private void paintFocusTransfer(IHyperlinkSegment oldLink,
-			IHyperlinkSegment newLink) {
-		GC gc = new GC(this);
-		Color bg = getBackground();
-		Color fg = getForeground();
-		gc.setFont(getFont());
-		if (oldLink != null) {
-			gc.setBackground(bg);
-			gc.setForeground(fg);
-			oldLink.paintFocus(gc, bg, fg, false, null);
-		}
-		if (newLink != null) {
-			// ensureVisible(newLink);
-			gc.setBackground(bg);
-			gc.setForeground(fg);
-			newLink.paintFocus(gc, bg, fg, true, null);
-		}
-		gc.dispose();
-	}
-
-	private void ensureVisible(IFocusSelectable segment) {
-		if (mouseFocus) {
-			mouseFocus = false;
-			return;
-		}
-		if (segment == null)
-			return;
-		Rectangle bounds = segment.getBounds();
-		ScrolledComposite scomp = FormUtil.getScrolledComposite(this);
-		if (scomp == null)
-			return;
-		Point origin = FormUtil.getControlLocation(scomp, this);
-		origin.x += bounds.x;
-		origin.y += bounds.y;
-		FormUtil.ensureVisible(scomp, origin, new Point(bounds.width,
-				bounds.height));
-	}
-
-	/**
-	 * Overrides the method by fully trusting the layout manager (computed width
-	 * or height may be larger than the provider width or height hints). Callers
-	 * should be prepared that the computed width is larger than the provided
-	 * wHint.
-	 * 
-	 * @see org.eclipse.swt.widgets.Composite#computeSize(int, int, boolean)
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		Point size;
-		FormTextLayout layout = (FormTextLayout) getLayout();
-		if (wHint == SWT.DEFAULT || hHint == SWT.DEFAULT) {
-			size = layout.computeSize(this, wHint, hHint, changed);
-		} else {
-			size = new Point(wHint, hHint);
-		}
-		Rectangle trim = computeTrim(0, 0, size.x, size.y);
-		if (DEBUG_TEXTSIZE)
-			System.out.println("FormText Computed size: "+trim); //$NON-NLS-1$
-		return new Point(trim.width, trim.height);
-	}
-
-	private void disposeResourceTable(boolean disposeBoldFont) {
-		if (disposeBoldFont) {
-			Font boldFont = (Font) resourceTable
-					.get(FormTextModel.BOLD_FONT_ID);
-			if (boldFont != null) {
-				FormFonts.getInstance().markFinished(boldFont);
-				resourceTable.remove(FormTextModel.BOLD_FONT_ID);
-			}
-		}
-		ArrayList imagesToRemove = new ArrayList();
-		for (Enumeration enm = resourceTable.keys(); enm.hasMoreElements();) {
-			String key = (String) enm.nextElement();
-			if (key.startsWith(ImageSegment.SEL_IMAGE_PREFIX)) {
-				Object obj = resourceTable.get(key);
-				if (obj instanceof Image) {
-					Image image = (Image) obj;
-					if (!image.isDisposed()) {
-						image.dispose();
-						imagesToRemove.add(key);
-					}
-				}
-			}
-		}
-		for (int i = 0; i < imagesToRemove.size(); i++) {
-			resourceTable.remove(imagesToRemove.get(i));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
-	 */
-	public void setEnabled(boolean enabled) {
-		super.setEnabled(enabled);
-		redraw();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setFocus()
-	 */
-	public boolean setFocus() {
-		mouseFocus = true;
-		boolean result = setFocusProgramatic();
-		mouseFocus = false;
-		return result;
-	}
-	
-	boolean setFocusProgramatic() {
-		FormUtil.setFocusScrollingEnabled(this, false);
-		boolean result = super.setFocus();
-		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 f7b00a7..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormToolkit.java
+++ /dev/null
@@ -1,903 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Williamson (eclipse-bugs@magnaworks.com) - patch (see Bugzilla #92545) 
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.HyperlinkGroup;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.internal.forms.widgets.FormFonts;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * The toolkit is responsible for creating SWT controls adapted to work in
- * Eclipse forms. In addition to changing their presentation properties (fonts,
- * colors etc.), various listeners are attached to make them behave correctly in
- * the form context.
- * <p>
- * In addition to being the control factory, the toolkit is also responsible for
- * painting flat borders for select controls, managing hyperlink groups and
- * control colors.
- * <p>
- * The toolkit creates some of the most common controls used to populate Eclipse
- * forms. Controls that must be created using their constructors,
- * <code>adapt()</code> method is available to change its properties in the
- * same way as with the supported toolkit controls.
- * <p>
- * Typically, one toolkit object is created per workbench part (for example, an
- * editor or a form wizard). The toolkit is disposed when the part is disposed.
- * To conserve resources, it is possible to create one color object for the
- * entire plug-in and share it between several toolkits. The plug-in is
- * responsible for disposing the colors (disposing the toolkit that uses shared
- * color object will not dispose the colors).
- * <p>
- * FormToolkit is normally instantiated, but can also be subclassed if some of
- * the methods needs to be modified. In those cases, <code>super</code> must
- * be called to preserve normal behaviour.
- * 
- * @since 3.0
- */
-public class FormToolkit {
-	public static final String KEY_DRAW_BORDER = "FormWidgetFactory.drawBorder"; //$NON-NLS-1$
-
-	public static final String TREE_BORDER = "treeBorder"; //$NON-NLS-1$
-
-	public static final String TEXT_BORDER = "textBorder"; //$NON-NLS-1$
-
-	private int borderStyle = SWT.NULL;
-
-	private FormColors colors;
-
-	private int orientation = Window.getDefaultOrientation();
-
-	// private KeyListener deleteListener;
-	private BorderPainter borderPainter;
-
-	private BoldFontHolder boldFontHolder;
-
-	private HyperlinkGroup hyperlinkGroup;
-
-	/* default */
-	VisibilityHandler visibilityHandler;
-
-	/* default */
-	KeyboardHandler keyboardHandler;
-
-	private class BorderPainter implements PaintListener {
-		public void paintControl(PaintEvent event) {
-			Composite composite = (Composite) event.widget;
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				Control c = children[i];
-				boolean inactiveBorder = false;
-				boolean textBorder = false;
-				if (!c.isVisible())
-					continue;
-				/*
-				 * if (c.getEnabled() == false && !(c instanceof CCombo))
-				 * continue;
-				 */
-				if (c instanceof Hyperlink)
-					continue;
-				Object flag = c.getData(KEY_DRAW_BORDER);
-				if (flag != null) {
-					if (flag.equals(Boolean.FALSE))
-						continue;
-					if (flag.equals(TREE_BORDER))
-						inactiveBorder = true;
-					else if (flag.equals(TEXT_BORDER))
-						textBorder = true;
-				}
-				if (getBorderStyle() == SWT.BORDER) {
-					if (!inactiveBorder && !textBorder) {
-						continue;
-					}
-					if (c instanceof Text || c instanceof Table
-							|| c instanceof Tree)
-						continue;
-				}
-				if (!inactiveBorder
-						&& (c instanceof Text || c instanceof CCombo || textBorder)) {
-					Rectangle b = c.getBounds();
-					GC gc = event.gc;
-					gc.setForeground(c.getBackground());
-					gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
-							b.height + 1);
-					// gc.setForeground(getBorderStyle() == SWT.BORDER ? colors
-					// .getBorderColor() : colors.getForeground());
-					gc.setForeground(colors.getBorderColor());
-					if (c instanceof CCombo)
-						gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
-								b.height + 1);
-					else
-						gc.drawRectangle(b.x - 1, b.y - 2, b.width + 1,
-								b.height + 3);
-				} else if (inactiveBorder || c instanceof Table
-						|| c instanceof Tree) {
-					Rectangle b = c.getBounds();
-					GC gc = event.gc;
-					gc.setForeground(colors.getBorderColor());
-					gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
-							b.height + 1);
-				}
-			}
-		}
-	}
-
-	private static class VisibilityHandler extends FocusAdapter {
-		public void focusGained(FocusEvent e) {
-			Widget w = e.widget;
-			if (w instanceof Control) {
-				FormUtil.ensureVisible((Control) w);
-			}
-		}
-	}
-
-	private static class KeyboardHandler extends KeyAdapter {
-		public void keyPressed(KeyEvent e) {
-			Widget w = e.widget;
-			if (w instanceof Control) {
-				if (e.doit)
-					FormUtil.processKey(e.keyCode, (Control) w);
-			}
-		}
-	}
-
-	private class BoldFontHolder {
-		private Font normalFont;
-
-		private Font boldFont;
-
-		public BoldFontHolder() {
-		}
-
-		public Font getBoldFont(Font font) {
-			createBoldFont(font);
-			return boldFont;
-		}
-
-		private void createBoldFont(Font font) {
-			if (normalFont == null || !normalFont.equals(font)) {
-				normalFont = font;
-				dispose();
-			}
-			if (boldFont == null) {
-				boldFont = FormFonts.getInstance().getBoldFont(colors.getDisplay(),
-						normalFont);
-			}
-		}
-
-		public void dispose() {
-			if (boldFont != null) {
-				FormFonts.getInstance().markFinished(boldFont);
-				boldFont = null;
-			}
-		}
-	}
-
-	/**
-	 * Creates a toolkit that is self-sufficient (will manage its own colors).
-	 * 
-	 */
-	public FormToolkit(Display display) {
-		this(new FormColors(display));
-	}
-
-	/**
-	 * Creates a toolkit that will use the provided (shared) colors. The toolkit
-	 * will dispose the colors if and only if they are <b>not</b> marked as
-	 * shared via the <code>markShared()</code> method.
-	 * 
-	 * @param colors
-	 *            the shared colors
-	 */
-	public FormToolkit(FormColors colors) {
-		this.colors = colors;
-		initialize();
-	}
-
-	/**
-	 * Creates a button as a part of the form.
-	 * 
-	 * @param parent
-	 *            the button parent
-	 * @param text
-	 *            an optional text for the button (can be <code>null</code>)
-	 * @param style
-	 *            the button style (for example, <code>SWT.PUSH</code>)
-	 * @return the button widget
-	 */
-	public Button createButton(Composite parent, String text, int style) {
-		Button button = new Button(parent, style | SWT.FLAT | orientation);
-		if (text != null)
-			button.setText(text);
-		adapt(button, true, true);
-		return button;
-	}
-
-	/**
-	 * Creates the composite as a part of the form.
-	 * 
-	 * @param parent
-	 *            the composite parent
-	 * @return the composite widget
-	 */
-	public Composite createComposite(Composite parent) {
-		return createComposite(parent, SWT.NULL);
-	}
-
-	/**
-	 * Creates the composite as part of the form using the provided style.
-	 * 
-	 * @param parent
-	 *            the composite parent
-	 * @param style
-	 *            the composite style
-	 * @return the composite widget
-	 */
-	public Composite createComposite(Composite parent, int style) {
-		Composite composite = new LayoutComposite(parent, style | orientation);
-		adapt(composite);
-		return composite;
-	}
-
-	/**
-	 * Creats the composite that can server as a separator between various parts
-	 * of a form. Separator height should be controlled by setting the height
-	 * hint on the layout data for the composite.
-	 * 
-	 * @param parent
-	 *            the separator parent
-	 * @return the separator widget
-	 */
-	public Composite createCompositeSeparator(Composite parent) {
-		final Composite composite = new Composite(parent, orientation);
-		composite.addListener(SWT.Paint, new Listener() {
-			public void handleEvent(Event e) {
-				if (composite.isDisposed())
-					return;
-				Rectangle bounds = composite.getBounds();
-				GC gc = e.gc;
-				gc.setForeground(colors.getColor(IFormColors.SEPARATOR));
-				if (colors.getBackground() != null)
-					gc.setBackground(colors.getBackground());
-				gc.fillGradientRectangle(0, 0, bounds.width, bounds.height,
-						false);
-			}
-		});
-		if (parent instanceof Section)
-			((Section) parent).setSeparatorControl(composite);
-		return composite;
-	}
-
-	/**
-	 * Creates a label as a part of the form.
-	 * 
-	 * @param parent
-	 *            the label parent
-	 * @param text
-	 *            the label text
-	 * @return the label widget
-	 */
-	public Label createLabel(Composite parent, String text) {
-		return createLabel(parent, text, SWT.NONE);
-	}
-
-	/**
-	 * Creates a label as a part of the form.
-	 * 
-	 * @param parent
-	 *            the label parent
-	 * @param text
-	 *            the label text
-	 * @param style
-	 *            the label style
-	 * @return the label widget
-	 */
-	public Label createLabel(Composite parent, String text, int style) {
-		Label label = new Label(parent, style | orientation);
-		if (text != null)
-			label.setText(text);
-		adapt(label, false, false);
-		return label;
-	}
-
-	/**
-	 * Creates a hyperlink as a part of the form. The hyperlink will be added to
-	 * the hyperlink group that belongs to this toolkit.
-	 * 
-	 * @param parent
-	 *            the hyperlink parent
-	 * @param text
-	 *            the text of the hyperlink
-	 * @param style
-	 *            the hyperlink style
-	 * @return the hyperlink widget
-	 */
-	public Hyperlink createHyperlink(Composite parent, String text, int style) {
-		Hyperlink hyperlink = new Hyperlink(parent, style | orientation);
-		if (text != null)
-			hyperlink.setText(text);
-		hyperlink.addFocusListener(visibilityHandler);
-		hyperlink.addKeyListener(keyboardHandler);
-		hyperlinkGroup.add(hyperlink);
-		return hyperlink;
-	}
-
-	/**
-	 * Creates an image hyperlink as a part of the form. The hyperlink will be
-	 * added to the hyperlink group that belongs to this toolkit.
-	 * 
-	 * @param parent
-	 *            the hyperlink parent
-	 * @param style
-	 *            the hyperlink style
-	 * @return the image hyperlink widget
-	 */
-	public ImageHyperlink createImageHyperlink(Composite parent, int style) {
-		ImageHyperlink hyperlink = new ImageHyperlink(parent, style
-				| orientation);
-		hyperlink.addFocusListener(visibilityHandler);
-		hyperlink.addKeyListener(keyboardHandler);
-		hyperlinkGroup.add(hyperlink);
-		return hyperlink;
-	}
-
-	/**
-	 * Creates a rich text as a part of the form.
-	 * 
-	 * @param parent
-	 *            the rich text parent
-	 * @param trackFocus
-	 *            if <code>true</code>, the toolkit will monitor focus
-	 *            transfers to ensure that the hyperlink in focus is visible in
-	 *            the form.
-	 * @return the rich text widget
-	 */
-	public FormText createFormText(Composite parent, boolean trackFocus) {
-		FormText engine = new FormText(parent, SWT.WRAP | orientation);
-		engine.marginWidth = 1;
-		engine.marginHeight = 0;
-		engine.setHyperlinkSettings(getHyperlinkGroup());
-		adapt(engine, trackFocus, true);
-		engine.setMenu(parent.getMenu());
-		return engine;
-	}
-
-	/**
-	 * Adapts a control to be used in a form that is associated with this
-	 * toolkit. This involves adjusting colors and optionally adding handlers to
-	 * ensure focus tracking and keyboard management.
-	 * 
-	 * @param control
-	 *            a control to adapt
-	 * @param trackFocus
-	 *            if <code>true</code>, form will be scrolled horizontally
-	 *            and/or vertically if needed to ensure that the control is
-	 *            visible when it gains focus. Set it to <code>false</code> if
-	 *            the control is not capable of gaining focus.
-	 * @param trackKeyboard
-	 *            if <code>true</code>, the control that is capable of
-	 *            gaining focus will be tracked for certain keys that are
-	 *            important to the underlying form (for example, PageUp,
-	 *            PageDown, ScrollUp, ScrollDown etc.). Set it to
-	 *            <code>false</code> if the control is not capable of gaining
-	 *            focus or these particular key event are already used by the
-	 *            control.
-	 */
-	public void adapt(Control control, boolean trackFocus, boolean trackKeyboard) {
-		control.setBackground(colors.getBackground());
-		control.setForeground(colors.getForeground());
-		if (control instanceof ExpandableComposite) {
-			ExpandableComposite ec = (ExpandableComposite) control;
-			if (ec.toggle != null) {
-				if (trackFocus)
-					ec.toggle.addFocusListener(visibilityHandler);
-				if (trackKeyboard)
-					ec.toggle.addKeyListener(keyboardHandler);
-			}
-			if (ec.textLabel != null) {
-				if (trackFocus)
-					ec.textLabel.addFocusListener(visibilityHandler);
-				if (trackKeyboard)
-					ec.textLabel.addKeyListener(keyboardHandler);
-			}
-			return;
-		}
-		if (trackFocus)
-			control.addFocusListener(visibilityHandler);
-		if (trackKeyboard)
-			control.addKeyListener(keyboardHandler);
-	}
-
-	/**
-	 * Adapts a composite to be used in a form associated with this toolkit.
-	 * 
-	 * @param composite
-	 *            the composite to adapt
-	 */
-	public void adapt(Composite composite) {
-		composite.setBackground(colors.getBackground());
-		composite.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent e) {
-				((Control) e.widget).setFocus();
-			}
-		});
-		composite.setMenu(composite.getParent().getMenu());
-	}
-
-	/**
-	 * A helper method that ensures the provided control is visible when
-	 * ScrolledComposite is somewhere in the parent chain. If scroll bars are
-	 * visible and the control is clipped, the client of the scrolled composite
-	 * will be scrolled to reveal the control.
-	 * 
-	 * @param c
-	 *            the control to reveal
-	 */
-	public static void ensureVisible(Control c) {
-		FormUtil.ensureVisible(c);
-	}
-
-	/**
-	 * Creates a section as a part of the form.
-	 * 
-	 * @param parent
-	 *            the section parent
-	 * @param sectionStyle
-	 *            the section style
-	 * @return the section widget
-	 */
-	public Section createSection(Composite parent, int sectionStyle) {
-		Section section = new Section(parent, orientation, sectionStyle);
-		section.setMenu(parent.getMenu());
-		adapt(section, true, true);
-		if (section.toggle != null) {
-			section.toggle.setHoverDecorationColor(colors
-					.getColor(IFormColors.TB_TOGGLE_HOVER));
-			section.toggle.setDecorationColor(colors
-					.getColor(IFormColors.TB_TOGGLE));
-		}
-		section.setFont(boldFontHolder.getBoldFont(parent.getFont()));
-		if ((sectionStyle & Section.TITLE_BAR) != 0
-				|| (sectionStyle & Section.SHORT_TITLE_BAR) != 0) {
-			colors.initializeSectionToolBarColors();
-			section.setTitleBarBackground(colors.getColor(IFormColors.TB_BG));
-			section.setTitleBarBorderColor(colors
-					.getColor(IFormColors.TB_BORDER));
-			section.setTitleBarForeground(colors
-					.getColor(IFormColors.TB_TOGGLE));
-		}
-		return section;
-	}
-
-	/**
-	 * Creates an expandable composite as a part of the form.
-	 * 
-	 * @param parent
-	 *            the expandable composite parent
-	 * @param expansionStyle
-	 *            the expandable composite style
-	 * @return the expandable composite widget
-	 */
-	public ExpandableComposite createExpandableComposite(Composite parent,
-			int expansionStyle) {
-		ExpandableComposite ec = new ExpandableComposite(parent, orientation,
-				expansionStyle);
-		ec.setMenu(parent.getMenu());
-		adapt(ec, true, true);
-		ec.setFont(boldFontHolder.getBoldFont(ec.getFont()));
-		return ec;
-	}
-
-	/**
-	 * Creates a separator label as a part of the form.
-	 * 
-	 * @param parent
-	 *            the separator parent
-	 * @param style
-	 *            the separator style
-	 * @return the separator label
-	 */
-	public Label createSeparator(Composite parent, int style) {
-		Label label = new Label(parent, SWT.SEPARATOR | style | orientation);
-		label.setBackground(colors.getBackground());
-		label.setForeground(colors.getBorderColor());
-		return label;
-	}
-
-	/**
-	 * Creates a table as a part of the form.
-	 * 
-	 * @param parent
-	 *            the table parent
-	 * @param style
-	 *            the table style
-	 * @return the table widget
-	 */
-	public Table createTable(Composite parent, int style) {
-		Table table = new Table(parent, style | borderStyle | orientation);
-		adapt(table, false, false);
-		// hookDeleteListener(table);
-		return table;
-	}
-
-	/**
-	 * Creates a text as a part of the form.
-	 * 
-	 * @param parent
-	 *            the text parent
-	 * @param value
-	 *            the text initial value
-	 * @return the text widget
-	 */
-	public Text createText(Composite parent, String value) {
-		return createText(parent, value, SWT.SINGLE);
-	}
-
-	/**
-	 * Creates a text as a part of the form.
-	 * 
-	 * @param parent
-	 *            the text parent
-	 * @param value
-	 *            the text initial value
-	 * @param style
-	 *            the text style
-	 * @return the text widget
-	 */
-	public Text createText(Composite parent, String value, int style) {
-		Text text = new Text(parent, borderStyle | style | orientation);
-		if (value != null)
-			text.setText(value);
-		text.setForeground(colors.getForeground());
-		text.setBackground(colors.getBackground());
-		text.addFocusListener(visibilityHandler);
-		return text;
-	}
-
-	/**
-	 * Creates a tree widget as a part of the form.
-	 * 
-	 * @param parent
-	 *            the tree parent
-	 * @param style
-	 *            the tree style
-	 * @return the tree widget
-	 */
-	public Tree createTree(Composite parent, int style) {
-		Tree tree = new Tree(parent, borderStyle | style | orientation);
-		adapt(tree, false, false);
-		// hookDeleteListener(tree);
-		return tree;
-	}
-
-	/**
-	 * Creates a scrolled form widget in the provided parent. If you do not
-	 * require scrolling because there is already a scrolled composite up the
-	 * parent chain, use 'createForm' instead.
-	 * 
-	 * @param parent
-	 *            the scrolled form parent
-	 * @return the form that can scroll itself
-	 * @see #createForm
-	 */
-	public ScrolledForm createScrolledForm(Composite parent) {
-		ScrolledForm form = new ScrolledForm(parent, SWT.V_SCROLL
-				| SWT.H_SCROLL | orientation);
-		form.setExpandHorizontal(true);
-		form.setExpandVertical(true);
-		form.setBackground(colors.getBackground());
-		form.setForeground(colors.getColor(IFormColors.TITLE));
-		form.setFont(JFaceResources.getHeaderFont());
-		return form;
-	}
-
-	/**
-	 * Creates a form widget in the provided parent. Note that this widget does
-	 * not scroll its content, so make sure there is a scrolled composite up the
-	 * parent chain. If you require scrolling, use 'createScrolledForm' instead.
-	 * 
-	 * @param parent
-	 *            the form parent
-	 * @return the form that does not scroll
-	 * @see #createScrolledForm
-	 */
-	public Form createForm(Composite parent) {
-		Form formContent = new Form(parent, orientation);
-		formContent.setBackground(colors.getBackground());
-		formContent.setForeground(colors.getColor(IFormColors.TITLE));
-		formContent.setFont(JFaceResources.getHeaderFont());
-		return formContent;
-	}
-
-	/**
-	 * Takes advantage of the gradients and other capabilities to decorate the
-	 * form heading using colors computed based on the current skin and
-	 * operating system.
-	 * 
-	 * @since 3.3
-	 * @param form
-	 *            the form to decorate
-	 */
-
-	public void decorateFormHeading(Form form) {
-		Color top = colors.getColor(IFormColors.H_GRADIENT_END);
-		Color bot = colors.getColor(IFormColors.H_GRADIENT_START);
-		form.setTextBackground(new Color[] { top, bot }, new int[] { 100 },
-				true);
-		form.setHeadColor(IFormColors.H_BOTTOM_KEYLINE1, colors
-				.getColor(IFormColors.H_BOTTOM_KEYLINE1));
-		form.setHeadColor(IFormColors.H_BOTTOM_KEYLINE2, colors
-				.getColor(IFormColors.H_BOTTOM_KEYLINE2));
-		form.setHeadColor(IFormColors.H_HOVER_LIGHT, colors
-				.getColor(IFormColors.H_HOVER_LIGHT));
-		form.setHeadColor(IFormColors.H_HOVER_FULL, colors
-				.getColor(IFormColors.H_HOVER_FULL));
-		form.setHeadColor(IFormColors.TB_TOGGLE, colors
-				.getColor(IFormColors.TB_TOGGLE));
-		form.setHeadColor(IFormColors.TB_TOGGLE_HOVER, colors
-				.getColor(IFormColors.TB_TOGGLE_HOVER));
-		form.setSeparatorVisible(true);
-	}
-
-	/**
-	 * Creates a scrolled page book widget as a part of the form.
-	 * 
-	 * @param parent
-	 *            the page book parent
-	 * @param style
-	 *            the text style
-	 * @return the scrolled page book widget
-	 */
-	public ScrolledPageBook createPageBook(Composite parent, int style) {
-		ScrolledPageBook book = new ScrolledPageBook(parent, style
-				| orientation);
-		adapt(book, true, true);
-		book.setMenu(parent.getMenu());
-		return book;
-	}
-
-	/**
-	 * Disposes the toolkit.
-	 */
-	public void dispose() {
-		if (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;
-	}
-
-	/**
-	 * Returns the margin required around the children whose border is being
-	 * painted by the toolkit using {@link #paintBordersFor(Composite)}. Since
-	 * the border is painted around the controls on the parent, a number of
-	 * pixels needs to be reserved for this border. For windowing systems where
-	 * the native border is used, this margin is 0.
-	 * 
-	 * @return the margin in the parent when children have their border painted
-	 * @since 3.3
-	 */
-	public int getBorderMargin() {
-		return getBorderStyle() == SWT.BORDER ? 0 : 2;
-	}
-
-	/**
-	 * Sets the border style to be used when creating widgets. The toolkit
-	 * chooses the correct style based on the platform but this value can be
-	 * changed using this method.
-	 * 
-	 * @param style
-	 *            <code>SWT.BORDER</code> or <code>SWT.NULL</code>
-	 * @see #getBorderStyle
-	 */
-	public void setBorderStyle(int style) {
-		this.borderStyle = style;
-	}
-
-	/**
-	 * A utility method that ensures that the control is visible in the scrolled
-	 * composite. The prerequisite for this method is that the control has a
-	 * class that extends ScrolledComposite somewhere in the parent chain. If
-	 * the control is partially or fully clipped, the composite is scrolled to
-	 * set by setting the origin to the control origin.
-	 * 
-	 * @param c
-	 *            the control to make visible
-	 * @param verticalOnly
-	 *            if <code>true</code>, the scrolled composite will be
-	 *            scrolled only vertically if needed. Otherwise, the scrolled
-	 *            composite origin will be set to the control origin.
-	 * @since 3.1
-	 */
-	public static void setControlVisible(Control c, boolean verticalOnly) {
-		ScrolledComposite scomp = FormUtil.getScrolledComposite(c);
-		if (scomp == null)
-			return;
-		Point location = FormUtil.getControlLocation(scomp, c);
-		scomp.setOrigin(location);
-	}
-
-	private void initialize() {
-		initializeBorderStyle();
-		hyperlinkGroup = new HyperlinkGroup(colors.getDisplay());
-		hyperlinkGroup.setBackground(colors.getBackground());
-		visibilityHandler = new VisibilityHandler();
-		keyboardHandler = new KeyboardHandler();
-		boldFontHolder = new BoldFontHolder();
-	}
-
-	private void initializeBorderStyle() {
-		String osname = System.getProperty("os.name"); //$NON-NLS-1$
-		String osversion = System.getProperty("os.version"); //$NON-NLS-1$
-		if (osname.startsWith("Windows") && "5.1".compareTo(osversion) <= 0) { //$NON-NLS-1$ //$NON-NLS-2$
-			// Skinned widgets used on newer Windows (e.g. XP (5.1), Vista
-			// (6.0))
-			// Check for Windows Classic. If not used, set the style to BORDER
-			RGB rgb = colors.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			if (rgb.red != 212 || rgb.green != 208 || rgb.blue != 200)
-				borderStyle = SWT.BORDER;
-		} else if (osname.startsWith("Mac")) //$NON-NLS-1$
-			borderStyle = SWT.BORDER;
-	}
-
-	/**
-	 * Returns the orientation that all the widgets created by this toolkit will
-	 * inherit, if set. Can be <code>SWT.NULL</code>,
-	 * <code>SWT.LEFT_TO_RIGHT</code> and <code>SWT.RIGHT_TO_LEFT</code>.
-	 * 
-	 * @return orientation style for this toolkit, or <code>SWT.NULL</code> if
-	 *         not set. The default orientation is inherited from the Window
-	 *         default orientation.
-	 * @see org.eclipse.jface.window.Window#getDefaultOrientation()
-	 * @since 3.1
-	 */
-
-	public int getOrientation() {
-		return orientation;
-	}
-
-	/**
-	 * Sets the orientation that all the widgets created by this toolkit will
-	 * inherit. Can be <code>SWT.NULL</code>, <code>SWT.LEFT_TO_RIGHT</code>
-	 * and <code>SWT.RIGHT_TO_LEFT</code>.
-	 * 
-	 * @param orientation
-	 *            style for this toolkit.
-	 * @since 3.1
-	 */
-
-	public void setOrientation(int orientation) {
-		this.orientation = orientation;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java
deleted file mode 100644
index a6b0d0b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import 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 static final String ELLIPSIS = "..."; //$NON-NLS-1$	
-	private boolean underlined;
-	// The tooltip is used for two purposes - the application can set
-	// a tooltip or the tooltip can be used to display the full text when the
-	// the text has been truncated due to the label being too short.
-	// The appToolTip stores the tooltip set by the application.  Control.tooltiptext 
-	// contains whatever tooltip is currently being displayed.
-	private String appToolTipText;	
-
-	/**
-	 * Creates a new hyperlink control in the provided parent.
-	 * 
-	 * @param parent
-	 *            the control parent
-	 * @param style
-	 *            the widget style
-	 */
-	public Hyperlink(Composite parent, int style) {
-		super(parent, style);
-		initAccessible();
-	}
-
-	protected void initAccessible() {
-		Accessible accessible = getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				e.result = getText();
-				if (e.result == null)
-					getHelp(e);
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				e.result = getToolTipText();
-			}
-		});
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-			public void getChildAtPoint(AccessibleControlEvent e) {
-				Point pt = toControl(new Point(e.x, e.y));
-				e.childID = (getBounds().contains(pt)) ? ACC.CHILDID_SELF
-						: ACC.CHILDID_NONE;
-			}
-
-			public void getLocation(AccessibleControlEvent e) {
-				Rectangle location = getBounds();
-				Point pt = toDisplay(new Point(location.x, location.y));
-				e.x = pt.x;
-				e.y = pt.y;
-				e.width = location.width;
-				e.height = location.height;
-			}
-
-			public void getChildCount(AccessibleControlEvent e) {
-				e.detail = 0;
-			}
-
-			public void getRole(AccessibleControlEvent e) {
-				e.detail = ACC.ROLE_LINK;
-			}
-						
-			public void getDefaultAction (AccessibleControlEvent e) {
-				e.result = SWT.getMessage ("SWT_Press"); //$NON-NLS-1$
-			}
-
-			public void getState(AccessibleControlEvent e) {
-				int state = ACC.STATE_NORMAL;
-				if (Hyperlink.this.getSelection())
-					state = ACC.STATE_SELECTED | ACC.STATE_FOCUSED;
-				e.detail = state;
-			}
-		});
-	}
-
-	/**
-	 * Sets the underlined state. It is not necessary to call this method when
-	 * in a hyperlink group.
-	 * 
-	 * @param underlined
-	 *            if <samp>true </samp>, a line will be drawn below the text for
-	 *            each wrapped line.
-	 */
-	public void setUnderlined(boolean underlined) {
-		this.underlined = underlined;
-		redraw();
-	}
-
-	/**
-	 * Returns the underline state of the hyperlink.
-	 * 
-	 * @return <samp>true </samp> if text is underlined, <samp>false </samp>
-	 *         otherwise.
-	 */
-	public boolean isUnderlined() {
-		return underlined;
-	}
-
-	/**
-	 * Overrides the parent by incorporating the margin.
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		int innerWidth = wHint;
-		if (innerWidth != SWT.DEFAULT)
-			innerWidth -= marginWidth * 2;
-		Point textSize = computeTextSize(innerWidth, hHint);
-		int textWidth = textSize.x + 2 * marginWidth;
-		int textHeight = textSize.y + 2 * marginHeight;
-		return new Point(textWidth, textHeight);
-	}
-
-	/**
-	 * Returns the current hyperlink text.
-	 * 
-	 * @return hyperlink text
-	 */
-	public String getText() {
-		return text;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#getToolTipText()
-	 */
-	public String getToolTipText () {
-		checkWidget();
-		return appToolTipText;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setToolTipText(java.lang.String)
-	 */
-	public void setToolTipText (String string) {
-		super.setToolTipText (string);
-		appToolTipText = super.getToolTipText();
-	}	
-
-	/**
-	 * Sets the text of this hyperlink.
-	 * 
-	 * @param text
-	 *            the hyperlink text
-	 */
-	public void setText(String text) {
-		if (text != null)
-			this.text = text;
-		else
-			this.text = ""; //$NON-NLS-1$
-		redraw();
-	}
-
-	/**
-	 * Paints the hyperlink text.
-	 * 
-	 * @param gc
-	 *            graphic context
-	 */
-	protected void paintHyperlink(GC gc) {
-		Rectangle carea = getClientArea();
-		Rectangle bounds = new Rectangle(marginWidth, marginHeight, carea.width
-				- marginWidth - marginWidth, carea.height - marginHeight
-				- marginHeight);
-		paintText(gc, bounds);
-	}
-
-	/**
-	 * Paints the hyperlink text in provided bounding rectangle.
-	 * 
-	 * @param gc
-	 *            graphic context
-	 * @param bounds
-	 *            the bounding rectangle in which to paint the text
-	 */
-	protected void paintText(GC gc, Rectangle bounds) {
-		gc.setFont(getFont());
-		gc.setForeground(getForeground());
-		if ((getStyle() & SWT.WRAP) != 0) {
-			FormUtil.paintWrapText(gc, text, bounds, underlined);
-		} else {
-			Point totalSize = computeTextSize(SWT.DEFAULT, SWT.DEFAULT);
-			boolean shortenText =false;
-			if (bounds.width<totalSize.x) {
-				// shorten
-				shortenText=true;
-			}
-			int textWidth = Math.min(bounds.width, totalSize.x);
-			int textHeight = totalSize.y;
-			String textToDraw = getText();
-			if (shortenText) {
-				textToDraw = shortenText(gc, getText(), bounds.width);
-				if (appToolTipText == null) {
-					super.setToolTipText(getText());
-				}
-			}
-			else {
-				super.setToolTipText(appToolTipText);
-			}
-			gc.drawText(textToDraw, bounds.x, bounds.y, true);
-			if (underlined) {
-				int descent = gc.getFontMetrics().getDescent();
-				int lineY = bounds.y + textHeight - descent + 1;
-				gc.drawLine(bounds.x, lineY, bounds.x + textWidth, lineY);
-			}
-		}
-	}
-	
-	protected String shortenText(GC gc, String t, int width) {
-		if (t == null) return null;
-		int w = gc.textExtent(ELLIPSIS).x;
-		if (width<=w) return t;
-		int l = t.length();
-		int max = l/2;
-		int min = 0;
-		int mid = (max+min)/2 - 1;
-		if (mid <= 0) return t;
-		while (min < mid && mid < max) {
-			String s1 = t.substring(0, mid);
-			String s2 = t.substring(l-mid, l);
-			int l1 = gc.textExtent(s1).x;
-			int l2 = gc.textExtent(s2).x;
-			if (l1+w+l2 > width) {
-				max = mid;			
-				mid = (max+min)/2;
-			} else if (l1+w+l2 < width) {
-				min = mid;
-				mid = (max+min)/2;
-			} else {
-				min = max;
-			}
-		}
-		if (mid == 0) return t;
-	 	return t.substring(0, mid)+ELLIPSIS+t.substring(l-mid, l);
-	}
-
-	protected Point computeTextSize(int wHint, int hHint) {
-		Point extent;
-		GC gc = new GC(this);
-		gc.setFont(getFont());
-		if ((getStyle() & SWT.WRAP) != 0 && wHint != SWT.DEFAULT) {
-			extent = FormUtil.computeWrapSize(gc, getText(), wHint);
-		} else {
-			extent = gc.textExtent(getText());
-			if ((getStyle() & SWT.WRAP)==0 && wHint!=SWT.DEFAULT)
-				extent.x = wHint;
-		}
-		gc.dispose();
-		return extent;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java
deleted file mode 100644
index 237dd1c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-import org.eclipse.swt.widgets.Composite;
-/**
- * Classes that extend abstract class Layout and implement this interface can
- * take part in layout computation of the TableWrapLayout manager. This layout
- * uses alternative algorithm that computes columns before rows. It allows it
- * to 'flow' wrapped text proportionally (similar to the way web browser
- * renders tables). Custom layout managers that implement this interface will
- * allow TableWrapLayout to properly compute width hint to pass.
- * 
- * @see TableWrapLayout
- * @see ColumnLayout
- * @since 3.0
- */
-public interface ILayoutExtension {
-	/**
-	 * Computes the minimum width of the parent. All widgets capable of word
-	 * wrapping should return the width of the longest word that cannot be
-	 * broken any further.
-	 * 
-	 * @param parent the parent composite
-	 * @param changed <code>true</code> if the cached information should be
-	 * flushed, <code>false</code> otherwise.
-	 * @return the minimum width of the parent composite
-	 */
-	public int computeMinimumWidth(Composite parent, boolean changed);
-	/**
-	 * Computes the maximum width of the parent. All widgets capable of word
-	 * wrapping should return the length of the entire text with wrapping
-	 * turned off.
-	 * 
-	 * @param parent the parent composite
-	 * @param changed <code>true</code> if the cached information
-	 * should be flushed, <code>false</code> otherwise.
-	 * @return the maximum width of the parent composite
-	 */
-	public int computeMaximumWidth(Composite parent, boolean changed);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java
deleted file mode 100644
index 9d98f64..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chriss Gross (schtoo@schtoo.com) - fix for 61670
- *******************************************************************************/
-package org.eclipse.ui.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) {
-		paintHyperlink(gc, getClientArea());
-	}
-	
-	protected void paintHyperlink(GC gc, Rectangle bounds) {
-		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 = bounds.width - maxsize.x - spacing
-				- marginWidth - marginWidth;
-		int y = bounds.y+marginHeight + maxsize.y / 2 - ibounds.height / 2;
-
-		if (horizontalAlignment == SWT.LEFT) {
-			int x = bounds.x+marginWidth + maxsize.x / 2 - ibounds.width / 2;
-			int textX = bounds.x + marginWidth + maxsize.x + spacing;
-			if (image != null)
-				gc.drawImage(image, x, y);
-			if (getText() != null)
-				drawText(gc, bounds, textX, textWidth);
-		} else if (horizontalAlignment == SWT.RIGHT) {
-			int x = bounds.x+marginWidth;
-			if (getText() != null) {
-				x += drawText(gc, bounds, x, textWidth);
-			}
-			x += maxsize.x / 2 - ibounds.width / 2 + spacing;
-			if (image != null)
-				gc.drawImage(image, x, y);
-		}
-	}
-
-	private int drawText(GC gc, Rectangle clientArea, int textX, int textWidth) {
-		Point textSize = computeTextSize(textWidth, SWT.DEFAULT);
-		int slotHeight = clientArea.height - marginHeight - marginHeight;
-		int textY;
-		textWidth = textSize.x;
-		int textHeight = textSize.y;
-		if (verticalAlignment == SWT.BOTTOM) {
-			textY = marginHeight + slotHeight - textHeight;
-		} else if (verticalAlignment == SWT.CENTER) {
-			textY = marginHeight + slotHeight / 2 - textHeight / 2;
-		} else {
-			textY = marginHeight;
-		}
-		paintText(gc, new Rectangle(textX, textY, textWidth, textHeight));
-		return textWidth;
-	}
-
-	/**
-	 * Computes the control size by reserving space for images in addition to
-	 * text.
-	 * 
-	 * @param wHint
-	 *            width hint
-	 * @param hHint
-	 *            height hint
-	 * @param changed
-	 *            if <code>true</code>, any cached layout data should be
-	 *            computed anew
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		Point isize = computeMaxImageSize();
-		int spacing = isize.x>0?textSpacing:0;
-		Point textSize = null;
-		if (getText() != null) {
-			int innerWHint = wHint;
-			if (wHint != SWT.DEFAULT) {
-				innerWHint = wHint - 2 * marginWidth - isize.x - spacing;
-			}
-			textSize = super.computeSize(innerWHint, hHint, changed);
-		}
-		int width = isize.x;
-		int height = isize.y;
-		if (textSize != null) {
-			width += spacing;
-			width += textSize.x;
-			height = Math.max(height, textSize.y);
-		}
-		width += 2 * marginWidth;
-		height += 2 * marginHeight;
-		return new Point(width, height);
-	}
-
-	protected void handleEnter(Event e) {
-		state = HOVER;
-		super.handleEnter(e);
-	}
-
-	protected void handleExit(Event e) {
-		state = 0;
-		super.handleExit(e);
-	}
-
-	protected void handleActivate(Event e) {
-		state &= ACTIVE;
-		redraw();
-		super.handleActivate(e);
-		state &= ~ACTIVE;
-		if (!isDisposed())
-			redraw();
-	}
-
-	/**
-	 * Returns active image.
-	 * 
-	 * @return active image or <code>null</code> if not set.
-	 */
-	public Image getActiveImage() {
-		return activeImage;
-	}
-
-	/**
-	 * Sets the image to show when link is activated.
-	 * 
-	 * @param activeImage
-	 * 
-	 */
-	public void setActiveImage(Image activeImage) {
-		this.activeImage = activeImage;
-	}
-
-	/**
-	 * Returns the hover image.
-	 * 
-	 * @return hover image or <code>null</code> if not set.
-	 */
-	public Image getHoverImage() {
-		return hoverImage;
-	}
-
-	/**
-	 * Sets the image to show when link is hover state (on mouse over).
-	 * 
-	 * @param hoverImage
-	 */
-	public void setHoverImage(Image hoverImage) {
-		this.hoverImage = hoverImage;
-	}
-
-	/**
-	 * Returns the image to show in the normal state.
-	 * 
-	 * @return normal image or <code>null</code> if not set.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Sets the image to show when link is in the normal state.
-	 * 
-	 * @param image
-	 */
-	public void setImage(Image image) {
-		this.image = image;
-	}
-
-	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 7421a70..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutCache.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Caches the preferred sizes of an array of controls
- * 
- * @since 3.0
- */
-public class LayoutCache {
-    private SizeCache[] caches = new SizeCache[0];
-
-    /**
-     * Creates an empty layout cache
-     */
-    public LayoutCache() {
-    }
-
-    /**
-     * Creates a cache for the given array of controls
-     * 
-     * @param controls
-     */
-    public LayoutCache(Control[] controls) {
-        rebuildCache(controls);
-    }
-
-    /**
-     * Returns the size cache for the given control
-     * 
-     * @param idx
-     * @return the size cache for the given control
-     */
-    public SizeCache getCache(int idx) {
-        return caches[idx];
-    }
-
-    /**
-     * Sets the controls that are being cached here. If these are the same
-     * controls that were used last time, this method does nothing. Otherwise,
-     * the cache is flushed and a new cache is created for the new controls.
-     * 
-     * @param controls
-     */
-    public void setControls(Control[] controls) {
-        // If the number of controls has changed, discard the entire cache
-        if (controls.length != caches.length) {
-            rebuildCache(controls);
-            return;
-        }
-
-        for (int idx = 0; idx < controls.length; idx++) {
-            caches[idx].setControl(controls[idx]);
-        }
-    }
-
-    /**
-     * Creates a new size cache for the given set of controls, discarding any
-     * existing cache.
-     * 
-     * @param controls the controls whose size is being cached
-     */
-    private void rebuildCache(Control[] controls) {
-        SizeCache[] newCache = new SizeCache[controls.length];
-
-        for (int idx = 0; idx < controls.length; idx++) {
-            // Try to reuse existing caches if possible
-            if (idx < caches.length) {
-                newCache[idx] = caches[idx];
-                newCache[idx].setControl(controls[idx]);
-            } else {
-                newCache[idx] = new SizeCache(controls[idx]);
-            }
-        }
-
-        caches = newCache;
-    }
-
-    /**
-     * Computes the preferred size of the nth control
-     * 
-     * @param controlIndex index of the control whose size will be computed
-     * @param widthHint width of the control (or SWT.DEFAULT if unknown)
-     * @param heightHint height of the control (or SWT.DEFAULT if unknown)
-     * @return the preferred size of the control
-     */
-    public Point computeSize(int controlIndex, int widthHint, int heightHint) {
-        return caches[controlIndex].computeSize(widthHint, heightHint);
-    }
-
-    /**
-     * Flushes the cache for the given control. This should be called if exactly
-     * one of the controls has changed but the remaining controls remain unmodified
-     * 
-     * @param controlIndex
-     */
-    public void flush(int controlIndex) {
-        caches[controlIndex].flush();
-    }
-
-    /**
-     * Flushes the cache.
-     */
-    public void flush() {
-        for (int idx = 0; idx < caches.length; idx++) {
-            caches[idx].flush();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.java
deleted file mode 100644
index b51cca8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-/**
- * The class overrides default method for computing size in Composite by
- * accepting size returned from layout managers as-is. The default code accepts
- * width or height hint assuming it is correct. However, it is possible that
- * the computation using the provided width hint results in a real size that is
- * larger. This can result in wrapped text widgets being clipped, asking to
- * render in bounds narrower than the longest word.
- */
-/* package */class LayoutComposite extends Composite {
-	public LayoutComposite(Composite parent, int style) {
-		super(parent, style);
-		setMenu(parent.getMenu());
-	}
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Layout layout = getLayout();
-		if (layout instanceof TableWrapLayout)
-			return ((TableWrapLayout) layout).computeSize(this, wHint, hHint,
-					changed);
-		if (layout instanceof ColumnLayout)
-			return ((ColumnLayout) layout).computeSize(this, wHint, hHint,
-					changed);
-		return super.computeSize(wHint, hHint, changed);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java
deleted file mode 100644
index b83c74c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.jface.action.IToolBarManager;
-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.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.forms.IMessage;
-
-/**
- * ScrolledForm is a control that is capable of scrolling an instance of the
- * Form class. It should be created in a parent that will allow it to use all
- * the available area (for example, a shell, a view or an editor).
- * <p>
- * Children of the form should typically be created using FormToolkit to match
- * the appearance and behaviour. When creating children, use a form body as a
- * parent by calling 'getBody()' on the form instance. Example:
- * 
- * <pre>
- * FormToolkit toolkit = new FormToolkit(parent.getDisplay());
- * ScrolledForm form = toolkit.createScrolledForm(parent);
- * form.setText(&quot;Sample form&quot;);
- * form.getBody().setLayout(new GridLayout());
- * toolkit.createButton(form.getBody(), &quot;Checkbox&quot;, SWT.CHECK);
- * </pre>
- * 
- * <p>
- * No layout manager has been set on the body. Clients are required to set the
- * desired layout manager explicitly.
- * <p>
- * Although the class is not final, it is not expected to be be extended.
- * 
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ScrolledForm extends SharedScrolledComposite {
-	private Form content;
-
-	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.
-	 * <p>
-	 * <strong>Note:</strong> Mnemonics are indicated by an '&amp;' that causes
-	 * the next character to be the mnemonic. Mnemonics are not applicable in
-	 * the case of the form title but need to be taken into acount due to the
-	 * usage of the underlying widget that renders mnemonics in the title area.
-	 * The mnemonic indicator character '&amp;' can be escaped by doubling it in
-	 * the string, causing a single '&amp;' to be displayed.
-	 * </p>
-	 * 
-	 * @param text
-	 *            the title text
-	 */
-	public void setText(String text) {
-		content.setText(text);
-		reflow(true);
-	}
-
-	/**
-	 * Sets the image to be rendered to the left of the title.
-	 * 
-	 * @param image
-	 *            the title image or <code>null</code> for no image.
-	 */
-	public void setImage(Image image) {
-		content.setImage(image);
-		reflow(true);
-	}
-
-	/**
-	 * Returns the optional background image of this form. The image is rendered
-	 * starting at the position 0,0 and is painted behind the title.
-	 * 
-	 * @return Returns the background image.
-	 */
-	public Image getBackgroundImage() {
-		return content.getBackgroundImage();
-	}
-
-	/**
-	 * Sets the optional background image to be rendered behind the title
-	 * starting at the position 0,0.
-	 * 
-	 * @param backgroundImage
-	 *            The backgroundImage to set.
-	 */
-	public void setBackgroundImage(Image backgroundImage) {
-		content.setBackgroundImage(backgroundImage);
-	}
-
-	/**
-	 * Returns the tool bar manager that is used to manage tool items in the
-	 * form's title area.
-	 * 
-	 * @return form tool bar manager
-	 */
-	public IToolBarManager getToolBarManager() {
-		return content.getToolBarManager();
-	}
-
-	/**
-	 * Updates the local tool bar manager if used. Does nothing if local tool
-	 * bar manager has not been created yet.
-	 */
-	public void updateToolBar() {
-		content.updateToolBar();
-	}
-
-	/**
-	 * Returns the container that occupies the body of the form (the form area
-	 * below the title). Use this container as a parent for the controls that
-	 * should be in the form. No layout manager has been set on the form body.
-	 * 
-	 * @return Returns the body of the form.
-	 */
-	public Composite getBody() {
-		return content.getBody();
-	}
-
-	/**
-	 * Returns the instance of the form owned by the scrolled form.
-	 * 
-	 * @return the form instance
-	 */
-	public Form getForm() {
-		return content;
-	}
-
-	/**
-	 * Sets the form's busy state. Busy form will display 'busy' animation in
-	 * the area of the title image.
-	 * 
-	 * @param busy
-	 *            the form's busy state
-	 * @see Form#setBusy(boolean)
-	 * @since 3.3
-	 */
-
-	public void setBusy(boolean busy) {
-		content.setBusy(busy);
-		reflow(true);
-	}
-
-	/**
-	 * Sets the optional head client.
-	 * 
-	 * @param headClient
-	 *            the optional child of the head
-	 * @see Form#setHeadClient(Control)
-	 * @since 3.3
-	 */
-	public void setHeadClient(Control headClient) {
-		content.setHeadClient(headClient);
-		reflow(true);
-	}
-
-	/**
-	 * Sets the form message.
-	 * 
-	 * @param newMessage
-	 *            the message text or <code>null</code> to reset.
-	 * @param newType
-	 *            as defined in
-	 *            {@link org.eclipse.jface.dialogs.IMessageProvider}.
-	 * @param messages
-	 * 			 an optional array of children that itemize individual
-	 * 			messages or <code>null</code> for a simple message.
-	 * @since 3.3
-	 * @see Form#setMessage(String, int)
-	 */
-	public void setMessage(String newMessage, int newType, IMessage[] messages) {
-		content.setMessage(newMessage, newType, messages);
-		reflow(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageContainer#setMessage(java.lang.String,
-	 *      int)
-	 */
-	public void setMessage(String newMessage, int newType) {
-		this.setMessage(newMessage, newType, null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-	 */
-	public String getMessage() {
-		return content.getMessage();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-	 */
-	public int getMessageType() {
-		return content.getMessageType();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java
deleted file mode 100644
index 78e053e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-import java.io.InputStream;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.*;
-/**
- * ScrolledFormText is a control that is capable of scrolling an instance of
- * the FormText class. It should be created in a parent that will allow it to
- * use all the available area (for example, a shell, a view or an editor). The
- * form text can be created by the class itself, or set from outside. In the
- * later case, the form text instance must be a direct child of the
- * ScrolledFormText instance.
- * <p>
- * The class assumes that text to be rendered contains formatting tags. In case
- * of a string, it will enclose the text in 'form' root element if missing from
- * the text as a convinience. For example:
- * 
- * <pre>
- *  ftext.setText(&quot;&lt;p&gt;Some text here&lt;/&gt;&quot;);
- * </pre>
- * 
- * will not cause an error. The same behavior does not exist for content from
- * the input stream, however - it must be well formed in that case.
- * </p>
-
- * @since 3.0
- * @see FormText
- */
-public class ScrolledFormText extends SharedScrolledComposite {
-	private FormText content;
-	private String text;
-	/**
-	 * Creates the new scrolled text instance in the provided parent
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param createFormText
-	 *            if <code>true</code>, enclosing form text instance will be
-	 *            created in this constructor.
-	 */
-	public ScrolledFormText(Composite parent, boolean createFormText) {
-		this(parent, SWT.V_SCROLL | SWT.H_SCROLL, createFormText);
-	}
-	/**
-	 * Creates the new scrolled text instance in the provided parent
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            the style to pass to the scrolled composite
-	 * @param createFormText
-	 *            if <code>true</code>, enclosing form text instance will be
-	 *            created in this constructor.
-	 */
-	public ScrolledFormText(Composite parent, int style, boolean createFormText) {
-		super(parent, style);
-		if (createFormText)
-			setFormText(new FormText(this, SWT.NULL));
-	}
-	/**
-	 * Sets the form text to be managed by this scrolled form text. The
-	 * instance must be a direct child of this class. If this method is used,
-	 * <code>false</code> must be passed in either of the constructors to
-	 * avoid creating form text instance.
-	 * 
-	 * @param formText
-	 *            the form text instance to use.
-	 */
-	public void setFormText(FormText formText) {
-		this.content = formText;
-		super.setContent(content);
-		content.setMenu(getMenu());
-		if (text != null)
-			loadText(text);
-	}
-	/**
-	 * Sets the foreground color of the scrolled form text.
-	 * 
-	 * @param fg
-	 *            the foreground color
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		if (content != null)
-			content.setForeground(fg);
-	}
-	/**
-	 * Sets the background color of the scrolled form text.
-	 * 
-	 * @param bg
-	 *            the background color
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		if (content != null)
-			content.setBackground(bg);
-	}
-	/**
-	 * The class sets the content widget. This method should not be called by
-	 * classes that instantiate this widget.
-	 * 
-	 * @param c
-	 *            content control
-	 */
-	public final void setContent(Control c) {
-	}
-	/**
-	 * Sets the text to be rendered in the scrolled form text. The text must
-	 * contain formatting tags.
-	 * 
-	 * @param text
-	 *            the text to be rendered
-	 */
-	public void setText(String text) {
-		this.text = text;
-		loadText(text);
-		reflow(true);
-	}
-	/**
-	 * Sets the contents to rendered in the scrolled form text. The stream must
-	 * contain formatting tags. The caller is responsible for closing the input
-	 * stream. The call may be long running. For best results, call this method
-	 * from another thread and call 'reflow' when done (but make both calls
-	 * using 'Display.asyncExec' because these calls must be made in the event
-	 * dispatching thread).
-	 * 
-	 * @param is
-	 *            content input stream
-	 */
-	public void setContents(InputStream is) {
-		loadContents(is);
-	}
-	/**
-	 * Returns the instance of the form text.
-	 * 
-	 * @return the form text instance
-	 */
-	public FormText getFormText() {
-		return content;
-	}
-	private void loadText(String text) {
-		if (content != null) {
-			String markup = text;
-			if (!markup.startsWith("<form>")) //$NON-NLS-1$
-				markup = "<form>" + text + "</form>";  //$NON-NLS-1$//$NON-NLS-2$
-			content.setText(markup, true, false);
-		}
-	}
-	private void loadContents(InputStream is) {
-		if (content != null) {
-			content.setContents(is, false);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java
deleted file mode 100644
index f6ffe96..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-import java.util.Hashtable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.internal.forms.widgets.WrappedPageBook;
-/**
- * ScrolledPageBook is a class that is capable of stacking several composites
- * (pages), while showing one at a time. The content is scrolled if there is
- * not enough space to fit it in the client area.
- * 
- * @since 3.0
- */
-public class ScrolledPageBook extends SharedScrolledComposite {
-	private WrappedPageBook pageBook;
-	private Hashtable pages;
-	private Composite emptyPage;
-	private Control currentPage;
-	/**
-	 * Creates a new instance in the provided parent
-	 * 
-	 * @param parent
-	 */
-	public ScrolledPageBook(Composite parent) {
-		this(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-	}
-	/**
-	 * Creates a new instance in the provided parent and with the provided
-	 * style.
-	 * 
-	 * @param parent
-	 *            the control parent
-	 * @param style
-	 *            the style to use
-	 */
-	public ScrolledPageBook(Composite parent, int style) {
-		super(parent, style);
-		pageBook = new WrappedPageBook(this, SWT.NULL);
-		setContent(pageBook);
-		pages = new Hashtable();
-		setExpandHorizontal(true);
-		setExpandVertical(true);
-		this.addListener(SWT.Traverse, new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.detail) {
-					case SWT.TRAVERSE_ESCAPE :
-					case SWT.TRAVERSE_RETURN :
-					case SWT.TRAVERSE_TAB_NEXT :
-					case SWT.TRAVERSE_TAB_PREVIOUS :
-						e.doit = true;
-						break;
-				}
-			}
-		});
-	}
-	/**
-	 * Removes the default size of the composite, allowing the control to
-	 * shrink to the trim.
-	 * 
-	 * @param wHint
-	 *            the width hint
-	 * @param hHint
-	 *            the height hint
-	 * @param changed
-	 *            if <code>true</code>, do not use cached values
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Rectangle trim = computeTrim(0, 0, 10, 10);
-		return new Point(trim.width, trim.height);
-	}
-	/**
-	 * Tests if the page under the provided key is currently in the book.
-	 * 
-	 * @param key
-	 *            the page key
-	 * @return <code>true</code> if page exists, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean hasPage(Object key) {
-		return pages.containsKey(key);
-	}
-	/**
-	 * Creates a new page for the provided key. Use the returned composite to
-	 * create children in it.
-	 * 
-	 * @param key
-	 *            the page key
-	 * @return the newly created page composite
-	 */
-	public Composite createPage(Object key) {
-		Composite page = createPage();
-		pages.put(key, page);
-		return page;
-	}
-	/**
-	 * Returns the page book container.
-	 * 
-	 * @return the page book container
-	 */
-	public Composite getContainer() {
-		return pageBook;
-	}
-	/**
-	 * Registers a page under the privided key to be managed by the page book.
-	 * The page must be a direct child of the page book container.
-	 * 
-	 * @param key
-	 *            the page key
-	 * @param page
-	 *            the page composite to register
-	 * @see #createPage(Object)
-	 * @see #getContainer
-	 */
-	public void registerPage(Object key, Control page) {
-		pages.put(key, page);
-	}
-	/**
-	 * Removes the page under the provided key from the page book. Does nothing
-	 * if page with that key does not exist.
-	 * 
-	 * @param key
-	 *            the page key.
-	 */
-	public void removePage(Object key) {
-		removePage(key, true);
-	}
-	/**
-	 * Removes the page under the provided key from the page book. Does nothing
-	 * if page with that key does not exist.
-	 * 
-	 * @param key
-	 *            the page key.
-	 * @param showEmptyPage
-	 * 			  if <code>true</code>, shows the empty page
-	 *            after page removal.
-	 */
-	public void removePage(Object key, boolean showEmptyPage) {
-		Control page = (Control) pages.get(key);
-		if (page != null) {
-			pages.remove(key);
-			page.dispose();
-			if (showEmptyPage)
-				showEmptyPage();
-		}
-	}
-	/**
-	 * Shows the page with the provided key and hides the page previously
-	 * showing. Does nothing if the page with that key does not exist.
-	 * 
-	 * @param key
-	 *            the page key
-	 */
-	public void showPage(Object key) {
-		Control page = (Control) pages.get(key);
-		if (page != null) {
-			pageBook.showPage(page);
-			if (currentPage != null && currentPage != page) {
-				// switching pages - force layout
-				if (page instanceof Composite)
-					((Composite) page).layout(false);
-			}
-			currentPage = page;
-		} else {
-			showEmptyPage();
-		}
-		reflow(true);
-	}
-	/**
-	 * Shows a page with no children to be used if the desire is to not show
-	 * any registered page.
-	 */
-	public void showEmptyPage() {
-		if (emptyPage == null) {
-			emptyPage = createPage();
-			emptyPage.setLayout(new GridLayout());
-		}
-		pageBook.showPage(emptyPage);
-		currentPage = emptyPage;
-		reflow(true);
-	}
-	/**
-	 * Sets focus on the current page if shown.
-	 */
-	public boolean setFocus() {
-		if (currentPage != null)
-			return currentPage.setFocus();
-		return super.setFocus();
-	}
-	/**
-	 * Returns the page currently showing.
-	 * 
-	 * @return the current page
-	 */
-	public Control getCurrentPage() {
-		return currentPage;
-	}
-	private Composite createPage() {
-		Composite page = new LayoutComposite(pageBook, SWT.NULL);
-		page.setBackground(getBackground());
-		page.setForeground(getForeground());
-		page.setMenu(pageBook.getMenu());
-		return page;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java
deleted file mode 100644
index b65258d..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java
+++ /dev/null
@@ -1,471 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     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;
-import org.eclipse.ui.internal.forms.widgets.FormImages;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * A variation of the expandable composite that adds optional description below
- * the title. Section is often used as a basic building block in forms because
- * it provides for logical grouping of information.
- * <p>
- * In case of the TITLE_BAR style, Section renders the title bar in a way
- * compatible with the rest of the workbench. Since it is a widget, all the
- * colors must be supplied directly. When created by the form toolkit, these
- * colors are supplied by the toolkit. The toolkit initializes these colors
- * based on the system colors. For this reason, it is recommended to create the
- * section by the toolkit instead of through its own constructor.
- * <p>
- * Since 3.1, it is possible to set a control to be used for section
- * description. If used, <code>DESCRIPTION</code> style should not be set. A
- * typical way to take advantage of the new method is to set an instance of
- * <code>FormText</code> to provide for hyperlinks and images in the
- * description area.
- * 
- * @since 3.0
- */
-public class Section extends ExpandableComposite {
-	/**
-	 * Description style. If used, description will be rendered below the title.
-	 */
-	public static final int DESCRIPTION = 1 << 7;
-
-	private Control descriptionControl;
-
-	private Control separator;
-
-	private Hashtable titleColors;
-
-	private static final String COLOR_BG = "bg"; //$NON-NLS-1$
-
-	private static final String COLOR_GBG = "gbg"; //$NON-NLS-1$
-
-	private static final String COLOR_BORDER = "border"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new section instance in the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            the style to use
-	 */
-	public Section(Composite parent, int style) {
-		this(parent, SWT.NULL, style);
-	}
-
-	Section(Composite parent, int cstyle, int style) {
-		super(parent, cstyle | getBackgroundStyle(style), style);
-		int rtl = cstyle & SWT.RIGHT_TO_LEFT;
-		if ((style & DESCRIPTION) != 0) {
-			descriptionControl = new Text(this, SWT.READ_ONLY | SWT.WRAP | rtl);
-		}
-		if ((style & TITLE_BAR) != 0) {
-			Listener listener = new Listener() {
-				public void handleEvent(Event e) {
-					Image image = Section.super.getBackgroundImage();
-					if (image != null) {
-						FormImages.getInstance().markFinished(image);
-					}
-					Section.super.setBackgroundImage(null);
-				}
-			};
-			addListener(SWT.Dispose, listener);
-			addListener(SWT.Resize, listener);
-		}
-	}
-
-	private static int getBackgroundStyle(int estyle) {
-		return ((estyle & TITLE_BAR) != 0) ? SWT.NO_BACKGROUND : SWT.NULL;
-	}
-
-	protected void internalSetExpanded(boolean expanded) {
-		super.internalSetExpanded(expanded);
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			if (!expanded)
-				super.setBackgroundImage(null);
-		}
-		reflow();
-	}
-
-	/**
-	 * Reflows this section and all the parents up the hierarchy until a
-	 * SharedScrolledComposite is reached.
-	 */
-	protected void reflow() {
-		Composite c = this;
-		while (c != null) {
-			c.setRedraw(false);
-			c = c.getParent();
-			if (c instanceof SharedScrolledComposite) {
-				break;
-			}
-		}
-		c = this;
-		while (c != null) {
-			c.layout(true);
-			c = c.getParent();
-			if (c instanceof SharedScrolledComposite) {
-				((SharedScrolledComposite) c).reflow(true);
-				break;
-			}
-		}
-		c = this;
-		while (c != null) {
-			c.setRedraw(true);
-			c = c.getParent();
-			if (c instanceof SharedScrolledComposite) {
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Sets the description text. Has no effect if DESCRIPTION style was not
-	 * used to create the control.
-	 * 
-	 * @param description
-	 */
-	public void setDescription(String description) {
-		if (descriptionControl instanceof Text)
-			((Text) descriptionControl).setText(description);
-	}
-
-	/**
-	 * Returns the current description text.
-	 * 
-	 * @return description text or <code>null</code> if DESCRIPTION style was
-	 *         not used to create the control.
-	 */
-	public String getDescription() {
-		if (descriptionControl instanceof Text)
-			return ((Text) descriptionControl).getText();
-		return null;
-	}
-
-	/**
-	 * Sets the separator control of this section. The separator must not be
-	 * <samp>null </samp> and must be a direct child of this container. If
-	 * defined, separator will be placed below the title text and will remain
-	 * visible regardless of the expansion state.
-	 * 
-	 * @param separator
-	 *            the separator that will be placed below the title text.
-	 */
-	public void setSeparatorControl(Control separator) {
-		Assert.isTrue(separator != null && separator.getParent().equals(this));
-		this.separator = separator;
-	}
-
-	/**
-	 * Returns the control that is used as a separator betweeen the title and
-	 * the client, or <samp>null </samp> if not set.
-	 * 
-	 * @return separator control or <samp>null </samp> if not set.
-	 */
-	public Control getSeparatorControl() {
-		return separator;
-	}
-
-	/**
-	 * Sets the background of the section.
-	 * 
-	 * @param bg
-	 *            the new background
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		if (descriptionControl != null
-				&& (getExpansionStyle() & DESCRIPTION) != 0)
-			descriptionControl.setBackground(bg);
-	}
-
-	/**
-	 * Sets the foreground of the section.
-	 * 
-	 * @param fg
-	 *            the new foreground.
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		if (descriptionControl != null
-				&& (getExpansionStyle() & DESCRIPTION) != 0)
-			descriptionControl.setForeground(fg);
-	}
-
-	/**
-	 * Returns the control used to render the description. In 3.1, this method
-	 * was promoted to public.
-	 * 
-	 * @return description control or <code>null</code> if DESCRIPTION style
-	 *         was not used to create the control and description control was
-	 *         not set by the client.
-	 * @see #setDescriptionControl(org.eclipse.swt.widgets.Control)
-	 */
-	public Control getDescriptionControl() {
-		return descriptionControl;
-	}
-
-	/**
-	 * Sets the description control of this section. The control must not be
-	 * <samp>null</samp> and must be a direct child of this container. If
-	 * defined, contol will be placed below the title text and the separator and
-	 * will be hidden int he collapsed state.
-	 * <p>
-	 * This method and <code>DESCRIPTION</code> style are mutually exclusive.
-	 * Use the method only if you want to create the description control
-	 * yourself.
-	 * 
-	 * @since 3.1
-	 * @param descriptionControl
-	 *            the control that will be placed below the title text.
-	 */
-	public void setDescriptionControl(Control descriptionControl) {
-		Assert.isTrue((getExpansionStyle() & DESCRIPTION) == 0);
-		Assert.isTrue(descriptionControl != null
-				&& descriptionControl.getParent().equals(this));
-		this.descriptionControl = descriptionControl;
-	}
-
-	/**
-	 * Sets the color of the title bar border when TITLE_BAR style is used.
-	 * 
-	 * @param color
-	 *            the title bar border color
-	 */
-	public void setTitleBarBorderColor(Color color) {
-		putTitleBarColor(COLOR_BORDER, color);
-	}
-
-	/**
-	 * Sets the color of the title bar background when TITLE_BAR style is used.
-	 * This color is used as a starting color for the vertical gradient.
-	 * 
-	 * @param color
-	 *            the title bar border background
-	 */
-	public void setTitleBarBackground(Color color) {
-		putTitleBarColor(COLOR_BG, color);
-	}
-
-	/**
-	 * Sets the color of the title bar gradient background when TITLE_BAR style
-	 * is used. This color is used at the height where title controls end
-	 * (toggle, tool bar).
-	 * 
-	 * @param color
-	 *            the title bar gradient background
-	 */
-	public void setTitleBarGradientBackground(Color color) {
-		putTitleBarColor(COLOR_GBG, color);
-	}
-
-	/**
-	 * Returns the title bar border color when TITLE_BAR style is used.
-	 * 
-	 * @return the title bar border color
-	 */
-	public Color getTitleBarBorderColor() {
-		if (titleColors == null)
-			return null;
-		return (Color) titleColors.get(COLOR_BORDER);
-	}
-
-	/**
-	 * Returns the title bar gradient background color when TITLE_BAR style is
-	 * used.
-	 * 
-	 * @return the title bar gradient background
-	 */
-	public Color getTitleBarGradientBackground() {
-		if (titleColors == null)
-			return null;
-		if ((getExpansionStyle() & SHORT_TITLE_BAR) != 0)
-			return getBackground();
-		return (Color) titleColors.get(COLOR_GBG);
-	}
-
-	/**
-	 * Returns the title bar background when TITLE_BAR style is used.
-	 * 
-	 * @return the title bar background
-	 */
-	public Color getTitleBarBackground() {
-		if (titleColors == null)
-			return null;
-		return (Color) titleColors.get(COLOR_BG);
-	}
-
-	private void putTitleBarColor(String key, Color color) {
-		if (color == null)
-			return;
-		if (titleColors == null)
-			titleColors = new Hashtable();
-		titleColors.put(key, color);
-	}
-
-	protected void onPaint(PaintEvent e) {
-		Color bg = null;
-		Color fg = null;
-		Color border = null;
-
-		GC gc = e.gc;
-		Image buffer = null;
-		Rectangle bounds = getClientArea();
-
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			buffer = new Image(getDisplay(), bounds.width, bounds.height);
-			buffer.setBackground(getBackground());
-			gc = new GC(buffer);
-		}
-		if (titleColors != null) {
-			bg = (Color) titleColors.get(COLOR_BG);
-			fg = getTitleBarForeground();
-			border = (Color) titleColors.get(COLOR_BORDER);
-		}
-		if (bg == null)
-			bg = getBackground();
-		if (fg == null)
-			fg = getForeground();
-		if (border == null)
-			border = fg;
-		int theight = 0;
-		int gradientheight = 0;
-		int tvmargin = IGAP;
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			Point tsize = null;
-			Point tcsize = null;
-			if (toggle != null)
-				tsize = toggle.getSize();
-			int twidth = bounds.width - marginWidth - marginWidth;
-			if (tsize != null)
-				twidth -= tsize.x + IGAP;
-			if (getTextClient() != null)
-				tcsize = getTextClient().getSize();
-			if (tcsize != null)
-				twidth -= tcsize.x + IGAP;
-			Point size = textLabel.getSize();
-			if (tsize != null)
-				theight += Math.max(theight, tsize.y);
-			gradientheight = theight;
-			if (tcsize != null) {
-				theight = Math.max(theight, tcsize.y);
-			}
-			theight = Math.max(theight, size.y);
-			gradientheight = Math.max(gradientheight, size.y);
-			theight += tvmargin + tvmargin;
-			gradientheight += tvmargin + tvmargin;
-		} else {
-			theight = 5;
-		}
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			if (getBackgroundImage() == null)
-				updateHeaderImage(bg, bounds, gradientheight, theight);
-			gc.setBackground(getBackground());
-			gc.fillRectangle(bounds.x, bounds.y, bounds.width, bounds.height);
-			drawBackground(gc, bounds.x, bounds.y, bounds.width, theight);
-			if (marginWidth > 0) {
-				// fix up margins
-				gc.setBackground(getBackground());
-				gc.fillRectangle(0, 0, marginWidth, theight);
-				gc.fillRectangle(bounds.x + bounds.width - marginWidth, 0,
-						marginWidth, theight);
-			}
-		} else if (isExpanded()) {
-			gc.setForeground(bg);
-			gc.setBackground(getBackground());
-			gc.fillGradientRectangle(marginWidth, marginHeight, bounds.width
-					- marginWidth - marginWidth, theight, true);
-		}
-		gc.setBackground(getBackground());
-		FormUtil.setAntialias(gc, SWT.ON);
-		// repair the upper left corner
-		gc.fillPolygon(new int[] { marginWidth, marginHeight, marginWidth,
-				marginHeight + 2, marginWidth + 2, marginHeight });
-		// repair the upper right corner
-		gc.fillPolygon(new int[] { bounds.width - marginWidth - 3,
-				marginHeight, bounds.width - marginWidth, marginHeight,
-				bounds.width - marginWidth, marginHeight + 3 });
-		gc.setForeground(border);
-		if (isExpanded() || (getExpansionStyle() & TITLE_BAR) != 0) {
-			// top left curve
-			gc.drawLine(marginWidth, marginHeight + 2, marginWidth + 2,
-					marginHeight);
-			// top edge
-			gc.drawLine(marginWidth + 2, marginHeight, bounds.width
-					- marginWidth - 3, marginHeight);
-			// top right curve
-			gc.drawLine(bounds.width - marginWidth - 3, marginHeight,
-					bounds.width - marginWidth - 1, marginHeight + 2);
-		} else {
-			// collapsed short title bar
-			// top edge
-			gc.drawLine(marginWidth, marginHeight, bounds.width - 1,
-					marginHeight);
-		}
-		if ((getExpansionStyle() & TITLE_BAR) != 0 || isExpanded()) {
-			// left vertical edge gradient
-			gc.fillGradientRectangle(marginWidth, marginHeight + 2, 1,
-					gradientheight - 2, true);
-			// right vertical edge gradient
-			gc.fillGradientRectangle(bounds.width - marginWidth - 1,
-					marginHeight + 2, 1, gradientheight - 2, true);
-		}
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			// New in 3.3 - edge treatmant
-			gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_WHITE));
-			gc.drawPolyline(new int[] { marginWidth + 1,
-					marginHeight + gradientheight - 1, marginWidth + 1,
-					marginHeight + 2, marginWidth + 2, marginHeight + 2,
-					marginWidth + 2, marginHeight + 1,
-					bounds.width - marginWidth - 3, marginHeight + 1,
-					bounds.width - marginWidth - 3, marginHeight + 2,
-					bounds.width - marginWidth - 2, marginHeight + 2,
-					bounds.width - marginWidth - 2,
-					marginHeight + gradientheight - 1 });
-		}
-		if (buffer != null) {
-			gc.dispose();
-			e.gc.drawImage(buffer, 0, 0);
-			buffer.dispose();
-		}
-	}
-
-	private void updateHeaderImage(Color bg, Rectangle bounds, int theight,
-			int realtheight) {
-		Image image = FormImages.getInstance().getGradient(getDisplay(), getBackground(), bg, realtheight, theight, marginHeight);
-		super.setBackgroundImage(image);
-	}
-
-	/**
-	 * Background image is used for the title gradient - does nothing.
-	 */
-	public final void setBackgroundImage(Image image) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java
deleted file mode 100644
index 67bcc7e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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();
-		}
-		try {
-			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);
-			
-			// reduce vertical scroll increment if necessary
-			ScrollBar vbar = getVerticalBar();
-			if (vbar != null) {
-				if (getClientArea().height - 5 < V_SCROLL_INCREMENT)
-					getVerticalBar().setIncrement(getClientArea().height - 5);
-				else 
-					getVerticalBar().setIncrement(V_SCROLL_INCREMENT);
-			}
-	
-			ignoreLayouts = false;
-			layout(flushCache);
-			ignoreLayouts = true;
-	
-			contentCache.layoutIfNecessary();
-		} finally {
-			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 a22b207..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SizeCache.java
+++ /dev/null
@@ -1,532 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import java.util.List;
-
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.ProgressBar;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Slider;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * Caches the preferred size of an SWT control
- * 
- * @since 3.0
- */
-public class SizeCache {
-    private Control control;
-
-    private Point preferredSize;
-
-    private int cachedWidthQuery;
-    private int cachedWidthResult;
-
-    private int cachedHeightQuery;
-    private int cachedHeightResult;
-    
-    private int minimumWidth;
-    private int heightAtMinimumWidth = -1;
-    private int maximumWidth;
-    
-    /**
-     * True iff we should recursively flush all children on the next layout
-     */
-    private boolean flushChildren;
-
-    /**
-     * True iff changing the height hint does not affect the preferred width and changing
-     * the width hint does not change the preferred height
-     */
-    private boolean independentDimensions = false;
-
-    /**
-     * True iff the preferred height for any hint larger than the preferred width will not
-     * change the preferred height.
-     */
-    private boolean preferredWidthOrLargerIsMinimumHeight = false;
-
-    // HACK: these values estimate how much to subtract from the width and height
-    // hints that get passed into computeSize, in order to produce a result
-    // that is exactly the desired size. To be removed once bug 46112 is fixed (note:
-    // bug 46112 is currently flagged as a duplicate, but there is still no workaround).
-    private int widthAdjustment = 0;
-
-    private int heightAdjustment = 0;
-
-    private int minimumHeight;
-
-    private int widthAtMinimumHeight = -1;
-    
-    // If the layout is dirty, this is the size of the control at the time its
-    // layout was dirtied. null if the layout is not dirty.
-    private Point dirtySize = null; 
-
-
-    // END OF HACK
-
-    public SizeCache() {
-        this(null);
-    }
-
-    /**
-     * Creates a cache for size computations on the given control
-     * 
-     * @param control the control for which sizes will be calculated, 
-     * or null to always return (0,0) 
-     */
-    public SizeCache(Control control) {
-        setControl(control);
-    }
-
-    /**
-     * Sets the control whose size is being cached. Does nothing (will not
-     * even flush the cache) if this is the same control as last time. 
-     * 
-     * @param newControl the control whose size is being cached, or null to always return (0,0)
-     */
-    public void setControl(Control newControl) {
-        if (newControl != control) {
-            control = newControl;
-            if (control == null) {
-                independentDimensions = true;
-                preferredWidthOrLargerIsMinimumHeight = false;
-                widthAdjustment = 0;
-                heightAdjustment = 0;
-            } else {
-                independentDimensions = independentLengthAndWidth(control);
-                preferredWidthOrLargerIsMinimumHeight = isPreferredWidthMaximum(control);
-                computeHintOffset(control);
-                flush();
-            }
-        }
-    }
-
-    /**
-     * Returns the control whose size is being cached
-     * 
-     * @return the control whose size is being cached, or null if this cache always returns (0,0)
-     */
-    public Control getControl() {
-        return control;
-    }
-
-    /**
-     * Flush the cache (should be called if the control's contents may have changed since the
-     * last query)
-     */
-    public void flush() {
-        flush(true);
-    }
-
-    public void flush(boolean recursive) {
-        preferredSize = null;
-        cachedWidthQuery = -1;
-        cachedWidthResult = -1;
-        cachedHeightQuery = -1;
-        cachedHeightResult = -1;
-        minimumWidth = -1;
-        maximumWidth = -1;
-        minimumHeight = -1;
-        heightAtMinimumWidth = -1;
-        widthAtMinimumHeight = -1;
-        
-        if (recursive || dirtySize != null) {
-            if (control == null || control.isDisposed()) {
-                dirtySize = new Point(0,0);
-                control = null;
-            } else {
-                dirtySize = control.getSize();
-            }
-        }
-        
-        this.flushChildren = this.flushChildren || recursive;
-    }
-
-    private Point getPreferredSize() {
-        if (preferredSize == null) {
-            preferredSize = controlComputeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-
-        return preferredSize;
-    }
-
-    /**
-     * Computes the preferred size of the control.
-     *  
-     * @param widthHint the known width of the control (pixels) or SWT.DEFAULT if unknown
-     * @param heightHint the known height of the control (pixels) or SWT.DEFAULT if unknown
-     * @return the preferred size of the control
-     */
-    public Point computeSize(int widthHint, int heightHint) {
-        if (control == null || control.isDisposed()) {
-            return new Point(0, 0);
-        }
-        
-        // If we're asking for a result smaller than the minimum width
-        int minWidth = computeMinimumWidth();
-        
-        if (widthHint != SWT.DEFAULT && widthHint + widthAdjustment < minWidth) {
-            if (heightHint == SWT.DEFAULT) {
-                return new Point(minWidth, computeHeightAtMinimumWidth());   
-            }
-            
-            widthHint = minWidth - widthAdjustment;
-        }
-        
-        // If we're asking for a result smaller than the minimum height
-        int minHeight = computeMinimumHeight();
-        
-        if (heightHint != SWT.DEFAULT && heightHint + heightAdjustment < minHeight) {
-            if (widthHint == SWT.DEFAULT) {
-                return new Point(computeWidthAtMinimumHeight(), minHeight);
-            }
-            
-            heightHint = minHeight - heightAdjustment;
-        }
-        
-        // If both dimensions were supplied in the input, compute the trivial result
-        if (widthHint != SWT.DEFAULT && heightHint != SWT.DEFAULT) {                        
-            return new Point(widthHint + widthAdjustment, heightHint + heightAdjustment);
-        }
-
-        // No hints given -- find the preferred size
-        if (widthHint == SWT.DEFAULT && heightHint == SWT.DEFAULT) {
-            return Geometry.copy(getPreferredSize());
-        }
-
-        // If the length and width are independent, compute the preferred size
-        // and adjust whatever dimension was supplied in the input
-        if (independentDimensions) {
-            Point result = Geometry.copy(getPreferredSize());
-
-            if (widthHint != SWT.DEFAULT) {
-                result.x = widthHint + widthAdjustment;
-            }
-
-            if (heightHint != SWT.DEFAULT) {
-                result.y = heightHint + heightAdjustment;
-            }
-
-            return result;
-        }
-
-        // Computing a height
-        if (heightHint == SWT.DEFAULT) {
-            // If we know the control's preferred size
-            if (preferredSize != null) {
-                // If the given width is the preferred width, then return the preferred size
-                if (widthHint + widthAdjustment == preferredSize.x) {
-                    return Geometry.copy(preferredSize);
-                }
-            }
-
-            // If we have a cached height measurement
-            if (cachedHeightQuery != -1) {
-                // If this was measured with the same width hint
-                if (cachedHeightQuery == widthHint) {
-                    return new Point(widthHint + widthAdjustment, cachedHeightResult);
-                }
-            }
-
-            // If this is a control where any hint larger than the
-            // preferred width results in the minimum height, determine if
-            // we can compute the result based on the preferred height
-            if (preferredWidthOrLargerIsMinimumHeight) {
-                // Computed the preferred size (if we don't already know it)
-                getPreferredSize();
-
-                // If the width hint is larger than the preferred width, then
-                // we can compute the result from the preferred width
-                if (widthHint + widthAdjustment >= preferredSize.x) {
-                    return new Point(widthHint + widthAdjustment, preferredSize.y);
-                }
-            }
-
-            // Else we can't find an existing size in the cache, so recompute
-            // it from scratch.
-            Point newHeight = controlComputeSize(widthHint - widthAdjustment, SWT.DEFAULT);
-
-            cachedHeightQuery = heightHint;
-            cachedHeightResult = newHeight.y;
-            
-            return newHeight;
-        }
-
-        // Computing a width
-        if (widthHint == SWT.DEFAULT) {
-            // If we know the control's preferred size
-            if (preferredSize != null) {
-                // If the given height is the preferred height, then return the preferred size
-                if (heightHint + heightAdjustment == preferredSize.y) {
-                    return Geometry.copy(preferredSize);
-                }
-            }
-
-            // If we have a cached width measurement with the same height hint
-            if (cachedWidthQuery == heightHint) {
-                return new Point(cachedWidthResult, heightHint + heightAdjustment);
-            }
-
-            Point widthResult = controlComputeSize(SWT.DEFAULT, heightHint - heightAdjustment);
-
-            cachedWidthQuery = heightHint;
-            cachedWidthResult = widthResult.x;
-            
-            return widthResult;
-        }
-
-        return controlComputeSize(widthHint, heightHint);
-    }
-    
-    /**
-     * Compute the control's size, and ensure that non-default hints are returned verbatim
-     * (this tries to compensate for SWT's hints, which aren't really the outer width of the
-     * control).
-     * 
-     * @param widthHint the horizontal hint
-     * @param heightHint the vertical hint
-     * @return the control's size
-     */
-    public Point computeAdjustedSize(int widthHint, int heightHint) {
-        int adjustedWidthHint = widthHint == SWT.DEFAULT ? SWT.DEFAULT : Math
-                .max(0, widthHint - widthAdjustment);
-        int adjustedHeightHint = heightHint == SWT.DEFAULT ? SWT.DEFAULT : Math
-                .max(0, heightHint - heightAdjustment);
-
-        Point result = computeSize(adjustedWidthHint, adjustedHeightHint);
-
-        // If the amounts we subtracted off the widthHint and heightHint didn't do the trick, then
-        // manually adjust the result to ensure that a non-default hint will return that result verbatim.
-        
-        return result;
-    }
-
-    /**
-     * Returns true if the preferred length of the given control is 
-     * independent of the width and visa-versa. If this returns true,
-     * then changing the widthHint argument to control.computeSize will
-     * never change the resulting height and changing the heightHint
-     * will never change the resulting width. Returns false if unknown.
-     * <p>
-     * This information can be used to improve caching. Incorrectly returning
-     * a value of false may decrease performance, but incorrectly returning 
-     * a value of true will generate incorrect layouts... so always return
-     * false if unsure.
-     * </p>
-     * 
-     * @param control
-     * @return
-     */
-    static boolean independentLengthAndWidth(Control control) {
-        if (control == null || control.isDisposed()) {
-            return true;
-        }
-
-        if (control instanceof Button || control instanceof ProgressBar
-                || control instanceof Sash || control instanceof Scale
-                || control instanceof Slider || control instanceof List
-                || control instanceof Combo || control instanceof Tree) {
-            return true;
-        }
-
-        if (control instanceof Label || control instanceof Text) {
-            return (control.getStyle() & SWT.WRAP) == 0;
-        }
-
-        // Unless we're certain that the control has this property, we should
-        // return false.
-
-        return false;
-    }
-    
-    /**
-     * Try to figure out how much we need to subtract from the hints that we
-     * pass into the given control's computeSize(...) method. This tries to
-     * compensate for bug 46112. To be removed once SWT provides an "official"
-     * way to compute one dimension of a control's size given the other known
-     * dimension.
-     * 
-     * @param control
-     */
-    private void computeHintOffset(Control control) {
-        if (control instanceof Scrollable) {
-            // For scrollables, subtract off the trim size
-            Scrollable scrollable = (Scrollable) control;
-            Rectangle trim = scrollable.computeTrim(0, 0, 0, 0);
-
-            widthAdjustment = trim.width;
-            heightAdjustment = trim.height;
-        } else {
-            // For non-composites, subtract off 2 * the border size
-            widthAdjustment = control.getBorderWidth() * 2;
-            heightAdjustment = widthAdjustment;
-        }
-    }
-
-    private Point controlComputeSize(int widthHint, int heightHint) {
-        Point result = control.computeSize(widthHint, heightHint, flushChildren);
-        flushChildren = false;
-        
-        return result;
-    }
-
-    /**
-     * Returns true only if the control will return a constant height for any
-     * width hint larger than the preferred width. Returns false if there is
-     * any situation in which the control does not have this property.
-     * 
-     * <p>
-     * Note: this method is only important for wrapping controls, and it can
-     * safely return false for anything else. AFAIK, all SWT controls have this
-     * property, but to be safe they will only be added to the list once the
-     * property has been confirmed.
-     * </p> 
-     * 
-     * @param control
-     * @return
-     */
-    private static boolean isPreferredWidthMaximum(Control control) {
-        return (control instanceof ToolBar
-        //|| control instanceof CoolBar
-        || control instanceof Label);
-    }
-    
-    public int computeMinimumWidth() {
-        if (minimumWidth == -1) {
-    		if (control instanceof Composite) {
-    			Layout layout = ((Composite)control).getLayout();
-    			if (layout instanceof ILayoutExtension) {
-    				minimumWidth = ((ILayoutExtension)layout).computeMinimumWidth((Composite)control, flushChildren);
-    				flushChildren = false;
-    			}
-    		}
-        }
-
-        if (minimumWidth == -1) {
-            Point minWidth = controlComputeSize(FormUtil.getWidthHint(5, control), SWT.DEFAULT); 
-            minimumWidth = minWidth.x;
-            heightAtMinimumWidth = minWidth.y;
-        }
-		
-		return minimumWidth;
-    }
-    
-    public int computeMaximumWidth() {
-        if (maximumWidth == -1) {
-    		if (control instanceof Composite) {
-    			Layout layout = ((Composite)control).getLayout();
-    			if (layout instanceof ILayoutExtension) {
-    				maximumWidth = ((ILayoutExtension)layout).computeMaximumWidth((Composite)control, flushChildren);
-    				flushChildren = false;
-    			}
-    		}
-        }
-
-        if (maximumWidth == -1) {
-            maximumWidth = getPreferredSize().x;
-        }
-		
-        return maximumWidth;
-	}
-    
-    private int computeHeightAtMinimumWidth() {
-        int minimumWidth = computeMinimumWidth();
-        
-        if (heightAtMinimumWidth == -1) {
-            heightAtMinimumWidth = controlComputeSize(minimumWidth - widthAdjustment, SWT.DEFAULT).y;
-        }
-        
-        return heightAtMinimumWidth;
-    }
-    
-    private int computeWidthAtMinimumHeight() {
-        int minimumHeight = computeMinimumHeight();
-        
-        if (widthAtMinimumHeight == -1) {
-            widthAtMinimumHeight = controlComputeSize(SWT.DEFAULT, minimumHeight - heightAdjustment).x;
-        }
-        
-        return widthAtMinimumHeight;
-    }
-
-    private int computeMinimumHeight() {
-        if (minimumHeight == -1) {
-            Point sizeAtMinHeight = controlComputeSize(SWT.DEFAULT, 0);
-            
-            minimumHeight = sizeAtMinHeight.y;
-            widthAtMinimumHeight = sizeAtMinHeight.x;
-        }
-        
-        return minimumHeight;
-    }
-    
-    public Point computeMinimumSize() {
-        return new Point(computeMinimumWidth(), computeMinimumHeight());
-    }
-
-    public void setSize(Point newSize) {
-        if (control != null) {
-            control.setSize(newSize);
-        }
-        
-        layoutIfNecessary();
-    }
-    
-    public void setSize(int width, int height) {
-        if (control != null) {
-            control.setSize(width, height);
-        }
-        
-        layoutIfNecessary();        
-    }
-    
-    public void setBounds(int x, int y, int width, int height) {
-        if (control != null) {
-            control.setBounds(x, y, width, height);
-        }
-        
-        layoutIfNecessary();        
-    }
-    
-    public void setBounds(Rectangle bounds) {
-        if (control != null) {
-            control.setBounds(bounds);
-        }
-        
-        layoutIfNecessary();
-    }
-
-    public void layoutIfNecessary() {
-        if (dirtySize != null && control != null && control instanceof Composite) {
-            if (control.getSize().equals(dirtySize)) {
-	            ((Composite)control).layout(flushChildren);
-	            flushChildren = false;
-            }
-        }
-        dirtySize = null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java
deleted file mode 100644
index adbb4a2..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import 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 convenience constructor - allows passing the horizontal alignment
-	 * style.
-	 * 
-	 * @param align
-	 *            horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB).
-	 */
-	public TableWrapData(int align) {
-		this(align, TOP, 1, 1);
-	}
-
-	/**
-	 * The convenience constructor - allows passing the alignment styles.
-	 * 
-	 * @param align
-	 *            horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB).
-	 * @param valign
-	 *            vertical alignment (TOP, MIDDLE, BOTTOM, FILL or FILL_GRAB).
-	 */
-	public TableWrapData(int align, int valign) {
-		this(align, valign, 1, 1);
-	}
-
-	/**
-	 * The convenience constructor - allows passing the alignment styles, column
-	 * and row spans.
-	 * 
-	 * @param align
-	 *            horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB).
-	 * @param valign
-	 *            vertical alignment (TOP, MIDDLE, BOTTOM, FILL or FILL_GRAB)
-	 * @param rowspan
-	 *            row span (1 or more)
-	 * @param colspan
-	 *            column span (1 or more)
-	 */
-	public TableWrapData(int align, int valign, int rowspan, int colspan) {
-		if (align != LEFT && align != CENTER && align != RIGHT && align != FILL
-				&& align != FILL_GRAB)
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "align"); //$NON-NLS-1$
-		if (valign != TOP && valign != MIDDLE && valign != BOTTOM
-				&& valign != FILL && valign != FILL_GRAB)
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "valign"); //$NON-NLS-1$
-		if (rowspan < 1)
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "rowspan"); //$NON-NLS-1$
-		if (colspan < 1)
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "colspan"); //$NON-NLS-1$
-		if (align == FILL_GRAB) {
-			this.align = FILL;
-			grabHorizontal = true;
-		} else
-			this.align = align;
-		if (valign == FILL_GRAB) {
-			this.valign = FILL;
-			grabVertical = true;
-		} else
-			this.valign = valign;
-		this.rowspan = rowspan;
-		this.colspan = colspan;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java
deleted file mode 100644
index 7416075..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java
+++ /dev/null
@@ -1,872 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import java.util.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;
-		}
-
-		/*
-		 * Updates this row span's height with the given one if it is within
-		 * this span.
-		 */
-		public void update(int currentRow, int rowHeight) {
-			TableWrapData td = (TableWrapData) child.getLayoutData();
-			// is currentRow within this span?
-			if (currentRow >= row && currentRow < row + td.rowspan) {
-				totalHeight += rowHeight;
-				if (currentRow > row)
-					totalHeight += verticalSpacing;
-			}
-		}
-
-		public int getRequiredHeightIncrease() {
-			if (totalHeight < height)
-				return height - totalHeight;
-			return 0;
-		}
-	}
-
-	/**
-	 * Implements ILayoutExtension. Should not be called directly.
-	 * 
-	 * @see ILayoutExtension
-	 */
-	public int computeMinimumWidth(Composite parent, boolean changed) {
-
-		Control[] children = parent.getChildren();
-		if (changed) {
-			cache.flush();
-		}
-
-		cache.setControls(children);
-
-		changed = true;
-		initializeIfNeeded(parent, changed);
-		if (initialLayout) {
-			changed = true;
-			initialLayout = false;
-		}
-		if (grid == null || changed) {
-			changed = true;
-			grid = new Vector();
-			createGrid(parent);
-		}
-		if (minColumnWidths == null)
-			minColumnWidths = new int[numColumns];
-		for (int i = 0; i < numColumns; i++) {
-			minColumnWidths[i] = 0;
-		}
-		return internalGetMinimumWidth(parent, changed);
-	}
-
-	/**
-	 * Implements ILayoutExtension. Should not be called directly.
-	 * 
-	 * @see ILayoutExtension
-	 */
-	public int computeMaximumWidth(Composite parent, boolean changed) {
-		Control[] children = parent.getChildren();
-		if (changed) {
-			cache.flush();
-		}
-
-		cache.setControls(children);
-
-		changed = true;
-		initializeIfNeeded(parent, changed);
-		if (initialLayout) {
-			changed = true;
-			initialLayout = false;
-		}
-		if (grid == null || changed) {
-			changed = true;
-			grid = new Vector();
-			createGrid(parent);
-		}
-		if (maxColumnWidths == null)
-			maxColumnWidths = new int[numColumns];
-		for (int i = 0; i < numColumns; i++) {
-			maxColumnWidths[i] = 0;
-		}
-		return internalGetMaximumWidth(parent, changed);
-	}
-
-	/**
-	 * @see Layout#layout(Composite, boolean)
-	 */
-	protected void layout(Composite parent, boolean changed) {
-
-		Rectangle clientArea = parent.getClientArea();
-		Control[] children = parent.getChildren();
-		if (changed) {
-			cache.flush();
-		}
-
-		if (children.length == 0)
-			return;
-
-		cache.setControls(children);
-
-		int parentWidth = clientArea.width;
-		changed = true;
-		initializeIfNeeded(parent, changed);
-		if (initialLayout) {
-			changed = true;
-			initialLayout = false;
-		}
-		if (grid == null || changed) {
-			changed = true;
-			grid = new Vector();
-			createGrid(parent);
-		}
-		resetColumnWidths();
-		int minWidth = internalGetMinimumWidth(parent, changed);
-		int maxWidth = internalGetMaximumWidth(parent, changed);
-		int tableWidth = parentWidth;
-		int[] columnWidths;
-		if (parentWidth <= minWidth) {
-			tableWidth = minWidth;
-			if (makeColumnsEqualWidth) {
-				columnWidths = new int[numColumns];
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = widestColumnWidth;
-				}
-			} else
-				columnWidths = minColumnWidths;
-		} else if (parentWidth > maxWidth) {
-			if (growingColumns.length == 0) {
-				tableWidth = maxWidth;
-				columnWidths = maxColumnWidths;
-			} else {
-				columnWidths = new int[numColumns];
-				int colSpace = tableWidth - leftMargin - rightMargin;
-				colSpace -= (numColumns - 1) * horizontalSpacing;
-				int extra = parentWidth - maxWidth;
-				int colExtra = extra / growingColumns.length;
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = maxColumnWidths[i];
-					if (isGrowingColumn(i)) {
-						columnWidths[i] += colExtra;
-					}
-				}
-			}
-		} else {
-			columnWidths = new int[numColumns];
-			if (makeColumnsEqualWidth) {
-				int colSpace = tableWidth - leftMargin - rightMargin;
-				colSpace -= (numColumns - 1) * horizontalSpacing;
-				int col = colSpace / numColumns;
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = col;
-				}
-			} else {
-				columnWidths = assignExtraSpace(tableWidth, maxWidth, minWidth);
-			}
-		}
-		int y = topMargin+clientArea.y;
-		int[] rowHeights = computeRowHeights(children, columnWidths, changed);
-		for (int i = 0; i < grid.size(); i++) {
-			int rowHeight = rowHeights[i];
-			int x = leftMargin+clientArea.x;
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData) {
-					Control child = children[td.childIndex];
-					placeControl(child, td, x, y, rowHeights, i);
-				}
-				x += columnWidths[j];
-				if (j < numColumns - 1)
-					x += horizontalSpacing;
-			}
-			y += rowHeight + verticalSpacing;
-		}
-	}
-
-	int[] computeRowHeights(Control[] children, int[] columnWidths,
-			boolean changed) {
-		int[] rowHeights = new int[grid.size()];
-		for (int i = 0; i < grid.size(); i++) {
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			rowHeights[i] = 0;
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData == false) {
-					continue;
-				}
-				Control child = children[td.childIndex];
-				int span = td.colspan;
-				int cwidth = 0;
-				for (int k = j; k < j + span; k++) {
-					cwidth += columnWidths[k];
-					if (k < j + span - 1)
-						cwidth += horizontalSpacing;
-				}
-				Point size = computeSize(td.childIndex, cwidth, td.indent, td.maxWidth, td.maxHeight);
-				td.compWidth = cwidth;
-				if (td.heightHint != SWT.DEFAULT) {
-					size = new Point(size.x, td.heightHint);
-				}
-				td.compSize = size;
-				RowSpan rowspan = (RowSpan) rowspans.get(child);
-				if (rowspan == null) {
-					rowHeights[i] = Math.max(rowHeights[i], size.y);
-				} else
-					rowspan.height = size.y;
-			}
-			updateRowSpans(i, rowHeights[i]);
-		}
-		for (Enumeration enm = rowspans.elements(); enm.hasMoreElements();) {
-			RowSpan rowspan = (RowSpan) enm.nextElement();
-			int increase = rowspan.getRequiredHeightIncrease();
-			if (increase == 0)
-				continue;
-			TableWrapData td = (TableWrapData) rowspan.child.getLayoutData();
-			int ngrowing = 0;
-			int[] affectedRows = new int[grid.size()];
-			for (int i = 0; i < growingRows.length; i++) {
-				int growingRow = growingRows[i];
-				if (growingRow >= rowspan.row
-						&& growingRow < rowspan.row + td.rowspan) {
-					affectedRows[ngrowing++] = growingRow;
-				}
-			}
-			if (ngrowing == 0) {
-				ngrowing = 1;
-				affectedRows[0] = rowspan.row + td.rowspan - 1;
-			}
-			increase += increase % ngrowing;
-			int perRowIncrease = increase / ngrowing;
-			for (int i = 0; i < ngrowing; i++) {
-				int growingRow = affectedRows[i];
-				rowHeights[growingRow] += perRowIncrease;
-			}
-		}
-		return rowHeights;
-	}
-
-	boolean isGrowingColumn(int col) {
-		if (growingColumns == null)
-			return false;
-		for (int i = 0; i < growingColumns.length; i++) {
-			if (col == growingColumns[i])
-				return true;
-		}
-		return false;
-	}
-
-	int[] assignExtraSpace(int tableWidth, int maxWidth, int minWidth) {
-		int fixedPart = leftMargin + rightMargin + (numColumns - 1)
-				* horizontalSpacing;
-		int D = maxWidth - minWidth;
-		int W = tableWidth - fixedPart - minWidth;
-		int widths[] = new int[numColumns];
-		int rem = 0;
-		for (int i = 0; i < numColumns; i++) {
-			int cmin = minColumnWidths[i];
-			int cmax = maxColumnWidths[i];
-			int d = cmax - cmin;
-			int extra = D != 0 ? (d * W) / D : 0;
-			if (i < numColumns - 1) {
-				widths[i] = cmin + extra;
-				rem += widths[i];
-			} else {
-				widths[i] = tableWidth - fixedPart - rem;
-			}
-		}
-		return widths;
-	}
-
-	Point computeSize(int childIndex, int width, int indent, int maxWidth, int maxHeight) {
-		int widthArg = width - indent;
-		SizeCache controlCache = cache.getCache(childIndex);
-		if (!isWrap(controlCache.getControl()))
-			widthArg = SWT.DEFAULT;
-		Point size = controlCache.computeSize(widthArg, SWT.DEFAULT);
-		if (maxWidth!=SWT.DEFAULT)
-			size.x = Math.min(size.x, maxWidth);
-		if (maxHeight!=SWT.DEFAULT)
-			size.y = Math.min(size.y, maxHeight);
-		size.x += indent;
-		return size;
-	}
-
-	void placeControl(Control control, TableWrapData td, int x, int y,
-			int[] rowHeights, int row) {
-		int xloc = x + td.indent;
-		int yloc = y;
-		int height = td.compSize.y;
-		int colWidth = td.compWidth - td.indent;
-		int width = td.compSize.x-td.indent;
-		width = Math.min(width, colWidth);
-		int slotHeight = rowHeights[row];
-		RowSpan rowspan = (RowSpan) rowspans.get(control);
-		if (rowspan != null) {
-			slotHeight = 0;
-			for (int i = row; i < row + td.rowspan; i++) {
-				if (i > row)
-					slotHeight += verticalSpacing;
-				slotHeight += rowHeights[i];
-			}
-		}
-		// align horizontally
-		if (td.align == TableWrapData.CENTER) {
-			xloc = x + colWidth / 2 - width / 2;
-		} else if (td.align == TableWrapData.RIGHT) {
-			xloc = x + colWidth - width;
-		} else if (td.align == TableWrapData.FILL) {
-			width = colWidth;
-		}
-		// align vertically
-		if (td.valign == TableWrapData.MIDDLE) {
-			yloc = y + slotHeight / 2 - height / 2;
-		} else if (td.valign == TableWrapData.BOTTOM) {
-			yloc = y + slotHeight - height;
-		} else if (td.valign == TableWrapData.FILL) {
-			height = slotHeight;
-		}
-		control.setBounds(xloc, yloc, width, height);
-	}
-
-	void createGrid(Composite composite) {
-		int row, column, rowFill, columnFill;
-		Control[] children;
-		TableWrapData spacerSpec;
-		Vector growingCols = new Vector();
-		Vector growingRows = new Vector();
-		rowspans = new Hashtable();
-		// 
-		children = composite.getChildren();
-		if (children.length == 0)
-			return;
-		// 
-		grid.addElement(createEmptyRow());
-		row = 0;
-		column = 0;
-		// Loop through the children and place their associated layout specs in
-		// the
-		// grid. Placement occurs left to right, top to bottom (i.e., by row).
-		for (int i = 0; i < children.length; i++) {
-			// Find the first available spot in the grid.
-			Control child = children[i];
-			TableWrapData spec = (TableWrapData) child.getLayoutData();
-			while (((TableWrapData[]) grid.elementAt(row))[column] != null) {
-				column = column + 1;
-				if (column >= numColumns) {
-					row = row + 1;
-					column = 0;
-					if (row >= grid.size()) {
-						grid.addElement(createEmptyRow());
-					}
-				}
-			}
-			// See if the place will support the widget's horizontal span. If
-			// not, go to the
-			// next row.
-			if (column + spec.colspan - 1 >= numColumns) {
-				grid.addElement(createEmptyRow());
-				row = row + 1;
-				column = 0;
-			}
-			// The vertical span for the item will be at least 1. If it is > 1,
-			// add other rows to the grid.
-			if (spec.rowspan > 1) {
-				rowspans.put(child, new RowSpan(child, column, row));
-			}
-			for (int j = 2; j <= spec.rowspan; j++) {
-				if (row + j > grid.size()) {
-					grid.addElement(createEmptyRow());
-				}
-			}
-			// Store the layout spec. Also cache the childIndex. NOTE: That we
-			// assume the children of a
-			// composite are maintained in the order in which they are created
-			// and added to the composite.
-			((TableWrapData[]) grid.elementAt(row))[column] = spec;
-			spec.childIndex = i;
-			if (spec.grabHorizontal) {
-				updateGrowingColumns(growingCols, spec, column);
-			}
-			if (spec.grabVertical) {
-				updateGrowingRows(growingRows, spec, row);
-			}
-			// Put spacers in the grid to account for the item's vertical and
-			// horizontal
-			// span.
-			rowFill = spec.rowspan - 1;
-			columnFill = spec.colspan - 1;
-			for (int r = 1; r <= rowFill; r++) {
-				for (int c = 0; c < spec.colspan; c++) {
-					spacerSpec = new TableWrapData();
-					spacerSpec.isItemData = false;
-					((TableWrapData[]) grid.elementAt(row + r))[column + c] = spacerSpec;
-				}
-			}
-			for (int c = 1; c <= columnFill; c++) {
-				for (int r = 0; r < spec.rowspan; r++) {
-					spacerSpec = new TableWrapData();
-					spacerSpec.isItemData = false;
-					((TableWrapData[]) grid.elementAt(row + r))[column + c] = spacerSpec;
-				}
-			}
-			column = column + spec.colspan - 1;
-		}
-		// Fill out empty grid cells with spacers.
-		for (int k = column + 1; k < numColumns; k++) {
-			spacerSpec = new TableWrapData();
-			spacerSpec.isItemData = false;
-			((TableWrapData[]) grid.elementAt(row))[k] = spacerSpec;
-		}
-		for (int k = row + 1; k < grid.size(); k++) {
-			spacerSpec = new TableWrapData();
-			spacerSpec.isItemData = false;
-			((TableWrapData[]) grid.elementAt(k))[column] = spacerSpec;
-		}
-		growingColumns = new int[growingCols.size()];
-		for (int i = 0; i < growingCols.size(); i++) {
-			growingColumns[i] = ((Integer) growingCols.get(i)).intValue();
-		}
-		this.growingRows = new int[growingRows.size()];
-		for (int i = 0; i < growingRows.size(); i++) {
-			this.growingRows[i] = ((Integer) growingRows.get(i)).intValue();
-		}
-	}
-
-	private void updateGrowingColumns(Vector growingColumns,
-			TableWrapData spec, int column) {
-		int affectedColumn = column + spec.colspan - 1;
-		for (int i = 0; i < growingColumns.size(); i++) {
-			Integer col = (Integer) growingColumns.get(i);
-			if (col.intValue() == affectedColumn)
-				return;
-		}
-		growingColumns.add(new Integer(affectedColumn));
-	}
-
-	private void updateGrowingRows(Vector growingRows, TableWrapData spec,
-			int row) {
-		int affectedRow = row + spec.rowspan - 1;
-		for (int i = 0; i < growingRows.size(); i++) {
-			Integer irow = (Integer) growingRows.get(i);
-			if (irow.intValue() == affectedRow)
-				return;
-		}
-		growingRows.add(new Integer(affectedRow));
-	}
-
-	private TableWrapData[] createEmptyRow() {
-		TableWrapData[] row = new TableWrapData[numColumns];
-		for (int i = 0; i < numColumns; i++)
-			row[i] = null;
-		return row;
-	}
-
-	/**
-	 * @see Layout#computeSize(Composite, int, int, boolean)
-	 */
-	protected Point computeSize(Composite parent, int wHint, int hHint,
-			boolean changed) {
-		Control[] children = parent.getChildren();
-		if (changed) {
-			cache.flush();
-		}
-		if (children.length == 0) {
-			return new Point(0, 0);
-		}
-		cache.setControls(children);
-
-		int parentWidth = wHint;
-		changed = true;
-		initializeIfNeeded(parent, changed);
-		if (initialLayout) {
-			changed = true;
-			initialLayout = false;
-		}
-		if (grid == null || changed) {
-			changed = true;
-			grid = new Vector();
-			createGrid(parent);
-		}
-		resetColumnWidths();
-		int minWidth = internalGetMinimumWidth(parent, changed);
-		int maxWidth = internalGetMaximumWidth(parent, changed);
-		
-		if (wHint == SWT.DEFAULT)
-			parentWidth = maxWidth;
-		
-		int tableWidth = parentWidth;
-		int[] columnWidths;
-		if (parentWidth <= minWidth) {
-			tableWidth = minWidth;
-			if (makeColumnsEqualWidth) {
-				columnWidths = new int[numColumns];
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = widestColumnWidth;
-				}
-			} else
-				columnWidths = minColumnWidths;
-		} else if (parentWidth >= maxWidth) {
-			if (makeColumnsEqualWidth) {
-				columnWidths = new int[numColumns];
-				int colSpace = parentWidth - leftMargin - rightMargin;
-				colSpace -= (numColumns - 1) * horizontalSpacing;
-				int col = colSpace / numColumns;
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = col;
-				}
-			} else {
-				tableWidth = maxWidth;
-				columnWidths = maxColumnWidths;
-			}
-		} else {
-			columnWidths = new int[numColumns];
-			if (makeColumnsEqualWidth) {
-				int colSpace = tableWidth - leftMargin - rightMargin;
-				colSpace -= (numColumns - 1) * horizontalSpacing;
-				int col = colSpace / numColumns;
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = col;
-				}
-			} else {
-				columnWidths = assignExtraSpace(tableWidth, maxWidth, minWidth);
-			}
-		}
-		int totalHeight = 0;
-		int innerHeight = 0;
-		// compute widths
-		for (int i = 0; i < grid.size(); i++) {
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			// assign widths, calculate heights
-			int rowHeight = 0;
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData == false) {
-					continue;
-				}
-				Control child = children[td.childIndex];
-				int span = td.colspan;
-				int cwidth = 0;
-				for (int k = j; k < j + span; k++) {
-					if (k > j)
-						cwidth += horizontalSpacing;
-					cwidth += columnWidths[k];
-				}
-				int cy = td.heightHint;
-				if (cy == SWT.DEFAULT) {
-					Point size = computeSize(td.childIndex, cwidth, td.indent, td.maxWidth, td.maxHeight);
-					cy = size.y;
-				}
-				RowSpan rowspan = (RowSpan) rowspans.get(child);
-				if (rowspan != null) {
-					// don't take the height of this child into acount
-					// because it spans multiple rows
-					rowspan.height = cy;
-				} else {
-					rowHeight = Math.max(rowHeight, cy);
-				}
-			}
-			updateRowSpans(i, rowHeight);
-			if (i > 0)
-				innerHeight += verticalSpacing;
-			innerHeight += rowHeight;
-		}
-		if (!rowspans.isEmpty())
-			innerHeight = compensateForRowSpans(innerHeight);
-		totalHeight = topMargin + innerHeight + bottomMargin;
-		return new Point(tableWidth, totalHeight);
-	}
-
-	private void updateRowSpans(int row, int rowHeight) {
-		if (rowspans == null || rowspans.size() == 0)
-			return;
-		for (Enumeration enm = rowspans.elements(); enm.hasMoreElements();) {
-			RowSpan rowspan = (RowSpan) enm.nextElement();
-			rowspan.update(row, rowHeight);
-		}
-	}
-
-	private int compensateForRowSpans(int totalHeight) {
-		for (Enumeration enm = rowspans.elements(); enm.hasMoreElements();) {
-			RowSpan rowspan = (RowSpan) enm.nextElement();
-			totalHeight += rowspan.getRequiredHeightIncrease();
-		}
-		return totalHeight;
-	}
-
-	int internalGetMinimumWidth(Composite parent, boolean changed) {
-		if (changed)
-			//calculateMinimumColumnWidths(parent, true);
-			calculateColumnWidths(parent, minColumnWidths, false, true);
-		int minimumWidth = 0;
-		widestColumnWidth = 0;
-		if (makeColumnsEqualWidth) {
-			for (int i = 0; i < numColumns; i++) {
-				widestColumnWidth = Math.max(widestColumnWidth,
-						minColumnWidths[i]);
-			}
-		}
-		for (int i = 0; i < numColumns; i++) {
-			if (i > 0)
-				minimumWidth += horizontalSpacing;
-			if (makeColumnsEqualWidth)
-				minimumWidth += widestColumnWidth;
-			else
-				minimumWidth += minColumnWidths[i];
-		}
-		// add margins
-		minimumWidth += leftMargin + rightMargin;
-		return minimumWidth;
-	}
-
-	int internalGetMaximumWidth(Composite parent, boolean changed) {
-		if (changed)
-			//calculateMaximumColumnWidths(parent, true);
-			calculateColumnWidths(parent, maxColumnWidths, true, true);
-		int maximumWidth = 0;
-		for (int i = 0; i < numColumns; i++) {
-			if (i > 0)
-				maximumWidth += horizontalSpacing;
-			maximumWidth += maxColumnWidths[i];
-		}
-		// add margins
-		maximumWidth += leftMargin + rightMargin;
-		return maximumWidth;
-	}
-
-	void resetColumnWidths() {
-		if (minColumnWidths == null)
-			minColumnWidths = new int[numColumns];
-		if (maxColumnWidths == null)
-			maxColumnWidths = new int[numColumns];
-		for (int i = 0; i < numColumns; i++) {
-			minColumnWidths[i] = 0;
-		}
-		for (int i = 0; i < numColumns; i++) {
-			maxColumnWidths[i] = 0;
-		}
-	}
-	
-	void calculateColumnWidths(Composite parent, int [] columnWidths, boolean max, boolean changed) {
-		boolean secondPassNeeded=false;
-		for (int i = 0; i < grid.size(); i++) {
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData == false)
-					continue;
-				
-				if (td.colspan>1) {
-					// we will not do controls with multiple column span
-					// here - increment and continue
-					secondPassNeeded=true;
-					j+=td.colspan-1;
-					continue;
-				}
-
-				SizeCache childCache = cache.getCache(td.childIndex);
-				// !!
-				int width = max?childCache.computeMaximumWidth():childCache.computeMinimumWidth();
-				if (td.maxWidth!=SWT.DEFAULT)
-					width = Math.min(width, td.maxWidth);
-
-				width += td.indent;
-				columnWidths[j] = Math.max(columnWidths[j], width);
-			}
-		}
-		if (!secondPassNeeded) return;
-		
-		// Second pass for controls with multi-column horizontal span
-		for (int i = 0; i < grid.size(); i++) {
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData == false || td.colspan==1)
-					continue;
-
-				SizeCache childCache = cache.getCache(td.childIndex);
-				int width = max?childCache.computeMaximumWidth():childCache.computeMinimumWidth();
-				if (td.maxWidth!=SWT.DEFAULT)
-					width = Math.min(width, td.maxWidth);
-
-				width += td.indent;
-				// check if the current width is enough to
-				// support the control; if not, add the delta to
-				// the last column or to all the growing columns, if present
-				int current = 0;
-				for (int k = j; k < j + td.colspan; k++) {
-					if (k > j)
-						current += horizontalSpacing;
-					current += columnWidths[k];
-				}
-				if (width <= current) {
-					// we are ok - nothing to do here
-				} else {
-					int ndiv = 0;
-					if (growingColumns != null) {
-						for (int k = j; k < j + td.colspan; k++) {
-							if (isGrowingColumn(k)) {
-								ndiv++;
-							}
-						}
-					}
-					if (ndiv == 0) {
-						// add the delta to the last column
-						columnWidths[j + td.colspan - 1] += width
-								- current;
-					} else {
-						// distribute the delta to the growing
-						// columns
-						int percolumn = (width - current) / ndiv;
-						if ((width - current) % ndiv > 0)
-							percolumn++;
-						for (int k = j; k < j + td.colspan; k++) {
-							if (isGrowingColumn(k))
-								columnWidths[k] += percolumn;
-						}
-					}
-				}
-			}
-		}		
-	}	
-	
-	boolean isWrap(Control control) {
-		if (control instanceof Composite
-				&& ((Composite) control).getLayout() instanceof ILayoutExtension)
-			return true;
-		return (control.getStyle() & SWT.WRAP) != 0;
-	}	
-
-	private void initializeIfNeeded(Composite parent, boolean changed) {
-		if (changed)
-			initialLayout = true;
-		if (initialLayout) {
-			initializeLayoutData(parent);
-			initialLayout = false;
-		}
-	}
-
-	void initializeLayoutData(Composite composite) {
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child.getLayoutData() == null) {
-				child.setLayoutData(new TableWrapData());
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java
deleted file mode 100644
index c90ef88..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.internal.forms.Messages;
-/**
- * A custom selectable control that can be used to control areas that can be
- * expanded or collapsed.
- * <p>
- * This is an abstract class. Subclasses are responsible for rendering the
- * control using decoration and hover decoration color. Control should be
- * rendered based on the current expansion state.
- * 
- * @since 3.0
- */
-public abstract class ToggleHyperlink extends AbstractHyperlink {
-	protected int innerWidth;
-	protected int innerHeight;
-	protected boolean hover;
-	private boolean expanded;	
-	private Color decorationColor;
-	private Color hoverColor;
-	/**
-	 * Creates a control in a provided composite.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param style
-	 *            the style
-	 */
-	public ToggleHyperlink(Composite parent, int style) {
-		super(parent, style);
-		Listener listener = new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.type) {
-					case SWT.MouseEnter:
-						hover=true;
-						redraw();
-						break;
-					case SWT.MouseExit:
-						hover = false;
-						redraw();
-						break;
-					case SWT.KeyDown:
-						onKeyDown(e);
-						break;
-				}
-			}
-		};
-		addListener(SWT.MouseEnter, listener);
-		addListener(SWT.MouseExit, listener);
-		addListener(SWT.KeyDown, listener);
-		addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				setExpanded(!isExpanded());
-			}
-		});
-		initAccessible();
-	}
-	/**
-	 * Sets the color of the decoration.
-	 * 
-	 * @param decorationColor
-	 */
-	public void setDecorationColor(Color decorationColor) {
-		this.decorationColor = decorationColor;
-	}
-	/**
-	 * Returns the color of the decoration.
-	 * 
-	 * @return decoration color
-	 */
-	public Color getDecorationColor() {
-		return decorationColor;
-	}
-	/**
-	 * Sets the hover color of decoration. Hover color will be used when mouse
-	 * enters the decoration area.
-	 * 
-	 * @param hoverColor
-	 *            the hover color to use
-	 */
-	public void setHoverDecorationColor(Color hoverColor) {
-		this.hoverColor = hoverColor;
-	}
-	/**
-	 * Returns the hover color of the decoration.
-	 * 
-	 * @return the hover color of the decoration.
-	 * @since 3.1
-	 */
-	public Color getHoverDecorationColor() {
-		return hoverColor;
-	}
-	
-	/**
-	 * Returns the hover color of the decoration.
-	 * 
-	 * @return the hover color of the decoration.
-	 * @deprecated use <code>getHoverDecorationColor</code>
-	 * @see #getHoverDecorationColor()
-	 */
-	public Color geHoverDecorationColor() {
-		return hoverColor;
-	}
-	/**
-	 * Computes the size of the control.
-	 * 
-	 * @param wHint
-	 *            width hint
-	 * @param hHint
-	 *            height hint
-	 * @param changed
-	 *            if true, flush any saved layout state
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		int width, height;
-		/*
-		if (wHint != SWT.DEFAULT)
-			width = wHint;
-		else */
-			width = innerWidth + 2 * marginWidth;
-		/*
-		if (hHint != SWT.DEFAULT)
-			height = hHint;
-		else */
-			height = innerHeight + 2 * marginHeight;
-		return new Point(width, height);
-	}
-	/**
-	 * Returns the expansion state of the toggle control. When toggle is in the
-	 * normal (downward) state, the value is <samp>true </samp>. Collapsed
-	 * control will return <samp>false </samp>.
-	 * 
-	 * @return <samp>false </samp> if collapsed, <samp>true </samp> otherwise.
-	 */
-	public boolean isExpanded() {
-		return expanded;
-	}
-	/**
-	 * Sets the expansion state of the twistie control
-	 * 
-	 * @param expanded the expansion state
-	 */
-	public void setExpanded(boolean expanded) {
-		this.expanded = expanded;
-		redraw();
-	}
-	private void initAccessible() {
-		getAccessible().addAccessibleListener(new AccessibleAdapter() {
-			public void getHelp(AccessibleEvent e) {
-				e.result = getToolTipText();
-			}
-			public void getName(AccessibleEvent e) {
-				e.result = Messages.ToggleHyperlink_accessibleName;
-			}
-			public void getDescription(AccessibleEvent e) {
-				getName(e);
-			}
-		});
-		getAccessible().addAccessibleControlListener(
-				new AccessibleControlAdapter() {
-					public void getChildAtPoint(AccessibleControlEvent e) {
-						Point testPoint = toControl(new Point(e.x, e.y));
-						if (getBounds().contains(testPoint)) {
-							e.childID = ACC.CHILDID_SELF;
-						}
-					}
-					public void getLocation(AccessibleControlEvent e) {
-						Rectangle location = getBounds();
-						Point pt = toDisplay(new Point(location.x, location.y));
-						e.x = pt.x;
-						e.y = pt.y;
-						e.width = location.width;
-						e.height = location.height;
-					}
-					public void getSelection (AccessibleControlEvent e) {
-						if (ToggleHyperlink.this.getSelection()) 
-							e.childID = ACC.CHILDID_SELF;
-					}
-					
-					public void getFocus (AccessibleControlEvent e) {
-						if (ToggleHyperlink.this.getSelection()) 
-							e.childID = ACC.CHILDID_SELF;
-					}					
-					public void getChildCount(AccessibleControlEvent e) {
-						e.detail = 0;
-					}
-					public void getRole(AccessibleControlEvent e) {
-						e.detail = ACC.ROLE_TREE;
-					}
-					public void getState(AccessibleControlEvent e) {
-						e.detail = ToggleHyperlink.this.isExpanded()
-								? ACC.STATE_EXPANDED
-								: ACC.STATE_COLLAPSED;
-					}
-					public void getValue(AccessibleControlEvent e) {
-						if (e.childID == ACC.CHILDID_SELF) {
-							String name = Messages.ToggleHyperlink_accessibleName;
-							if (getParent() instanceof ExpandableComposite) {
-								name = Messages.ToggleHyperlink_accessibleColumn+((ExpandableComposite)getParent()).getText();
-								int index = name.indexOf('&');
-								if (index != -1) {
-									name = name.substring(0, index) + name.substring(index + 1);
-								}
-							}
-							e.result = name;
-						}
-					}
-				});
-	}
-	// set bogus childIDs on link activation to ensure state is read on expand/collapse
-	void triggerAccessible() {
-		getAccessible().setFocus(getAccessibleChildID());
-	}
-	private int getAccessibleChildID() {
-		return ToggleHyperlink.this.isExpanded() ? 1 : 2;
-	}
-	
-	private void onKeyDown(Event e) {
-		if (e.keyCode==SWT.ARROW_RIGHT) {
-			// expand if collapsed
-			if (!isExpanded()) {
-				handleActivate(e);
-			}
-			e.doit=false;
-		}
-		else if (e.keyCode==SWT.ARROW_LEFT) {
-			// collapse if expanded
-			if (isExpanded()) {
-				handleActivate(e);
-			}
-			e.doit=false;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java
deleted file mode 100644
index 37952c6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-import 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 (paintFocus && getSelection()) {
-			gc.setForeground(getForeground());
-			gc.drawFocus(box.x - 1, box.y - 1, box.width + 3, box.height + 3);
-		}
-	}
-	private Rectangle getBoxBounds(GC gc) {
-		int x = 1;
-		int y = 0;
-		gc.setFont(getFont());
-		//int height = gc.getFontMetrics().getHeight();
-		//y = height / 2 - 4;
-		//y = Math.max(y, 0);
-		y = 2;
-		return new Rectangle(x, y, 8, 8);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.java
deleted file mode 100644
index ad082d4..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.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.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/IMessageToolTipManager.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/IMessageToolTipManager.java
deleted file mode 100644
index 95ab2f3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/IMessageToolTipManager.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.internal.forms;
-
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.IMessageManager;
-import org.eclipse.ui.forms.widgets.Form;
-
-/**
- * The classes that implement this interface are responsible for managing custom
- * tool tips for message-related controls in the form header. By default, a
- * simple manager is installed by the form that uses the built-in widget tool
- * tips for this purpose. Clients can replace this behaviour with richer tool
- * tips that show images, links and other content.
- * <p>
- * The message-related controls in the header are:
- * <ul>
- * <li>Image label - used to replace the form title image with the message type
- * image</li>
- * <li>Message label - renders the message as a static text.</li>
- * <li>Message hyperlink - renders the message as a hyperlink.</li>
- * </ul>
- * The message manager will be asked to create the tool tip for any and all of
- * the controls listed above in its factory method. After that, it will be asked
- * to update whenever the message information changes in the form. For this
- * reason, the manager is expected to retain references to the tool tips and
- * update them with new content when asked.
- * 
- * @see IMessageManager
- * @see Form
- *      <p>
- *      <strong>EXPERIMENTAL</strong>. This class or interface has been added
- *      as part of a work in progress. There is no guarantee that this API will
- *      work or that it will remain the same. Please do not use this API without
- *      consulting with the Platform UA team.
- *      </p>
- * @since 3.3
- */
-public interface IMessageToolTipManager {
-	/**
-	 * Creates the custom tool tip for the provided control.
-	 * 
-	 * @param control
-	 *            the control for which to create a custom tool tip
-	 * @param imageControl
-	 *            <code>true</code> if the control is used to render the title
-	 *            image, <code>false</code> otherwise.
-	 */
-	void createToolTip(Control control, boolean imageControl);
-
-	/**
-	 * Updates all the managed tool tips. The manager should get the current
-	 * message, message type and optional children messages from the form to
-	 * update the custom tool tips.
-	 */
-	void update();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/MessageManager.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/MessageManager.java
deleted file mode 100644
index d112c7c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/MessageManager.java
+++ /dev/null
@@ -1,601 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.internal.forms;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.IMessageManager;
-import org.eclipse.ui.forms.IMessagePrefixProvider;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * @see IMessageManager
- */
-
-public class MessageManager implements IMessageManager {
-	private static final DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER = new DefaultPrefixProvider();
-	private ArrayList messages = new ArrayList();
-	private Hashtable decorators = new Hashtable();
-	private boolean autoUpdate = true;
-	private ScrolledForm scrolledForm;
-	private IMessagePrefixProvider prefixProvider = DEFAULT_PREFIX_PROVIDER;
-	private int decorationPosition = SWT.LEFT | SWT.BOTTOM;
-	private static FieldDecoration standardError = FieldDecorationRegistry
-			.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
-	private static FieldDecoration standardWarning = FieldDecorationRegistry
-			.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_WARNING);
-	private static FieldDecoration standardInformation = FieldDecorationRegistry
-	.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION);
-
-	private static final String[] SINGLE_MESSAGE_SUMMARY_KEYS = {
-			Messages.MessageManager_sMessageSummary,
-			Messages.MessageManager_sMessageSummary,
-			Messages.MessageManager_sWarningSummary,
-			Messages.MessageManager_sErrorSummary };
-
-	private static final String[] MULTIPLE_MESSAGE_SUMMARY_KEYS = {
-			Messages.MessageManager_pMessageSummary,
-			Messages.MessageManager_pMessageSummary,
-			Messages.MessageManager_pWarningSummary,
-			Messages.MessageManager_pErrorSummary };
-
-	static class Message implements IMessage {
-		Control control;
-		Object data;
-		Object key;
-		String message;
-		int type;
-		String prefix;
-
-		Message(Object key, String message, int type, Object data) {
-			this.key = key;
-			this.message = message;
-			this.type = type;
-			this.data = data;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IMessage#getKey()
-		 */
-		public Object getKey() {
-			return key;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-		 */
-		public String getMessage() {
-			return message;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-		 */
-		public int getMessageType() {
-			return type;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.messages.IMessage#getControl()
-		 */
-		public Control getControl() {
-			return control;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.messages.IMessage#getData()
-		 */
-		public Object getData() {
-			return data;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.messages.IMessage#getPrefix()
-		 */
-		public String getPrefix() {
-			return prefix;
-		}
-	}
-
-	static class DefaultPrefixProvider implements IMessagePrefixProvider {
-
-		public String getPrefix(Control c) {
-			Composite parent = c.getParent();
-			Control[] siblings = parent.getChildren();
-			for (int i = 0; i < siblings.length; i++) {
-				if (siblings[i] == c) {
-					// this is us - go backward until you hit
-					// a label-like widget
-					for (int j = i - 1; j >= 0; j--) {
-						Control label = siblings[j];
-						String ltext = null;
-						if (label instanceof Label) {
-							ltext = ((Label) label).getText();
-						} else if (label instanceof Hyperlink) {
-							ltext = ((Hyperlink) label).getText();
-						} else if (label instanceof CLabel) {
-							ltext = ((CLabel) label).getText();
-						}
-						if (ltext != null) {
-							if (!ltext.endsWith(":")) //$NON-NLS-1$
-								return ltext + ": "; //$NON-NLS-1$
-							return ltext + " "; //$NON-NLS-1$
-						}
-					}
-					break;
-				}
-			}
-			return null;
-		}
-	}
-
-	class ControlDecorator {
-		private ControlDecoration decoration;
-		private ArrayList controlMessages = new ArrayList();
-		private String prefix;
-
-		ControlDecorator(Control control) {
-			this.decoration = new ControlDecoration(control, decorationPosition, scrolledForm.getBody());
-		}
-
-		public boolean isDisposed() {
-			return decoration.getControl() == null;
-		}
-
-		void updatePrefix() {
-			prefix = null;
-		}
-
-		void updatePosition() {
-			Control control = decoration.getControl();
-			decoration.dispose();
-			this.decoration = new ControlDecoration(control, decorationPosition, scrolledForm.getBody());
-			update();
-		}
-
-		String getPrefix() {
-			if (prefix == null)
-				createPrefix();
-			return prefix;
-		}
-
-		private void createPrefix() {
-			if (prefixProvider == null) {
-				prefix = ""; //$NON-NLS-1$
-				return;
-			}
-			prefix = prefixProvider.getPrefix(decoration.getControl());
-			if (prefix == null)
-				// make a prefix anyway
-				prefix = ""; //$NON-NLS-1$
-		}
-
-		void addAll(ArrayList target) {
-			target.addAll(controlMessages);
-		}
-
-		void addMessage(Object key, String text, Object data, int type) {
-			Message message = MessageManager.this.addMessage(getPrefix(), key,
-					text, data, type, controlMessages);
-			message.control = decoration.getControl();
-			if (isAutoUpdate())
-				update();
-		}
-
-		boolean removeMessage(Object key) {
-			Message message = findMessage(key, controlMessages);
-			if (message != null) {
-				controlMessages.remove(message);
-				if (isAutoUpdate())
-					update();
-			}
-			return message != null;
-		}
-
-		boolean removeMessages() {
-			if (controlMessages.isEmpty())
-				return false;
-			controlMessages.clear();
-			if (isAutoUpdate())
-				update();
-			return true;
-		}
-
-		public void update() {
-			if (controlMessages.isEmpty()) {
-				decoration.setDescriptionText(null);
-				decoration.hide();
-			} else {
-				ArrayList peers = createPeers(controlMessages);
-				int type = ((IMessage) peers.get(0)).getMessageType();
-				String description = createDetails(createPeers(peers), true);
-				if (type == IMessageProvider.ERROR)
-					decoration.setImage(standardError.getImage());
-				else if (type == IMessageProvider.WARNING)
-					decoration.setImage(standardWarning.getImage());
-				else if (type == IMessageProvider.INFORMATION)
-					decoration.setImage(standardInformation.getImage());
-				decoration.setDescriptionText(description);
-				decoration.show();
-			}
-		}
-	}
-
-	/**
-	 * Creates a new instance of the message manager that will work with the
-	 * provided form.
-	 * 
-	 * @param scrolledForm
-	 *            the form to control
-	 */
-	public MessageManager(ScrolledForm scrolledForm) {
-		this.scrolledForm = scrolledForm;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#addMessage(java.lang.Object,
-	 *      java.lang.String, int)
-	 */
-	public void addMessage(Object key, String messageText, Object data, int type) {
-		addMessage(null, key, messageText, data, type, messages);
-		if (isAutoUpdate())
-			updateForm();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#addMessage(java.lang.Object,
-	 *      java.lang.String, int, org.eclipse.swt.widgets.Control)
-	 */
-	public void addMessage(Object key, String messageText, Object data,
-			int type, Control control) {
-		ControlDecorator dec = (ControlDecorator) decorators.get(control);
-
-		if (dec == null) {
-			dec = new ControlDecorator(control);
-			decorators.put(control, dec);
-		}
-		dec.addMessage(key, messageText, data, type);
-		if (isAutoUpdate())
-			updateForm();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeMessage(java.lang.Object)
-	 */
-	public void removeMessage(Object key) {
-		Message message = findMessage(key, messages);
-		if (message != null) {
-			messages.remove(message);
-			if (isAutoUpdate())
-				updateForm();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeMessages()
-	 */
-	public void removeMessages() {
-		if (!messages.isEmpty()) {
-			messages.clear();
-			if (isAutoUpdate())
-				updateForm();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeMessage(java.lang.Object,
-	 *      org.eclipse.swt.widgets.Control)
-	 */
-	public void removeMessage(Object key, Control control) {
-		ControlDecorator dec = (ControlDecorator) decorators.get(control);
-		if (dec == null)
-			return;
-		if (dec.removeMessage(key))
-			if (isAutoUpdate())
-				updateForm();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeMessages(org.eclipse.swt.widgets.Control)
-	 */
-	public void removeMessages(Control control) {
-		ControlDecorator dec = (ControlDecorator) decorators.get(control);
-		if (dec != null) {
-			if (dec.removeMessages()) {
-				if (isAutoUpdate())
-					updateForm();
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeAllMessages()
-	 */
-	public void removeAllMessages() {
-		boolean needsUpdate = false;
-		for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) {
-			ControlDecorator control = (ControlDecorator) enm.nextElement();
-			if (control.removeMessages())
-				needsUpdate = true;
-		}
-		if (!messages.isEmpty()) {
-			messages.clear();
-			needsUpdate = true;
-		}
-		if (needsUpdate && isAutoUpdate())
-			updateForm();
-	}
-
-	/*
-	 * Adds the message if it does not already exist in the provided list.
-	 */
-
-	private Message addMessage(String prefix, Object key, String messageText,
-			Object data, int type, ArrayList list) {
-		Message message = findMessage(key, list);
-		if (message == null) {
-			message = new Message(key, messageText, type, data);
-			message.prefix = prefix;
-			list.add(message);
-		} else {
-			message.message = messageText;
-			message.type = type;
-			message.data = data;
-		}
-		return message;
-	}
-
-	/*
-	 * Finds the message with the provided key in the provided list.
-	 */
-
-	private Message findMessage(Object key, ArrayList list) {
-		for (int i = 0; i < list.size(); i++) {
-			Message message = (Message) list.get(i);
-			if (message.getKey().equals(key))
-				return message;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#update()
-	 */
-	public void update() {
-		// Update decorations
-		for (Iterator iter = decorators.values().iterator(); iter.hasNext();) {
-			ControlDecorator dec = (ControlDecorator) iter.next();
-			dec.update();
-		}
-		// Update the form
-		updateForm();
-	}
-
-	/*
-	 * Updates the container by rolling the messages up from the controls.
-	 */
-
-	private void updateForm() {
-		ArrayList mergedList = new ArrayList();
-		mergedList.addAll(messages);
-		for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) {
-			ControlDecorator dec = (ControlDecorator) enm.nextElement();
-			dec.addAll(mergedList);
-		}
-		update(mergedList);
-	}
-
-	private void update(ArrayList mergedList) {
-		pruneControlDecorators();
-		if (scrolledForm.getForm().getHead().getBounds().height == 0 || mergedList.isEmpty() || mergedList == null) {
-			scrolledForm.setMessage(null, IMessageProvider.NONE);
-			return;
-		}
-		ArrayList peers = createPeers(mergedList);
-		int maxType = ((IMessage) peers.get(0)).getMessageType();
-		String messageText;
-		IMessage[] array = (IMessage[]) peers
-				.toArray(new IMessage[peers.size()]);
-		if (peers.size() == 1 && ((Message) peers.get(0)).prefix == null) {
-			// a single message
-			IMessage message = (IMessage) peers.get(0);
-			messageText = message.getMessage();
-			scrolledForm.setMessage(messageText, maxType, array);
-		} else {
-			// show a summary message for the message
-			// and list of errors for the details
-			if (peers.size() > 1)
-				messageText = Messages.bind(
-						MULTIPLE_MESSAGE_SUMMARY_KEYS[maxType],
-						new String[] { peers.size() + "" }); //$NON-NLS-1$
-			else
-				messageText = SINGLE_MESSAGE_SUMMARY_KEYS[maxType];
-			scrolledForm.setMessage(messageText, maxType, array);
-		}
-	}
-
-	private static String getFullMessage(IMessage message) {
-		if (message.getPrefix() == null)
-			return message.getMessage();
-		return message.getPrefix() + message.getMessage();
-	}
-
-	private ArrayList createPeers(ArrayList messages) {
-		ArrayList peers = new ArrayList();
-		int maxType = 0;
-		for (int i = 0; i < messages.size(); i++) {
-			Message message = (Message) messages.get(i);
-			if (message.type > maxType) {
-				peers.clear();
-				maxType = message.type;
-			}
-			if (message.type == maxType)
-				peers.add(message);
-		}
-		return peers;
-	}
-
-	private String createDetails(ArrayList messages, boolean excludePrefix) {
-		StringWriter sw = new StringWriter();
-		PrintWriter out = new PrintWriter(sw);
-
-		for (int i = 0; i < messages.size(); i++) {
-			if (i > 0)
-				out.println();
-			IMessage m = (IMessage) messages.get(i);
-			out.print(excludePrefix ? m.getMessage() : getFullMessage(m));
-		}
-		out.flush();
-		return sw.toString();
-	}
-
-	public static String createDetails(IMessage[] messages) {
-		if (messages == null || messages.length == 0)
-			return null;
-		StringWriter sw = new StringWriter();
-		PrintWriter out = new PrintWriter(sw);
-
-		for (int i = 0; i < messages.length; i++) {
-			if (i > 0)
-				out.println();
-			out.print(getFullMessage(messages[i]));
-		}
-		out.flush();
-		return sw.toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#createSummary(org.eclipse.ui.forms.IMessage[])
-	 */
-	public String createSummary(IMessage[] messages) {
-		return createDetails(messages);
-	}
-
-	private void pruneControlDecorators() {
-		for (Iterator iter = decorators.values().iterator(); iter.hasNext();) {
-			ControlDecorator dec = (ControlDecorator) iter.next();
-			if (dec.isDisposed())
-				iter.remove();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#getMessagePrefixProvider()
-	 */
-	public IMessagePrefixProvider getMessagePrefixProvider() {
-		return prefixProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#setMessagePrefixProvider(org.eclipse.ui.forms.IMessagePrefixProvider)
-	 */
-	public void setMessagePrefixProvider(IMessagePrefixProvider provider) {
-		this.prefixProvider = provider;
-		for (Iterator iter = decorators.values().iterator(); iter.hasNext();) {
-			ControlDecorator dec = (ControlDecorator) iter.next();
-			dec.updatePrefix();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#getDecorationPosition()
-	 */
-	public int getDecorationPosition() {
-		return decorationPosition;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#setDecorationPosition(int)
-	 */
-	public void setDecorationPosition(int position) {
-		this.decorationPosition = position;
-		for (Iterator iter = decorators.values().iterator(); iter.hasNext();) {
-			ControlDecorator dec = (ControlDecorator) iter.next();
-			dec.updatePosition();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#isAutoUpdate()
-	 */
-	public boolean isAutoUpdate() {
-		return autoUpdate;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#setAutoUpdate(boolean)
-	 */
-	public void setAutoUpdate(boolean autoUpdate) {
-		boolean needsUpdate = !this.autoUpdate && autoUpdate;
-		this.autoUpdate = autoUpdate;
-		if (needsUpdate)
-			update();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java
deleted file mode 100644
index df0112b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.forms.Messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String FormDialog_defaultTitle;
-	public static String FormText_copy;
-	public static String Form_tooltip_minimize;
-	public static String Form_tooltip_restore;
-	/* 
-	 * Message manager
-	 */
-	public static String MessageManager_sMessageSummary;
-	public static String MessageManager_sWarningSummary;
-	public static String MessageManager_sErrorSummary;
-	public static String MessageManager_pMessageSummary;
-	public static String MessageManager_pWarningSummary;
-	public static String MessageManager_pErrorSummary;
-	public static String ToggleHyperlink_accessibleColumn;
-	public static String ToggleHyperlink_accessibleName;		
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.properties b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.properties
deleted file mode 100644
index 8dd12fa..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-FormText_copy=&Copy
-Form_tooltip_minimize=Minimize
-FormDialog_defaultTitle=Form Dialog
-Form_tooltip_restore=Restore
-
-#Message manager
-MessageManager_sMessageSummary = 1 message detected
-MessageManager_sWarningSummary = 1 warning detected
-MessageManager_sErrorSummary = 1 error detected
-MessageManager_pMessageSummary = {0} messages detected 
-MessageManager_pWarningSummary = {0} warnings detected
-MessageManager_pErrorSummary = {0} errors detected
-ToggleHyperlink_accessibleName=Expandable
-ToggleHyperlink_accessibleColumn=: 
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/AggregateHyperlinkSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/AggregateHyperlinkSegment.java
deleted file mode 100644
index 839e9a7..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/AggregateHyperlinkSegment.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-
-/**
- * This segment contains a collection of images and links that all belong to one
- * logical hyperlink.
- */
-public class AggregateHyperlinkSegment extends ParagraphSegment implements
-		IHyperlinkSegment {
-	private String href;
-
-	private Vector segments = new Vector();
-
-	public AggregateHyperlinkSegment() {
-	}
-
-	public void add(TextHyperlinkSegment segment) {
-		segments.add(segment);
-	}
-
-	public void add(ImageHyperlinkSegment segment) {
-		segments.add(segment);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#advanceLocator(org.eclipse.swt.graphics.GC,
-	 *      int, org.eclipse.ui.internal.forms.widgets.Locator,
-	 *      java.util.Hashtable, boolean)
-	 */
-	public boolean advanceLocator(GC gc, int wHint, Locator loc,
-			Hashtable objectTable, boolean computeHeightOnly) {
-		boolean newLine = false;
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			if (segment.advanceLocator(gc, wHint, loc, objectTable,
-					computeHeightOnly))
-				newLine = true;
-		}
-		return newLine;
-	}
-
-	/**
-	 * @return Returns the href.
-	 */
-	public String getHref() {
-		return href;
-	}
-
-	/**
-	 * @param href
-	 *            The href to set.
-	 */
-	public void setHref(String href) {
-		this.href = href;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#repaint(org.eclipse.swt.graphics.GC,
-	 *      boolean)
-	 */
-	public void paint(GC gc, boolean hover, Hashtable resourceTable,
-			boolean selected, SelectionData selData, Rectangle repaintRegion) {
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			segment.paint(gc, hover, resourceTable, selected, selData,
-					repaintRegion);
-		}
-	}
-
-	public String getText() {
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			buf.append(segment.getText());
-		}
-		return buf.toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#paintFocus(org.eclipse.swt.graphics.GC,
-	 *      org.eclipse.swt.graphics.Color, org.eclipse.swt.graphics.Color,
-	 *      boolean)
-	 */
-	public void paintFocus(GC gc, Color bg, Color fg, boolean selected,
-			Rectangle repaintRegion) {
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			segment.paintFocus(gc, bg, fg, selected, repaintRegion);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#getBounds()
-	 */
-	public Rectangle getBounds() {
-		Rectangle bounds = new Rectangle(Integer.MAX_VALUE, Integer.MAX_VALUE,
-				0, 0);
-		// TODO this is wrong
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			Rectangle sbounds = segment.getBounds();
-			bounds.x = Math.min(bounds.x, sbounds.x);
-			bounds.y = Math.min(bounds.y, sbounds.y);
-			bounds.width = Math.max(bounds.width, sbounds.width);
-			bounds.height = Math.max(bounds.height, sbounds.height);
-		}
-		return bounds;
-	}
-
-	public boolean contains(int x, int y) {
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			if (segment.contains(x, y))
-				return true;
-		}
-		return false;
-	}
-
-	public boolean intersects(Rectangle rect) {
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			if (segment.intersects(rect))
-				return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#layout(org.eclipse.swt.graphics.GC,
-	 *      int, org.eclipse.ui.internal.forms.widgets.Locator,
-	 *      java.util.Hashtable, boolean,
-	 *      org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void layout(GC gc, int width, Locator locator,
-			Hashtable resourceTable, boolean selected) {
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			segment.layout(gc, width, locator, resourceTable, selected);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#computeSelection(org.eclipse.swt.graphics.GC,
-	 *      java.util.Hashtable, boolean,
-	 *      org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void computeSelection(GC gc, Hashtable resourceTable,
-			SelectionData selData) {
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			segment.computeSelection(gc, resourceTable, selData);
-		}
-	}
-
-	public void clearCache(String fontId) {
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			segment.clearCache(fontId);
-		}
-	}
-
-	public String getTooltipText() {
-		if (segments.size() > 0)
-			return ((ParagraphSegment) segments.get(0)).getTooltipText();
-		return super.getTooltipText();
-	}
-
-	public boolean isFocusSelectable(Hashtable resourceTable) {
-		return true;
-	}
-
-	public boolean setFocus(Hashtable resourceTable, boolean direction) {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BreakSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BreakSegment.java
deleted file mode 100644
index 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 0977f95..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Mucke - fix for Bug 156456 
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.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.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.osgi.framework.Bundle;
-
-public final class BusyIndicator extends Canvas {
-
-	class BusyThread extends Thread {
-		Rectangle bounds;
-		Display display;
-		GC offScreenImageGC;
-		Image offScreenImage;
-		Image timage;
-		boolean stop;
-		
-		private BusyThread(Rectangle bounds, Display display, GC offScreenImageGC, Image offScreenImage) {
-			this.bounds = bounds;
-			this.display = display;
-			this.offScreenImageGC = offScreenImageGC;
-			this.offScreenImage = offScreenImage;
-		}
-		
-		public void run() {
-			try {
-				/*
-				 * Create an off-screen image to draw on, and fill it with
-				 * the shell background.
-				 */
-				FormUtil.setAntialias(offScreenImageGC, SWT.ON);
-				display.syncExec(new Runnable() {
-					public void run() {
-						if (!isDisposed())
-							drawBackground(offScreenImageGC, 0, 0,
-									bounds.width,
-									bounds.height);
-					}
-				});
-				if (isDisposed())
-					return;
-
-				/*
-				 * Create the first image and draw it on the off-screen
-				 * image.
-				 */
-				int imageDataIndex = 0;
-				ImageData imageData;
-				synchronized (BusyIndicator.this) {
-					timage = getImage(imageDataIndex);
-					imageData = timage.getImageData();
-					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.
-				 */
-				while (!stop && !isDisposed() && timage != null) {
-
-					/*
-					 * Fill with the background color before
-					 * drawing.
-					 */
-					final ImageData fimageData = imageData;
-					display.syncExec(new Runnable() {
-						public void run() {
-							if (!isDisposed()) {
-								drawBackground(offScreenImageGC, fimageData.x,
-										fimageData.y, fimageData.width,
-										fimageData.height);
-							}
-						}
-					});
-
-					synchronized (BusyIndicator.this) {
-						imageDataIndex = (imageDataIndex + 1) % IMAGE_COUNT;
-						timage = getImage(imageDataIndex);
-						imageData = timage.getImageData();
-						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;
-					display.syncExec(new Runnable() {
-						public void run() {
-							if (!isDisposed())
-								redraw();
-						}
-					});
-					/*
-					 * Sleep for the specified delay time 
-					 */
-					try {
-						Thread.sleep(MILLISECONDS_OF_DELAY);
-					} catch (InterruptedException e) {
-						e.printStackTrace();
-					}
-
-
-				}
-			} catch (Exception e) {
-			} finally {
-				display.syncExec(new Runnable() {
-					public void run() {
-						if (offScreenImage != null
-								&& !offScreenImage.isDisposed())
-							offScreenImage.dispose();
-						if (offScreenImageGC != null
-								&& !offScreenImageGC.isDisposed())
-							offScreenImageGC.dispose();
-					}
-				});
-				clearImages();
-			}
-			if (busyThread == null)
-				display.syncExec(new Runnable() {
-					public void run() {
-						animationImage = null;
-						if (!isDisposed())
-							redraw();
-					}
-				});
-		}
-		
-		public void setStop(boolean stop) {
-			this.stop = stop;
-		}
-	}
-
-	private static final int MARGIN = 0;	
-	private static final int IMAGE_COUNT = 8;
-	private static final int MILLISECONDS_OF_DELAY = 180; 
-	private Image[] imageCache;
-	protected Image image;
-
-	protected Image animationImage;
-
-	protected BusyThread busyThread;
-	
-	/**
-	 * BusyWidget constructor comment.
-	 * 
-	 * @param parent
-	 *            org.eclipse.swt.widgets.Composite
-	 * @param style
-	 *            int
-	 */
-	public BusyIndicator(Composite parent, int style) {
-		super(parent, style);
-
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				onPaint(event);
-			}
-		});
-	}
-
-	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 (isBusy()) {
-			Rectangle bounds = getImage(0).getBounds();
-			size.x = Math.max(size.x, bounds.width);
-			size.y = Math.max(size.y, bounds.height);
-		}
-		size.x += MARGIN + MARGIN;
-		size.y += MARGIN + MARGIN;
-		return size;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#forceFocus()
-	 */
-	public boolean forceFocus() {
-		return false;
-	}
-
-	/**
-	 * Creates a thread to animate the image.
-	 */
-	protected synchronized void createBusyThread() {
-		if (busyThread != null)
-			return;
-
-		Rectangle bounds = getImage(0).getBounds();
-		Display display = getDisplay();
-		Image offScreenImage = new Image(display, bounds.width, bounds.height);
-		GC offScreenImageGC = new GC(offScreenImage);
-		busyThread = new BusyThread(bounds, display, offScreenImageGC, offScreenImage);
-		busyThread.setPriority(Thread.NORM_PRIORITY + 2);
-		busyThread.setDaemon(true);
-		busyThread.start();
-	}
-
-	public void dispose() {
-		if (busyThread != null) {
-			busyThread.setStop(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) {
-				busyThread.setStop(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();
-		}
-	}
-	
-
-	private ImageDescriptor createImageDescriptor(String relativePath) {
-		Bundle bundle = Platform.getBundle("org.eclipse.ui.forms"); //$NON-NLS-1$
-		URL url = FileLocator.find(bundle, new Path(relativePath),null);
-		if (url == null) return null;
-		try {
-			url = FileLocator.resolve(url);
-			return ImageDescriptor.createFromURL(url);
-		} catch (IOException e) {
-			return null;
-		}
-	}
-
-	private synchronized Image getImage(int index) {
-		if (imageCache == null) {
-			imageCache = new Image[IMAGE_COUNT];
-		}
-		if (imageCache[index] == null){
-			ImageDescriptor descriptor = createImageDescriptor("$nl$/icons/progress/ani/" + (index + 1) + ".png"); //$NON-NLS-1$ //$NON-NLS-2$
-		    imageCache[index] = descriptor.createImage();
-		}
-		return imageCache[index];
-	}
-	
-	private synchronized void clearImages() {
-		if (busyThread != null)
-			return;
-		if (imageCache != null) {
-			for (int index = 0; index < IMAGE_COUNT; index++) {
-				if (imageCache[index] != null && !imageCache[index].isDisposed()) {
-					imageCache[index].dispose();
-					imageCache[index] = null;
-				}
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ControlSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ControlSegment.java
deleted file mode 100644
index 9afc645..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ControlSegment.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-public class ControlSegment extends ObjectSegment implements IFocusSelectable {
-	private boolean fill;
-	private int width = SWT.DEFAULT;
-	private int height = SWT.DEFAULT;
-	
-	public ControlSegment() {
-	}
-	
-	public void setFill(boolean fill) {
-		this.fill = fill;
-	}
-	
-	public void setWidth(int width) {
-		this.width = width;
-	}
-	
-	public void setHeight(int height) {
-		this.height = height;
-	}
-	
-	public Control getControl(Hashtable resourceTable) {
-		Object obj = resourceTable.get(getObjectId());
-		if (obj instanceof Control) {
-			Control c = (Control)obj;
-			if (!c.isDisposed())
-				return c;
-		}
-		return null;
-	}
-
-	protected Point getObjectSize(Hashtable resourceTable, int wHint) {
-		Control control = getControl(resourceTable);
-		if (control==null)
-			return new Point(0,0);
-		int realWhint = FormUtil.getWidthHint(wHint, control);
-		Point size = control.computeSize(realWhint, SWT.DEFAULT);
-		if (realWhint!=SWT.DEFAULT && fill)
-			size.x = Math.max(size.x, realWhint);
-		if (width !=SWT.DEFAULT)
-			size.x = width;
-		if (height != SWT.DEFAULT)
-			size.y = height;
-		return size;
-	}
-	
-	public void layout(GC gc, int width, Locator loc, Hashtable resourceTable,
-			boolean selected) {
-		super.layout(gc, width, loc, resourceTable, selected);
-		Control control = getControl(resourceTable);
-		if (control!=null)
-			control.setBounds(getBounds());
-	}
-
-	public boolean setFocus(Hashtable resourceTable, boolean next) {
-		Control c = getControl(resourceTable);
-		if (c!=null) {
-			return setFocus(c, next);
-		}
-		return false;
-	}
-	
-	private boolean setFocus(Control c, boolean direction) {
-		if (c instanceof Composite) {
-			Composite comp = (Composite)c;
-			Control [] tabList = comp.getTabList();
-			if (direction) {
-				for (int i=0; i<tabList.length; i++) {
-					if (setFocus(tabList[i], direction))
-						return true;
-				}
-			}
-			else {
-				for (int i=tabList.length-1; i>=0; i--) {
-					if (setFocus(tabList[i], direction))
-						return true;
-				}
-			}
-			if (!(c instanceof Canvas))
-				return false;
-		}
-		return c.setFocus();
-	}
-
-	public boolean isFocusSelectable(Hashtable resourceTable) {
-		Control c = getControl(resourceTable);
-		if (c!=null)
-			return true;
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormFonts.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormFonts.java
deleted file mode 100644
index 5e02526..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormFonts.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.HashMap;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Display;
-
-public class FormFonts {
-	private static FormFonts instance;
-
-	public static FormFonts getInstance() {
-		if (instance == null)
-			instance = new FormFonts();
-		return instance;
-	}
-	
-	private HashMap fonts;
-	private HashMap ids;
-	
-	private FormFonts() {
-	}
-	
-	private class FontIdentifier {
-		private Display fDisplay;
-		private Font fFont;
-		
-		FontIdentifier (Display display, Font font) {
-			fDisplay = display;
-			fFont = font;
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof FontIdentifier) {
-				FontIdentifier id = (FontIdentifier)obj;
-				return id.fDisplay.equals(fDisplay) && id.fFont.equals(fFont);
-			}
-			return false;
-		}
-		
-		public int hashCode() {
-			return fDisplay.hashCode() * 7 + fFont.hashCode();
-		}
-	}
-	
-	private class FontReference {
-		private Font fFont;
-		private int fCount;
-		
-		public FontReference(Font font) {
-			fFont = font;
-			fCount = 1;
-		}
-
-		public Font getFont() {
-			return fFont;
-		}
-		// returns a boolean indicating if all clients of this font are finished
-		// a true result indicates the underlying image should be disposed
-		public boolean decCount() {
-			return --fCount == 0;
-		}
-		public void incCount() {
-			fCount++;
-		}
-	}
-	
-	public Font getBoldFont(Display display, Font font) {
-		checkHashMaps();
-		FontIdentifier fid = new FontIdentifier(display, font);
-		FontReference result = (FontReference) fonts.get(fid);
-		if (result != null && !result.getFont().isDisposed()) {
-			result.incCount();
-			return result.getFont();
-		}
-		Font boldFont = createBoldFont(display, font);
-		fonts.put(fid, new FontReference(boldFont));
-		ids.put(boldFont, fid);
-		return boldFont;
-	}
-	
-	public boolean markFinished(Font boldFont) {
-		checkHashMaps();
-		FontIdentifier id = (FontIdentifier)ids.get(boldFont);
-		if (id != null) {
-			FontReference ref = (FontReference) fonts.get(id);
-			if (ref != null) {
-				if (ref.decCount()) {
-					fonts.remove(id);
-					ids.remove(ref.getFont());
-					ref.getFont().dispose();
-					validateHashMaps();
-				}
-				return true;
-			}
-		}
-		// if the image was not found, dispose of it for the caller
-		boldFont.dispose();
-		return false;
-	}
-
-	private 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);
-	}
-
-	private void checkHashMaps() {
-		if (fonts == null)
-			fonts = new HashMap();
-		if (ids == null)
-			ids = new HashMap();
-	}
-	
-	private void validateHashMaps() {
-		if (fonts.size() == 0)
-			fonts = null;
-		if (ids.size() == 0)
-			ids = null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java
deleted file mode 100644
index 4885a7e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java
+++ /dev/null
@@ -1,1014 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-import org.eclipse.ui.forms.widgets.SizeCache;
-import org.eclipse.ui.internal.forms.IMessageToolTipManager;
-import org.eclipse.ui.internal.forms.MessageManager;
-
-/**
- * Form header moved out of the form class.
- */
-public class FormHeading extends Canvas {
-	private static final int TITLE_HMARGIN = 1;
-	private static final int SPACING = 5;
-	private static final int VSPACING = 5;
-	private static final int HMARGIN = 6;
-	private static final int VMARGIN = 1;
-	private static final int CLIENT_MARGIN = 1;
-
-	private static final int SEPARATOR = 1 << 1;
-	private static final int BOTTOM_TOOLBAR = 1 << 2;
-	private static final int BACKGROUND_IMAGE_TILED = 1 << 3;
-	private static final int SEPARATOR_HEIGHT = 2;
-	private static final int MESSAGE_AREA_LIMIT = 50;
-	static IMessage[] NULL_MESSAGE_ARRAY = new IMessage[] {};
-
-	public static final String COLOR_BASE_BG = "baseBg"; //$NON-NLS-1$
-
-	private Image backgroundImage;
-
-	private Image gradientImage;
-
-	Hashtable colors = new Hashtable();
-
-	private int flags;
-
-	private GradientInfo gradientInfo;
-
-	private ToolBarManager toolBarManager;
-
-	private SizeCache toolbarCache = new SizeCache();
-
-	private SizeCache clientCache = new SizeCache();
-
-	private SizeCache messageCache = new SizeCache();
-
-	private TitleRegion titleRegion;
-
-	private MessageRegion messageRegion;
-
-	private IMessageToolTipManager messageToolTipManager = new DefaultMessageToolTipManager();
-
-	private Control headClient;
-
-	private class DefaultMessageToolTipManager implements
-			IMessageToolTipManager {
-		public void createToolTip(Control control, boolean imageLabel) {
-		}
-
-		public void update() {
-			String details = getMessageType() == 0 ? null : MessageManager
-					.createDetails(getChildrenMessages());
-			if (messageRegion != null)
-				messageRegion.updateToolTip(details);
-			if (getMessageType() > 0
-					&& (details == null || details.length() == 0))
-				details = getMessage();
-			titleRegion.updateToolTip(details);
-		}
-	}
-
-	private class GradientInfo {
-		Color[] gradientColors;
-
-		int[] percents;
-
-		boolean vertical;
-	}
-
-	private class FormHeadingLayout extends Layout implements ILayoutExtension {
-		public int computeMinimumWidth(Composite composite, boolean flushCache) {
-			return computeSize(composite, 5, SWT.DEFAULT, flushCache).x;
-		}
-
-		public int computeMaximumWidth(Composite composite, boolean flushCache) {
-			return computeSize(composite, SWT.DEFAULT, SWT.DEFAULT, flushCache).x;
-		}
-
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			return layout(composite, false, 0, 0, wHint, hHint, flushCache);
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			Rectangle rect = composite.getClientArea();
-			layout(composite, true, rect.x, rect.y, rect.width, rect.height,
-					flushCache);
-		}
-
-		private Point layout(Composite composite, boolean move, int x, int y,
-				int width, int height, boolean flushCache) {
-			Point tsize = null;
-			Point msize = null;
-			Point tbsize = null;
-			Point clsize = null;
-
-			if (flushCache) {
-				clientCache.flush();
-				messageCache.flush();
-				toolbarCache.flush();
-			}
-			if (hasToolBar()) {
-				ToolBar tb = toolBarManager.getControl();
-				toolbarCache.setControl(tb);
-				tbsize = toolbarCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			if (headClient != null) {
-				clientCache.setControl(headClient);
-				int cwhint = width;
-				if (cwhint != SWT.DEFAULT) {
-					cwhint -= HMARGIN * 2;
-					if (tbsize != null && getToolBarAlignment() == SWT.BOTTOM)
-						cwhint -= tbsize.x + SPACING;
-				}
-				clsize = clientCache.computeSize(cwhint, SWT.DEFAULT);
-			}
-			int totalFlexWidth = width;
-			int flexWidth = totalFlexWidth;
-			if (totalFlexWidth != SWT.DEFAULT) {
-				totalFlexWidth -= TITLE_HMARGIN * 2;
-				// complete right margin
-				if (hasToolBar() && getToolBarAlignment() == SWT.TOP
-						|| hasMessageRegion())
-					totalFlexWidth -= SPACING;
-				// subtract tool bar
-				if (hasToolBar() && getToolBarAlignment() == SWT.TOP)
-					totalFlexWidth -= tbsize.x + SPACING;
-				flexWidth = totalFlexWidth;
-				if (hasMessageRegion()) {
-					// remove message region spacing and divide by 2
-					flexWidth -= SPACING;
-					// flexWidth /= 2;
-				}
-			}
-			/*
-			 * // compute text and message sizes tsize =
-			 * titleRegion.computeSize(flexWidth, SWT.DEFAULT); if (flexWidth !=
-			 * SWT.DEFAULT && tsize.x < flexWidth) flexWidth += flexWidth -
-			 * tsize.x;
-			 * 
-			 * if (hasMessageRegion()) {
-			 * messageCache.setControl(messageRegion.getMessageControl()); msize =
-			 * messageCache.computeSize(flexWidth, SWT.DEFAULT); int maxWidth =
-			 * messageCache.computeSize(SWT.DEFAULT, SWT.DEFAULT).x; if
-			 * (maxWidth < msize.x) { msize.x = maxWidth; // recompute title
-			 * with the reclaimed width int tflexWidth = totalFlexWidth -
-			 * SPACING - msize.x; tsize = titleRegion.computeSize(tflexWidth,
-			 * SWT.DEFAULT); } }
-			 */
-			if (!hasMessageRegion()) {
-				tsize = titleRegion.computeSize(flexWidth, SWT.DEFAULT);
-			} else {
-				// Total flexible area in the first row is flexWidth.
-				// Try natural widths of title and
-				Point tsizeNatural = titleRegion.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				messageCache.setControl(messageRegion.getMessageControl());
-				Point msizeNatural = messageCache.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				// try to fit all
-				tsize = tsizeNatural;
-				msize = msizeNatural;
-				if (flexWidth != SWT.DEFAULT) {
-					int needed = tsizeNatural.x + msizeNatural.x;
-					if (needed > flexWidth) {
-						// too big - try to limit the message
-						int mwidth = flexWidth - tsizeNatural.x;
-						if (mwidth >= MESSAGE_AREA_LIMIT) {
-							msize.x = mwidth;
-						} else {
-							// message is squeezed to the limit
-							int flex = flexWidth - MESSAGE_AREA_LIMIT;
-							tsize = titleRegion.computeSize(flex, SWT.DEFAULT);
-							msize.x = MESSAGE_AREA_LIMIT;
-						}
-					}
-				}
-			}
-
-			Point size = new Point(width, height);
-			if (!move) {
-				// compute sizes
-				int width1 = 2 * TITLE_HMARGIN;
-				width1 += tsize.x;
-				if (msize != null)
-					width1 += SPACING + msize.x;
-				if (tbsize != null && getToolBarAlignment() == SWT.TOP)
-					width1 += SPACING + tbsize.x;
-				if (msize != null
-						|| (tbsize != null && getToolBarAlignment() == SWT.TOP))
-					width1 += SPACING;
-				size.x = width1;
-				if (clsize != null) {
-					int width2 = clsize.x;
-					if (tbsize != null && getToolBarAlignment() == SWT.BOTTOM)
-						width2 += SPACING + tbsize.x;
-					width2 += 2 * HMARGIN;
-					size.x = Math.max(width1, width2);
-				}
-				// height, first row
-				size.y = tsize.y;
-				if (msize != null)
-					size.y = Math.max(msize.y, size.y);
-				if (tbsize != null && getToolBarAlignment() == SWT.TOP)
-					size.y = Math.max(tbsize.y, size.y);
-				if (size.y > 0)
-					size.y += VMARGIN * 2;
-				// add second row
-				int height2 = 0;
-				if (tbsize != null && getToolBarAlignment() == SWT.BOTTOM)
-					height2 = tbsize.y;
-				if (clsize != null)
-					height2 = Math.max(height2, clsize.y);
-				if (height2 > 0)
-					size.y += VSPACING + height2 + CLIENT_MARGIN;
-				// add separator
-				if (size.y > 0 && isSeparatorVisible())
-					size.y += SEPARATOR_HEIGHT;
-			} else {
-				// position controls
-				int xloc = x;
-				int yloc = y + VMARGIN;
-				int row1Height = tsize.y;
-				if (hasMessageRegion())
-					row1Height = Math.max(row1Height, msize.y);
-				if (hasToolBar() && getToolBarAlignment() == SWT.TOP)
-					row1Height = Math.max(row1Height, tbsize.y);
-				titleRegion.setBounds(xloc,
-				// yloc + row1Height / 2 - tsize.y / 2,
-						yloc, tsize.x, tsize.y);
-				xloc += tsize.x;
-
-				if (hasMessageRegion()) {
-					xloc += SPACING;
-					int messageOffset = 0;
-					if (tsize.y > 0) {
-						// space between title area and title text
-						int titleLeadingSpace = (tsize.y - titleRegion.getFontHeight()) / 2;
-						// space between message control and message text
-						int messageLeadingSpace = (msize.y - messageRegion.getFontHeight()) / 2;
-						// how much to offset the message so baselines align
-						messageOffset = (titleLeadingSpace + titleRegion.getFontBaselineHeight())
-							- (messageLeadingSpace + messageRegion.getFontBaselineHeight());
-					}
-
-					messageRegion
-							.getMessageControl()
-							.setBounds(
-									xloc,
-									tsize.y > 0 ? (yloc + messageOffset)
-											: (yloc + row1Height / 2 - msize.y / 2),
-									msize.x, msize.y);
-					xloc += msize.x;
-				}
-				if (toolBarManager != null)
-					toolBarManager.getControl().setVisible(
-							!toolBarManager.isEmpty());
-				if (tbsize != null && getToolBarAlignment() == SWT.TOP) {
-					ToolBar tbar = toolBarManager.getControl();
-					tbar.setBounds(x + width - 1 - tbsize.x - HMARGIN, yloc
-							+ row1Height - 1 - tbsize.y, tbsize.x, tbsize.y);
-				}
-				// second row
-				xloc = HMARGIN;
-				yloc += row1Height + VSPACING;
-				int tw = 0;
-
-				if (tbsize != null && getToolBarAlignment() == SWT.BOTTOM) {
-					ToolBar tbar = toolBarManager.getControl();
-					tbar.setBounds(x + width - 1 - tbsize.x - HMARGIN, yloc,
-							tbsize.x, tbsize.y);
-					tw = tbsize.x + SPACING;
-				}
-				if (headClient != null) {
-					int carea = width - HMARGIN * 2 - tw;
-					headClient.setBounds(xloc, yloc, carea, clsize.y);
-				}
-			}
-			return size;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#forceFocus()
-	 */
-	public boolean forceFocus() {
-		return false;
-	}
-
-	private boolean hasToolBar() {
-		return toolBarManager != null && !toolBarManager.isEmpty();
-	}
-
-	private boolean hasMessageRegion() {
-		return messageRegion != null && !messageRegion.isEmpty();
-	}
-
-	private class MessageRegion {
-		private String message;
-		private int messageType;
-		private CLabel messageLabel;
-		private IMessage[] messages;
-		private Hyperlink messageHyperlink;
-		private ListenerList listeners;
-		private Color fg;
-		private int fontHeight = -1;
-		private int fontBaselineHeight = -1;
-
-		public MessageRegion() {
-		}
-
-		public boolean isDisposed() {
-			Control c = getMessageControl();
-			return c != null && c.isDisposed();
-		}
-
-		public boolean isEmpty() {
-			Control c = getMessageControl();
-			if (c == null)
-				return true;
-			return !c.getVisible();
-		}
-
-		public int getFontHeight() {
-			if (fontHeight == -1) {
-				Control c = getMessageControl();
-				if (c == null)
-					return 0;
-				GC gc = new GC(c.getDisplay());
-				gc.setFont(c.getFont());
-				fontHeight = gc.getFontMetrics().getHeight();
-				gc.dispose();
-			}
-			return fontHeight;
-		}
-
-		public int getFontBaselineHeight() {
-			if (fontBaselineHeight == -1) {
-				Control c = getMessageControl();
-				if (c == null)
-					return 0;
-				GC gc = new GC(c.getDisplay());
-				gc.setFont(c.getFont());
-				FontMetrics fm = gc.getFontMetrics();
-				fontBaselineHeight = fm.getHeight() - fm.getDescent();
-				gc.dispose();
-			}
-			return fontBaselineHeight;
-		}
-
-		public void showMessage(String newMessage, int newType,
-				IMessage[] messages) {
-			Control oldControl = getMessageControl();
-			int oldType = messageType;
-			this.message = newMessage;
-			this.messageType = newType;
-			this.messages = messages;
-			if (newMessage == null) {
-				// clearing of the message
-				if (oldControl != null && oldControl.getVisible())
-					oldControl.setVisible(false);
-				return;
-			}
-			ensureControlExists();
-			if (needHyperlink()) {
-				messageHyperlink.setText(newMessage);
-				messageHyperlink.setHref(messages);
-			} else {
-				messageLabel.setText(newMessage);
-			}
-			if (oldType != newType)
-				updateForeground();
-		}
-
-		public void updateToolTip(String toolTip) {
-			Control control = getMessageControl();
-			if (control != null)
-				control.setToolTipText(toolTip);
-		}
-
-		public String getMessage() {
-			return message;
-		}
-
-		public int getMessageType() {
-			return messageType;
-		}
-
-		public IMessage[] getChildrenMessages() {
-			return messages;
-		}
-
-		public String getDetailedMessage() {
-			Control c = getMessageControl();
-			if (c != null)
-				return c.getToolTipText();
-			return null;
-		}
-
-		public Control getMessageControl() {
-			if (needHyperlink() && messageHyperlink != null)
-				return messageHyperlink;
-			return messageLabel;
-		}
-
-		public Image getMessageImage() {
-			switch (messageType) {
-			case IMessageProvider.INFORMATION:
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_INFO);
-			case IMessageProvider.WARNING:
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_WARNING);
-			case IMessageProvider.ERROR:
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_ERROR);
-			default:
-				return null;
-			}
-		}
-
-		public void addMessageHyperlinkListener(IHyperlinkListener listener) {
-			if (listeners == null)
-				listeners = new ListenerList();
-			listeners.add(listener);
-			ensureControlExists();
-			if (messageHyperlink != null)
-				messageHyperlink.addHyperlinkListener(listener);
-			if (listeners.size() == 1)
-				updateForeground();
-		}
-
-		private void removeMessageHyperlinkListener(IHyperlinkListener listener) {
-			if (listeners != null) {
-				listeners.remove(listener);
-				if (messageHyperlink != null)
-					messageHyperlink.removeHyperlinkListener(listener);
-				if (listeners.isEmpty())
-					listeners = null;
-				ensureControlExists();
-				if (listeners == null && !isDisposed())
-					updateForeground();
-			}
-		}
-
-		private void ensureControlExists() {
-			if (needHyperlink()) {
-				if (messageLabel != null)
-					messageLabel.setVisible(false);
-				if (messageHyperlink == null) {
-					messageHyperlink = new Hyperlink(FormHeading.this, SWT.NULL);
-					messageHyperlink.setUnderlined(true);
-					messageHyperlink.setText(message);
-					messageHyperlink.setHref(messages);
-					Object[] llist = listeners.getListeners();
-					for (int i = 0; i < llist.length; i++)
-						messageHyperlink
-								.addHyperlinkListener((IHyperlinkListener) llist[i]);
-					if (messageToolTipManager != null)
-						messageToolTipManager.createToolTip(messageHyperlink, false);
-				} else if (!messageHyperlink.getVisible()) {
-					messageHyperlink.setText(message);
-					messageHyperlink.setHref(messages);
-					messageHyperlink.setVisible(true);
-				}
-			} else {
-				// need a label
-				if (messageHyperlink != null)
-					messageHyperlink.setVisible(false);
-				if (messageLabel == null) {
-					messageLabel = new CLabel(FormHeading.this, SWT.NULL);
-					messageLabel.setText(message);
-					if (messageToolTipManager != null)
-						messageToolTipManager.createToolTip(messageLabel, false);
-				} else if (!messageLabel.getVisible()) {
-					messageLabel.setText(message);
-					messageLabel.setVisible(true);
-				}
-			}
-			layout(true);
-		}
-
-		private boolean needHyperlink() {
-			return messageType > 0 && listeners != null;
-		}
-
-		public void setBackground(Color bg) {
-			if (messageHyperlink != null)
-				messageHyperlink.setBackground(bg);
-			if (messageLabel != null)
-				messageLabel.setBackground(bg);
-		}
-
-		public void setForeground(Color fg) {
-			this.fg = fg;
-		}
-
-		private void updateForeground() {
-			Color theFg;
-
-			switch (messageType) {
-			case IMessageProvider.ERROR:
-				theFg = getDisplay().getSystemColor(SWT.COLOR_RED);
-				break;
-			case IMessageProvider.WARNING:
-				theFg = getDisplay().getSystemColor(SWT.COLOR_DARK_YELLOW);
-				break;
-			default:
-				theFg = fg;
-			}
-			getMessageControl().setForeground(theFg);
-		}
-	}
-
-	/**
-	 * Creates the form content control as a child of the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 */
-	public FormHeading(Composite parent, int style) {
-		super(parent, style);
-		setBackgroundMode(SWT.INHERIT_DEFAULT);
-		addListener(SWT.Paint, new Listener() {
-			public void handleEvent(Event e) {
-				onPaint(e.gc);
-			}
-		});
-		addListener(SWT.Dispose, new Listener() {
-			public void handleEvent(Event e) {
-				if (gradientImage != null) {
-					FormImages.getInstance().markFinished(gradientImage);
-					gradientImage = null;
-				}
-			}
-		});
-		addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event e) {
-				if (gradientInfo != null
-						|| (backgroundImage != null && !isBackgroundImageTiled()))
-					updateGradientImage();
-			}
-		});
-		addMouseMoveListener(new MouseMoveListener() {
-			public void mouseMove(MouseEvent e) {
-				updateTitleRegionHoverState(e);
-			}
-		});
-		addMouseTrackListener(new MouseTrackListener() {
-			public void mouseEnter(MouseEvent e) {
-				updateTitleRegionHoverState(e);
-			}
-
-			public void mouseExit(MouseEvent e) {
-				titleRegion.setHoverState(TitleRegion.STATE_NORMAL);
-			}
-
-			public void mouseHover(MouseEvent e) {
-			}
-		});
-		super.setLayout(new FormHeadingLayout());
-		titleRegion = new TitleRegion(this);
-	}
-
-	/**
-	 * Fully delegates the size computation to the internal layout manager.
-	 */
-	public final Point computeSize(int wHint, int hHint, boolean changed) {
-		return ((FormHeadingLayout) getLayout()).computeSize(this, wHint,
-				hHint, changed);
-	}
-
-	/**
-	 * Prevents from changing the custom control layout.
-	 */
-	public final void setLayout(Layout layout) {
-	}
-
-	/**
-	 * Returns the title text that will be rendered at the top of the form.
-	 * 
-	 * @return the title text
-	 */
-	public String getText() {
-		return titleRegion.getText();
-	}
-
-	/**
-	 * Returns the title image that will be rendered to the left of the title.
-	 * 
-	 * @return the title image
-	 * @since 3.2
-	 */
-	public Image getImage() {
-		return titleRegion.getImage();
-	}
-
-	/**
-	 * Sets the background color of the header.
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		internalSetBackground(bg);
-	}
-
-	private void internalSetBackground(Color bg) {
-		titleRegion.setBackground(bg);
-		if (messageRegion != null)
-			messageRegion.setBackground(bg);
-		if (toolBarManager != null)
-			toolBarManager.getControl().setBackground(bg);
-		putColor(COLOR_BASE_BG, bg);
-	}
-
-	/**
-	 * Sets the foreground color of the header.
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		titleRegion.setForeground(fg);
-		if (messageRegion != null)
-			messageRegion.setForeground(fg);
-	}
-
-	/**
-	 * Sets the text to be rendered at the top of the form above the body as a
-	 * title.
-	 * 
-	 * @param text
-	 *            the title text
-	 */
-	public void setText(String text) {
-		titleRegion.setText(text);
-	}
-
-	public void setFont(Font font) {
-		super.setFont(font);
-		titleRegion.setFont(font);
-	}
-
-	/**
-	 * Sets the image to be rendered to the left of the title.
-	 * 
-	 * @param image
-	 *            the title image or <code>null</code> to show no image.
-	 * @since 3.2
-	 */
-	public void setImage(Image image) {
-		titleRegion.setImage(image);
-		if (messageRegion != null)
-			titleRegion.updateImage(messageRegion.getMessageImage(), true);
-		else
-			titleRegion.updateImage(null, true);
-	}
-
-	public void setTextBackground(Color[] gradientColors, int[] percents,
-			boolean vertical) {
-		if (gradientColors != null) {
-			gradientInfo = new GradientInfo();
-			gradientInfo.gradientColors = gradientColors;
-			gradientInfo.percents = percents;
-			gradientInfo.vertical = vertical;
-			setBackground(null);
-			updateGradientImage();
-		} else {
-			// reset
-			gradientInfo = null;
-			if (gradientImage != null) {
-				FormImages.getInstance().markFinished(gradientImage);
-				gradientImage = null;
-				setBackgroundImage(null);
-			}
-		}
-	}
-
-	public void setHeadingBackgroundImage(Image image) {
-		this.backgroundImage = image;
-		if (image != null)
-			setBackground(null);
-		if (isBackgroundImageTiled()) {
-			setBackgroundImage(image);
-		} else
-			updateGradientImage();
-	}
-
-	public Image getHeadingBackgroundImage() {
-		return backgroundImage;
-	}
-
-	public void setBackgroundImageTiled(boolean tiled) {
-		if (tiled)
-			flags |= BACKGROUND_IMAGE_TILED;
-		else
-			flags &= ~BACKGROUND_IMAGE_TILED;
-		setHeadingBackgroundImage(this.backgroundImage);
-	}
-
-	public boolean isBackgroundImageTiled() {
-		return (flags & BACKGROUND_IMAGE_TILED) != 0;
-	}
-
-	public void setBackgroundImage(Image image) {
-		super.setBackgroundImage(image);
-		if (image != null) {
-			internalSetBackground(null);
-		}
-	}
-
-	/**
-	 * Returns the tool bar manager that is used to manage tool items in the
-	 * form's title area.
-	 * 
-	 * @return form tool bar manager
-	 */
-	public IToolBarManager getToolBarManager() {
-		if (toolBarManager == null) {
-			toolBarManager = new ToolBarManager(SWT.FLAT);
-			ToolBar toolbar = toolBarManager.createControl(this);
-			toolbar.setBackground(getBackground());
-			toolbar.setForeground(getForeground());
-			toolbar.setCursor(FormsResources.getHandCursor());
-			addDisposeListener(new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (toolBarManager != null) {
-						toolBarManager.dispose();
-						toolBarManager = null;
-					}
-				}
-			});
-		}
-		return toolBarManager;
-	}
-
-	/**
-	 * Returns the menu manager that is used to manage tool items in the form's
-	 * title area.
-	 * 
-	 * @return form drop-down menu manager
-	 * @since 3.3
-	 */
-	public IMenuManager getMenuManager() {
-		return titleRegion.getMenuManager();
-	}
-
-	/**
-	 * Updates the local tool bar manager if used. Does nothing if local tool
-	 * bar manager has not been created yet.
-	 */
-	public void updateToolBar() {
-		if (toolBarManager != null)
-			toolBarManager.update(false);
-	}
-
-	private void onPaint(GC gc) {
-		if (!isSeparatorVisible() && getBackgroundImage() == null)
-			return;
-		Rectangle carea = getClientArea();
-		Image buffer = new Image(getDisplay(), carea.width, carea.height);
-		buffer.setBackground(getBackground());
-		GC igc = new GC(buffer);
-		igc.setBackground(getBackground());
-		igc.fillRectangle(0, 0, carea.width, carea.height);
-		if (getBackgroundImage() != null) {
-			if (gradientInfo != null)
-				drawBackground(igc, carea.x, carea.y, carea.width, carea.height);
-			else {
-				Image bgImage = getBackgroundImage();
-				Rectangle ibounds = bgImage.getBounds();
-				drawBackground(igc, carea.x, carea.y, ibounds.width,
-						ibounds.height);
-			}
-		}
-
-		if (isSeparatorVisible()) {
-			// bg separator
-			if (hasColor(IFormColors.H_BOTTOM_KEYLINE1))
-				igc.setForeground(getColor(IFormColors.H_BOTTOM_KEYLINE1));
-			else
-				igc.setForeground(getBackground());
-			igc.drawLine(carea.x, carea.height - 2, carea.x + carea.width - 1,
-					carea.height - 2);
-			if (hasColor(IFormColors.H_BOTTOM_KEYLINE2))
-				igc.setForeground(getColor(IFormColors.H_BOTTOM_KEYLINE2));
-			else
-				igc.setForeground(getForeground());
-			igc.drawLine(carea.x, carea.height - 1, carea.x + carea.width - 1,
-					carea.height - 1);
-		}
-		igc.dispose();
-		gc.drawImage(buffer, carea.x, carea.y);
-		buffer.dispose();
-	}
-
-	private void updateTitleRegionHoverState(MouseEvent e) {
-		Rectangle titleRect = titleRegion.getBounds();
-		titleRect.width += titleRect.x + 15;
-		titleRect.height += titleRect.y + 15;
-		titleRect.x = 0;
-		titleRect.y = 0;
-		if (titleRect.contains(e.x, e.y))
-			titleRegion.setHoverState(TitleRegion.STATE_HOVER_LIGHT);
-		else
-			titleRegion.setHoverState(TitleRegion.STATE_NORMAL);
-	}
-
-	private void updateGradientImage() {
-		Rectangle rect = getBounds();
-		if (gradientImage != null) {
-			FormImages.getInstance().markFinished(gradientImage);
-			gradientImage = null;
-		}
-		if (gradientInfo != null) {
-			gradientImage = FormImages.getInstance().getGradient(getDisplay(), gradientInfo.gradientColors, gradientInfo.percents,
-					gradientInfo.vertical ? rect.height : rect.width, gradientInfo.vertical, getColor(COLOR_BASE_BG));
-		} else if (backgroundImage != null && !isBackgroundImageTiled()) {
-			gradientImage = new Image(getDisplay(), Math.max(rect.width, 1),
-					Math.max(rect.height, 1));
-			gradientImage.setBackground(getBackground());
-			GC gc = new GC(gradientImage);
-			gc.drawImage(backgroundImage, 0, 0);
-			gc.dispose();
-		}
-		setBackgroundImage(gradientImage);
-	}
-
-	public boolean isSeparatorVisible() {
-		return (flags & SEPARATOR) != 0;
-	}
-
-	public void setSeparatorVisible(boolean addSeparator) {
-		if (addSeparator)
-			flags |= SEPARATOR;
-		else
-			flags &= ~SEPARATOR;
-	}
-
-	public void setToolBarAlignment(int alignment) {
-		if (alignment == SWT.BOTTOM)
-			flags |= BOTTOM_TOOLBAR;
-		else
-			flags &= ~BOTTOM_TOOLBAR;
-	}
-
-	public int getToolBarAlignment() {
-		return (flags & BOTTOM_TOOLBAR) != 0 ? SWT.BOTTOM : SWT.TOP;
-	}
-
-	public void addMessageHyperlinkListener(IHyperlinkListener listener) {
-		ensureMessageRegionExists();
-		messageRegion.addMessageHyperlinkListener(listener);
-	}
-
-	public void removeMessageHyperlinkListener(IHyperlinkListener listener) {
-		if (messageRegion != null)
-			messageRegion.removeMessageHyperlinkListener(listener);
-	}
-
-	public String getMessage() {
-		return messageRegion != null ? messageRegion.getMessage() : null;
-	}
-
-	public int getMessageType() {
-		return messageRegion != null ? messageRegion.getMessageType() : 0;
-	}
-
-	public IMessage[] getChildrenMessages() {
-		return messageRegion != null ? messageRegion.getChildrenMessages()
-				: NULL_MESSAGE_ARRAY;
-	}
-
-	private void ensureMessageRegionExists() {
-		// ensure message region exists
-		if (messageRegion == null)
-			messageRegion = new MessageRegion();
-	}
-
-	public void showMessage(String newMessage, int type, IMessage[] messages) {
-		if (messageRegion == null) {
-			// check the trivial case
-			if (newMessage == null)
-				return;
-		} else if (messageRegion.isDisposed())
-			return;
-		ensureMessageRegionExists();
-		messageRegion.showMessage(newMessage, type, messages);
-		titleRegion.updateImage(messageRegion.getMessageImage(), false);
-		if (messageToolTipManager != null)
-			messageToolTipManager.update();
-		layout();
-		redraw();
-	}
-
-	/**
-	 * Tests if the form is in the 'busy' state.
-	 * 
-	 * @return <code>true</code> if busy, <code>false</code> otherwise.
-	 */
-
-	public boolean isBusy() {
-		return titleRegion.isBusy();
-	}
-
-	/**
-	 * Sets the form's busy state. Busy form will display 'busy' animation in
-	 * the area of the title image.
-	 * 
-	 * @param busy
-	 *            the form's busy state
-	 */
-
-	public void setBusy(boolean busy) {
-		if (titleRegion.setBusy(busy))
-			layout();
-	}
-
-	public Control getHeadClient() {
-		return headClient;
-	}
-
-	public void setHeadClient(Control headClient) {
-		if (headClient != null)
-			Assert.isTrue(headClient.getParent() == this);
-		this.headClient = headClient;
-		layout();
-	}
-
-	public void putColor(String key, Color color) {
-		if (color == null)
-			colors.remove(key);
-		else
-			colors.put(key, color);
-	}
-
-	public Color getColor(String key) {
-		return (Color) colors.get(key);
-	}
-
-	public boolean hasColor(String key) {
-		return colors.containsKey(key);
-	}
-
-	public void addDragSupport(int operations, Transfer[] transferTypes,
-			DragSourceListener listener) {
-		titleRegion.addDragSupport(operations, transferTypes, listener);
-	}
-
-	public void addDropSupport(int operations, Transfer[] transferTypes,
-			DropTargetListener listener) {
-		titleRegion.addDropSupport(operations, transferTypes, listener);
-	}
-
-	public IMessageToolTipManager getMessageToolTipManager() {
-		return messageToolTipManager;
-	}
-
-	public void setMessageToolTipManager(
-			IMessageToolTipManager messageToolTipManager) {
-		this.messageToolTipManager = messageToolTipManager;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java
deleted file mode 100644
index e8dda26..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Arrays;
-import java.util.HashMap;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-public class FormImages {
-	private static FormImages instance;
-
-	public static FormImages getInstance() {
-		if (instance == null)
-			instance = new FormImages();
-		return instance;
-	}
-
-	private HashMap images;
-	private HashMap ids;
-	
-	private FormImages() {
-	}
-	
-	private abstract class ImageIdentifier {
-		Display fDisplay;
-		RGB[] fRGBs;
-		int fLength;
-		
-		ImageIdentifier(Display display, Color[] colors, int length) {
-			fDisplay = display;
-			fRGBs = new RGB[colors.length];
-			for (int i = 0; i < colors.length; i++) {
-				Color color = colors[i];
-				fRGBs[i] = color == null ? null : color.getRGB();
-			}
-			fLength = length;
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof ImageIdentifier) {
-				ImageIdentifier id = (ImageIdentifier)obj;
-				if (id.fRGBs.length == fRGBs.length) {
-					boolean result = id.fDisplay.equals(fDisplay) && id.fLength == fLength;
-					for (int i = 0; i < fRGBs.length && result; i++) {
-						result = result && id.fRGBs[i].equals(fRGBs[i]);
-					}
-					return result;
-				}
-			}
-			return false;
-		}
-		
-		public int hashCode() {
-			int hash = fDisplay.hashCode();
-			for (int i = 0; i < fRGBs.length; i++)
-				hash = hash * 7 + fRGBs[i].hashCode();
-			hash = hash * 7 + fLength;
-			return hash;
-		}
-	}
-	
-	private class SimpleImageIdentifier extends ImageIdentifier{
-		private int fTheight;
-		private int fMarginHeight;
-		
-		SimpleImageIdentifier (Display display, Color color1, Color color2,
-				int realtheight, int theight, int marginHeight) {
-			super(display, new Color[] {color1, color2}, realtheight);
-			fTheight = theight;
-			fMarginHeight = marginHeight;
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof SimpleImageIdentifier) {
-				SimpleImageIdentifier id = (SimpleImageIdentifier) obj;
-				if (super.equals(obj)  &&
-						id.fTheight == fTheight && id.fMarginHeight == fMarginHeight)
-					return true;
-			}
-			return false;
-		}
-		
-		public int hashCode() {
-			int hash = super.hashCode();
-			hash = hash * 7 + new Integer(fTheight).hashCode();
-			hash = hash * 7 + new Integer(fMarginHeight).hashCode();
-			return hash;
-		}
-	}
-	
-	private class ComplexImageIdentifier extends ImageIdentifier {
-		RGB fBgRGB;
-		boolean fVertical;
-		int[] fPercents;
-		
-		public ComplexImageIdentifier(Display display, Color[] colors, int length,
-				int[] percents, boolean vertical, Color bg) {
-			super(display, colors, length);
-			fBgRGB = bg == null ? null : bg.getRGB();
-			fVertical = vertical;
-			fPercents = percents;
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof ComplexImageIdentifier) {
-				ComplexImageIdentifier id = (ComplexImageIdentifier) obj;
-				if (super.equals(obj)  &&
-						id.fVertical == fVertical && Arrays.equals(id.fPercents, fPercents)) {
-					if ((id.fBgRGB == null && fBgRGB == null) ||
-							(id.fBgRGB != null && id.fBgRGB.equals(fBgRGB)))
-						return true;
-					// if the only thing that isn't the same is the background color
-					// still return true if it does not matter (percents add up to 100)
-					int sum = 0;
-					for (int i = 0; i < fPercents.length; i++)
-						sum += fPercents[i];
-					if (sum >= 100)
-						return true;
-				}
-			}
-			return false;
-		}
-		
-		public int hashCode() {
-			int hash = super.hashCode();
-			hash = hash * 7 + new Boolean(fVertical).hashCode();
-			for (int i = 0; i < fPercents.length; i++)
-				hash = hash * 7 + new Integer(fPercents[i]).hashCode();
-			return hash;
-		}
-	}
-	
-	private class ImageReference {
-		private Image fImage;
-		private int fCount;
-		
-		public ImageReference(Image image) {
-			fImage = image;
-			fCount = 1;
-		}
-
-		public Image getImage() {
-			return fImage;
-		}
-		// returns a boolean indicating if all clients of this image are finished
-		// a true result indicates the underlying image should be disposed
-		public boolean decCount() {
-			return --fCount == 0;
-		}
-		public void incCount() {
-			fCount++;
-		}
-	}
-	
-	public Image getGradient(Display display, Color color1, Color color2,
-			int realtheight, int theight, int marginHeight) {
-		checkHashMaps();
-		ImageIdentifier id = new SimpleImageIdentifier(display, color1, color2, realtheight, theight, marginHeight);
-		ImageReference result = (ImageReference) images.get(id);
-		if (result != null && !result.getImage().isDisposed()) {
-			result.incCount();
-			return result.getImage();
-		}
-		Image image = createGradient(display, color1, color2, realtheight, theight, marginHeight);
-		images.put(id, new ImageReference(image));
-		ids.put(image, id);
-		return image;
-	}
-	
-	public Image getGradient(Display display, Color[] colors, int[] percents,
-			int length, boolean vertical, Color bg) {
-		checkHashMaps();
-		ImageIdentifier id = new ComplexImageIdentifier(display, colors, length, percents, vertical, bg);
-		ImageReference result = (ImageReference) images.get(id);
-		if (result != null && !result.getImage().isDisposed()) {
-			result.incCount();
-			return result.getImage();
-		}
-		Image image = createGradient(display, colors, percents, length, vertical, bg);
-		images.put(id, new ImageReference(image));
-		ids.put(image, id);
-		return image;
-	}
-	
-	public boolean markFinished(Image image) {
-		checkHashMaps();
-		ImageIdentifier id = (ImageIdentifier)ids.get(image);
-		if (id != null) {
-			ImageReference ref = (ImageReference) images.get(id);
-			if (ref != null) {
-				if (ref.decCount()) {
-					images.remove(id);
-					ids.remove(ref.getImage());
-					ref.getImage().dispose();
-					validateHashMaps();
-				}
-				return true;
-			}
-		}
-		// if the image was not found, dispose of it for the caller
-		image.dispose();
-		return false;
-	}
-
-	private void checkHashMaps() {
-		if (images == null)
-			images = new HashMap();
-		if (ids == null)
-			ids = new HashMap();
-	}
-	
-	private void validateHashMaps() {
-		if (images.size() == 0)
-			images = null;
-		if (ids.size() == 0)
-			ids = null;
-	}
-	
-	private Image createGradient(Display display, Color color1, Color color2,
-			int realtheight, int theight, int marginHeight) {
-		Image image = new Image(display, 1, realtheight);
-		image.setBackground(color1);
-		GC gc = new GC(image);
-		gc.setBackground(color1);
-		gc.fillRectangle(0, 0, 1, realtheight);
-		gc.setForeground(color2);
-		gc.setBackground(color1);
-		gc.fillGradientRectangle(0, marginHeight + 2, 1, theight - 2, true);
-		gc.dispose();
-		return image;
-	}
-	
-	private Image createGradient(Display display, Color[] colors, int[] percents,
-			int length, boolean vertical, Color bg) {
-		int width = vertical ? 1 : length;
-		int height = vertical ? length : 1;
-		Image gradient = new Image(display, Math.max(width, 1), Math
-				.max(height, 1));
-		GC gc = new GC(gradient);
-		drawTextGradient(gc, width, height, colors, percents, vertical, bg);
-		gc.dispose();
-		return gradient;
-	}
-
-	private void drawTextGradient(GC gc, int width, int height, Color[] colors,
-			int[] percents, boolean vertical, Color bg) {
-		final Color oldBackground = gc.getBackground();
-		if (colors.length == 1) {
-			if (colors[0] != null)
-				gc.setBackground(colors[0]);
-			gc.fillRectangle(0, 0, width, height);
-		} else {
-			final Color oldForeground = gc.getForeground();
-			Color lastColor = colors[0];
-			if (lastColor == null)
-				lastColor = oldBackground;
-			int pos = 0;
-			for (int i = 0; i < percents.length; ++i) {
-				gc.setForeground(lastColor);
-				lastColor = colors[i + 1];
-				if (lastColor == null)
-					lastColor = oldBackground;
-				gc.setBackground(lastColor);
-				if (vertical) {
-					int gradientHeight = percents[i] * height / 100;
-					
-					gc.fillGradientRectangle(0, pos, width, gradientHeight,
-							true);
-					pos += gradientHeight;
-				} else {
-					int gradientWidth = percents[i] * height / 100;
-					
-					gc.fillGradientRectangle(pos, 0, gradientWidth, height,
-							false);
-					pos += gradientWidth;
-				}
-			}
-			if (vertical && pos < height) {
-				if (bg != null)
-					gc.setBackground(bg);
-				gc.fillRectangle(0, pos, width, height - pos);
-			}
-			if (!vertical && pos < width) {
-				if (bg != null)
-					gc.setBackground(bg);
-				gc.fillRectangle(pos, 0, width - pos, height);
-			}
-			gc.setForeground(oldForeground);
-		}
-	}
-}
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 3c3e037..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormTextModel.java
+++ /dev/null
@@ -1,750 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.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, true,
-							getHyperlinkSettings(), null);
-					plist.add(p);
-				}
-			} else if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String tag = child.getNodeName().toLowerCase();
-				if (tag.equals("p")) { //$NON-NLS-1$
-					Paragraph p = processParagraph(child, expandURLs);
-					if (p != null)
-						plist.add(p);
-				} else if (tag.equals("li")) { //$NON-NLS-1$
-					Paragraph p = processListItem(child, expandURLs);
-					if (p != null)
-						plist.add(p);
-				}
-			}
-		}
-	}
-
-	private Paragraph processParagraph(Node paragraph, boolean expandURLs) {
-		NodeList children = paragraph.getChildNodes();
-		NamedNodeMap atts = paragraph.getAttributes();
-		Node addSpaceAtt = atts.getNamedItem("addVerticalSpace"); //$NON-NLS-1$
-		boolean addSpace = true;
-
-		if (addSpaceAtt == null)
-			addSpaceAtt = atts.getNamedItem("vspace"); //$NON-NLS-1$
-
-		if (addSpaceAtt != null) {
-			String value = addSpaceAtt.getNodeValue();
-			addSpace = value.equalsIgnoreCase("true"); //$NON-NLS-1$
-		}
-		Paragraph p = new Paragraph(addSpace);
-
-		processSegments(p, children, expandURLs);
-		return p;
-	}
-
-	private Paragraph processListItem(Node listItem, boolean expandURLs) {
-		NodeList children = listItem.getChildNodes();
-		NamedNodeMap atts = listItem.getAttributes();
-		Node addSpaceAtt = atts.getNamedItem("addVerticalSpace");//$NON-NLS-1$
-		Node styleAtt = atts.getNamedItem("style");//$NON-NLS-1$
-		Node valueAtt = atts.getNamedItem("value");//$NON-NLS-1$
-		Node indentAtt = atts.getNamedItem("indent");//$NON-NLS-1$
-		Node bindentAtt = atts.getNamedItem("bindent");//$NON-NLS-1$
-		int style = BulletParagraph.CIRCLE;
-		int indent = -1;
-		int bindent = -1;
-		String text = null;
-		boolean addSpace = true;
-
-		if (addSpaceAtt != null) {
-			String value = addSpaceAtt.getNodeValue();
-			addSpace = value.equalsIgnoreCase("true"); //$NON-NLS-1$
-		}
-		if (styleAtt != null) {
-			String value = styleAtt.getNodeValue();
-			if (value.equalsIgnoreCase("text")) { //$NON-NLS-1$
-				style = BulletParagraph.TEXT;
-			} else if (value.equalsIgnoreCase("image")) { //$NON-NLS-1$
-				style = BulletParagraph.IMAGE;
-			} else if (value.equalsIgnoreCase("bullet")) { //$NON-NLS-1$
-				style = BulletParagraph.CIRCLE;
-			}
-		}
-		if (valueAtt != null) {
-			text = valueAtt.getNodeValue();
-			if (style == BulletParagraph.IMAGE)
-				text = "i." + text; //$NON-NLS-1$
-		}
-		if (indentAtt != null) {
-			String value = indentAtt.getNodeValue();
-			try {
-				indent = Integer.parseInt(value);
-			} catch (NumberFormatException e) {
-			}
-		}
-		if (bindentAtt != null) {
-			String value = bindentAtt.getNodeValue();
-			try {
-				bindent = Integer.parseInt(value);
-			} catch (NumberFormatException e) {
-			}
-		}
-
-		BulletParagraph p = new BulletParagraph(addSpace);
-		p.setIndent(indent);
-		p.setBulletIndent(bindent);
-		p.setBulletStyle(style);
-		p.setBulletText(text);
-
-		processSegments(p, children, expandURLs);
-		return p;
-	}
-
-	private void processSegments(Paragraph p, NodeList children,
-			boolean expandURLs) {
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			ParagraphSegment segment = null;
-
-			if (child.getNodeType() == Node.TEXT_NODE) {
-				String value = getSingleNodeText(child);
-
-				if (value != null && !isIgnorableWhiteSpace(value, false)) {
-					p.parseRegularText(value, expandURLs, true,
-							getHyperlinkSettings(), null);
-				}
-			} else if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String name = child.getNodeName();
-				if (name.equalsIgnoreCase("img")) { //$NON-NLS-1$
-					segment = processImageSegment(child);
-				} else if (name.equalsIgnoreCase("a")) { //$NON-NLS-1$
-					segment = processHyperlinkSegment(child,
-							getHyperlinkSettings());
-				} else if (name.equalsIgnoreCase("span")) { //$NON-NLS-1$
-					processTextSegment(p, expandURLs, child);
-				} else if (name.equalsIgnoreCase("b")) { //$NON-NLS-1$
-					String text = getNodeText(child);
-					String fontId = BOLD_FONT_ID;
-					p.parseRegularText(text, expandURLs, true,
-							getHyperlinkSettings(), fontId);
-				} else if (name.equalsIgnoreCase("br")) { //$NON-NLS-1$
-					segment = new BreakSegment();
-				} else if (name.equalsIgnoreCase("control")) { //$NON-NLS-1$
-					segment = processControlSegment(child);
-				}
-			}
-			if (segment != null) {
-				p.addSegment(segment);
-			}
-		}
-	}
-
-	private boolean isIgnorableWhiteSpace(String text, boolean ignoreSpaces) {
-		for (int i = 0; i < text.length(); i++) {
-			char c = text.charAt(i);
-			if (ignoreSpaces && c == ' ')
-				continue;
-			if (c == '\n' || c == '\r' || c == '\f')
-				continue;
-			return false;
-		}
-		return true;
-	}
-
-	private ImageSegment processImageSegment(Node image) {
-		ImageSegment segment = new ImageSegment();
-		processObjectSegment(segment, image, "i."); //$NON-NLS-1$
-		return segment;
-	}
-
-	private ControlSegment processControlSegment(Node control) {
-		ControlSegment segment = new ControlSegment();
-		processObjectSegment(segment, control, "o."); //$NON-NLS-1$
-		Node fill = control.getAttributes().getNamedItem("fill"); //$NON-NLS-1$
-		if (fill!=null) {
-			String value = fill.getNodeValue();
-			boolean doFill = value.equalsIgnoreCase("true"); //$NON-NLS-1$
-			segment.setFill(doFill);
-		}
-		try {
-			Node width = control.getAttributes().getNamedItem("width"); //$NON-NLS-1$
-			if (width!=null) {
-				String value = width.getNodeValue();
-				int doWidth = Integer.parseInt(value);
-				segment.setWidth(doWidth);
-			}
-			Node height = control.getAttributes().getNamedItem("height"); //$NON-NLS-1$
-			if (height!=null) {
-				String value = height.getNodeValue();
-				int doHeight = Integer.parseInt(value);
-				segment.setHeight(doHeight);
-			}
-		}
-		catch (NumberFormatException e) {
-			// ignore invalid width or height
-		}
-		return segment;
-	}
-
-	private void processObjectSegment(ObjectSegment segment, Node object, String prefix) {
-		NamedNodeMap atts = object.getAttributes();
-		Node id = atts.getNamedItem("href"); //$NON-NLS-1$
-		Node align = atts.getNamedItem("align"); //$NON-NLS-1$
-		if (id != null) {
-			String value = id.getNodeValue();
-			segment.setObjectId(prefix + value);
-		}
-		if (align != null) {
-			String value = align.getNodeValue().toLowerCase();
-			if (value.equals("top")) //$NON-NLS-1$
-				segment.setVerticalAlignment(ImageSegment.TOP);
-			else if (value.equals("middle")) //$NON-NLS-1$
-				segment.setVerticalAlignment(ImageSegment.MIDDLE);
-			else if (value.equals("bottom")) //$NON-NLS-1$
-				segment.setVerticalAlignment(ImageSegment.BOTTOM);
-		}
-	}
-
-	private void appendText(String value, StringBuffer buf, int[] spaceCounter) {
-		if (!whitespaceNormalized)
-			buf.append(value);
-		else {
-			for (int j = 0; j < value.length(); j++) {
-				char c = value.charAt(j);
-				if (c == ' ' || c == '\t') {
-					// space
-					if (++spaceCounter[0] == 1) {
-						buf.append(c);
-					}
-				} else if (c == '\n' || c == '\r' || c == '\f') {
-					// new line
-					if (++spaceCounter[0] == 1) {
-						buf.append(' ');
-					}
-				} else {
-					// other characters
-					spaceCounter[0] = 0;
-					buf.append(c);
-				}
-			}
-		}
-	}
-
-	private String getNormalizedText(String text) {
-		int[] spaceCounter = new int[1];
-		StringBuffer buf = new StringBuffer();
-
-		if (text == null)
-			return null;
-		appendText(text, buf, spaceCounter);
-		return buf.toString();
-	}
-
-	private String getSingleNodeText(Node node) {
-		return getNormalizedText(node.getNodeValue());
-	}
-
-	private String getNodeText(Node node) {
-		NodeList children = node.getChildNodes();
-		StringBuffer buf = new StringBuffer();
-		int[] spaceCounter = new int[1];
-
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() == Node.TEXT_NODE) {
-				String value = child.getNodeValue();
-				appendText(value, buf, spaceCounter);
-			}
-		}
-		return buf.toString().trim();
-	}
-
-	private ParagraphSegment processHyperlinkSegment(Node link,
-			HyperlinkSettings settings) {
-		NamedNodeMap atts = link.getAttributes();
-		String href = null;
-		boolean wrapAllowed = true;
-		String boldFontId = null;
-
-		Node hrefAtt = atts.getNamedItem("href"); //$NON-NLS-1$
-		if (hrefAtt != null) {
-			href = hrefAtt.getNodeValue();
-		}
-		Node boldAtt = atts.getNamedItem("bold"); //$NON-NLS-1$
-		if (boldAtt != null) {
-			boldFontId = BOLD_FONT_ID;
-		}
-		Node nowrap = atts.getNamedItem("nowrap"); //$NON-NLS-1$
-		if (nowrap != null) {
-			String value = nowrap.getNodeValue();
-			if (value != null && value.equalsIgnoreCase("true")) //$NON-NLS-1$
-				wrapAllowed = false;
-		}
-		Object status = checkChildren(link);
-		if (status instanceof Node) {
-			Node child = (Node)status;
-			ImageHyperlinkSegment segment = new ImageHyperlinkSegment();
-			segment.setHref(href);
-			segment.setWordWrapAllowed(wrapAllowed);
-			Node alt = child.getAttributes().getNamedItem("alt"); //$NON-NLS-1$
-			if (alt!=null)
-				segment.setTooltipText(alt.getNodeValue());
-			Node text = child.getAttributes().getNamedItem("text"); //$NON-NLS-1$
-			if (text!=null)
-				segment.setText(text.getNodeValue());
-			processObjectSegment(segment, child, "i."); //$NON-NLS-1$
-			return segment;
-		}  else if (status instanceof String) {
-			String text = (String) status;
-			TextHyperlinkSegment segment = new TextHyperlinkSegment(text,
-					settings, null);
-			segment.setHref(href);
-			segment.setFontId(boldFontId);
-			Node alt = atts.getNamedItem("alt"); //$NON-NLS-1$
-			if (alt!=null)
-				segment.setTooltipText(alt.getNodeValue());			
-			segment.setWordWrapAllowed(wrapAllowed);
-			return segment;
-		} else {
-			AggregateHyperlinkSegment parent = new AggregateHyperlinkSegment();
-			parent.setHref(href);
-			NodeList children = link.getChildNodes();
-			for (int i = 0; i < children.getLength(); i++) {
-				Node child = children.item(i);
-				if (child.getNodeType() == Node.TEXT_NODE) {
-					String value = child.getNodeValue();
-					TextHyperlinkSegment ts = new TextHyperlinkSegment(
-							getNormalizedText(value), settings, null);
-					Node alt = atts.getNamedItem("alt"); //$NON-NLS-1$
-					if (alt!=null)
-						ts.setTooltipText(alt.getNodeValue());
-					ts.setWordWrapAllowed(wrapAllowed);
-					parent.add(ts);
-				} else if (child.getNodeType() == Node.ELEMENT_NODE) {
-					String name = child.getNodeName();
-					if (name.equalsIgnoreCase("img")) { //$NON-NLS-1$
-						ImageHyperlinkSegment is = new ImageHyperlinkSegment();
-						processObjectSegment(is, child, "i."); //$NON-NLS-1$
-						Node alt = child.getAttributes().getNamedItem("alt"); //$NON-NLS-1$
-						if (alt!=null)
-							is.setTooltipText(alt.getNodeValue());
-						parent.add(is);
-						is.setWordWrapAllowed(wrapAllowed);
-					}
-				}
-			}
-			return parent;
-		}
-	}
-
-	private Object checkChildren(Node node) {
-		boolean text = false;
-		Node imgNode = null;
-		//int status = 0;
-
-		NodeList children = node.getChildNodes();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() == Node.TEXT_NODE)
-				text = true;
-			else if (child.getNodeType() == Node.ELEMENT_NODE
-					&& child.getNodeName().equalsIgnoreCase("img")) { //$NON-NLS-1$
-				imgNode = child;
-			}
-		}
-		if (text && imgNode == null)
-			return getNodeText(node);
-		else if (!text && imgNode != null)
-			return imgNode;
-		else return null;
-	}
-
-	private void processTextSegment(Paragraph p, boolean expandURLs,
-			Node textNode) {
-		String text = getNodeText(textNode);
-
-		NamedNodeMap atts = textNode.getAttributes();
-		Node font = atts.getNamedItem("font"); //$NON-NLS-1$
-		Node color = atts.getNamedItem("color"); //$NON-NLS-1$
-		boolean wrapAllowed=true;
-		Node nowrap = atts.getNamedItem("nowrap"); //$NON-NLS-1$
-		if (nowrap != null) {
-			String value = nowrap.getNodeValue();
-			if (value != null && value.equalsIgnoreCase("true")) //$NON-NLS-1$
-				wrapAllowed = false;
-		}
-		String fontId = null;
-		String colorId = null;
-		if (font != null) {
-			fontId = "f." + font.getNodeValue(); //$NON-NLS-1$
-		}
-		if (color != null) {
-			colorId = "c." + color.getNodeValue(); //$NON-NLS-1$
-		}
-		p.parseRegularText(text, expandURLs, wrapAllowed, getHyperlinkSettings(), fontId,
-				colorId);
-	}
-
-	public void parseRegularText(String regularText, boolean convertURLs) {
-		reset();
-
-		if (regularText == null)
-			return;
-
-		regularText = getNormalizedText(regularText);
-
-		Paragraph p = new Paragraph(true);
-		paragraphs.add(p);
-		int pstart = 0;
-
-		for (int i = 0; i < regularText.length(); i++) {
-			char c = regularText.charAt(i);
-			if (p == null) {
-				p = new Paragraph(true);
-				paragraphs.add(p);
-			}
-			if (c == '\n') {
-				String text = regularText.substring(pstart, i);
-				pstart = i + 1;
-				p.parseRegularText(text, convertURLs, true, getHyperlinkSettings(),
-						null);
-				p = null;
-			}
-		}
-		if (p != null) {
-			// no new line
-			String text = regularText.substring(pstart);
-			p.parseRegularText(text, convertURLs, true, getHyperlinkSettings(), null);
-		}
-	}
-
-	public HyperlinkSettings getHyperlinkSettings() {
-		// #132723 cannot have null settings
-		if (hyperlinkSettings==null)
-			hyperlinkSettings = new HyperlinkSettings(SWTUtil.getStandardDisplay());
-		return hyperlinkSettings;
-	}
-
-	public void setHyperlinkSettings(HyperlinkSettings settings) {
-		this.hyperlinkSettings = settings;
-	}
-
-	private void reset() {
-		if (paragraphs == null)
-			paragraphs = new Vector();
-		paragraphs.clear();
-		selectedSegmentIndex = -1;
-		savedSelectedLinkIndex = -1;
-		selectableSegments = null;
-	}
-
-	IFocusSelectable[] getFocusSelectableSegments() {
-		if (selectableSegments != null || paragraphs == null)
-			return selectableSegments;
-		Vector result = new Vector();
-		for (int i = 0; i < paragraphs.size(); i++) {
-			Paragraph p = (Paragraph) paragraphs.get(i);
-			ParagraphSegment[] segments = p.getSegments();
-			for (int j = 0; j < segments.length; j++) {
-				if (segments[j] instanceof IFocusSelectable)
-					result.add(segments[j]);
-			}
-		}
-		selectableSegments = (IFocusSelectable[]) result
-				.toArray(new IFocusSelectable[result.size()]);
-		return selectableSegments;
-	}
-	
-	public IHyperlinkSegment getHyperlink(int index) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		if (selectables.length>index) {
-			IFocusSelectable link = selectables[index];
-			if (link instanceof IHyperlinkSegment)
-				return (IHyperlinkSegment)link;
-		}
-		return null;
-	}
-	
-	public IHyperlinkSegment findHyperlinkAt(int x, int y) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		for (int i = 0; i < selectables.length; i++) {
-			IFocusSelectable segment = selectables[i];
-			if (segment instanceof IHyperlinkSegment) {
-				IHyperlinkSegment link = (IHyperlinkSegment)segment;
-				if (link.contains(x, y))
-					return link;
-			}
-		}
-		return null;
-	}
-	
-	public int getHyperlinkCount() {
-		return getFocusSelectableSegments().length;
-	}
-	
-	public int indexOf(IHyperlinkSegment link) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		for (int i = 0; i < selectables.length; i++) {
-			IFocusSelectable segment = selectables[i];
-			if (segment instanceof IHyperlinkSegment) {
-				IHyperlinkSegment l = (IHyperlinkSegment)segment;
-				if (link==l)
-					return i;
-			}
-		}
-		return -1;
-	}
-
-	public ParagraphSegment findSegmentAt(int x, int y) {
-		for (int i = 0; i < paragraphs.size(); i++) {
-			Paragraph p = (Paragraph) paragraphs.get(i);
-			ParagraphSegment segment = p.findSegmentAt(x, y);
-			if (segment != null)
-				return segment;
-		}
-		return null;
-	}
-	
-	public void clearCache(String fontId) {
-		for (int i = 0; i < paragraphs.size(); i++) {
-			Paragraph p = (Paragraph) paragraphs.get(i);
-			p.clearCache(fontId);
-		}
-	}
-
-	public IFocusSelectable getSelectedSegment() {
-		if (selectableSegments==null || selectedSegmentIndex == -1)
-			return null;
-		return selectableSegments[selectedSegmentIndex];
-	}
-	
-	public int getSelectedSegmentIndex() {
-		return selectedSegmentIndex;
-	}
-	
-	public boolean linkExists(IHyperlinkSegment link) {
-		if (selectableSegments==null)
-			return false;
-		for (int i=0; i<selectableSegments.length; i++) {
-			if (selectableSegments[i]==link)
-				return true;
-		}
-		return false;
-	}
-
-	public boolean traverseFocusSelectableObjects(boolean next) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		if (selectables == null)
-			return false;
-		int size = selectables.length;
-		if (next) {
-			selectedSegmentIndex++;
-		} else
-			selectedSegmentIndex--;
-
-		if (selectedSegmentIndex < 0 || selectedSegmentIndex > size - 1) {
-			selectedSegmentIndex = -1;
-		}
-		return selectedSegmentIndex != -1;
-	}
-	
-	public IFocusSelectable getNextFocusSegment(boolean next) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		if (selectables == null)
-			return null;
-		int nextIndex = next?selectedSegmentIndex+1:selectedSegmentIndex-1;
-
-		if (nextIndex < 0 || nextIndex > selectables.length - 1) {
-			return null;
-		}
-		return selectables[nextIndex];
-	}
-	
-	public boolean restoreSavedLink() {
-		if (savedSelectedLinkIndex!= -1) {
-			selectedSegmentIndex = savedSelectedLinkIndex;
-			return true;
-		}
-		return false;
-	}
-
-	public void selectLink(IHyperlinkSegment link) {
-		if (link == null) {
-			savedSelectedLinkIndex = selectedSegmentIndex;	
-			selectedSegmentIndex = -1;
-		}
-		else {
-			select(link);
-
-		}
-	}
-	
-	public void select(IFocusSelectable selectable) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		selectedSegmentIndex = -1;
-		if (selectables == null)
-			return;
-		for (int i = 0; i < selectables.length; i++) {
-			if (selectables[i].equals(selectable)) {
-				selectedSegmentIndex = i;
-				break;
-			}
-		}
-	}
-
-	public boolean hasFocusSegments() {
-		IFocusSelectable[] segments = getFocusSelectableSegments();
-		if (segments.length > 0)
-			return true;
-		return false;
-	}
-
-	public void dispose() {
-		paragraphs = null;
-		selectedSegmentIndex = -1;
-		savedSelectedLinkIndex = -1;
-		selectableSegments = null;
-	}
-
-	/**
-	 * @return Returns the whitespaceNormalized.
-	 */
-	public boolean isWhitespaceNormalized() {
-		return whitespaceNormalized;
-	}
-
-	/**
-	 * @param whitespaceNormalized
-	 *            The whitespaceNormalized to set.
-	 */
-	public void setWhitespaceNormalized(boolean whitespaceNormalized) {
-		this.whitespaceNormalized = whitespaceNormalized;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java
deleted file mode 100644
index db479e9..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chriss Gross (schtoo@schtoo.com) - fix for 61670
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.ColumnLayout;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-
-import com.ibm.icu.text.BreakIterator;
-
-public class FormUtil {
-	public static final String PLUGIN_ID = "org.eclipse.ui.forms"; //$NON-NLS-1$
-
-	static final int H_SCROLL_INCREMENT = 5;
-
-	static final int V_SCROLL_INCREMENT = 64;
-
-	public static final String DEBUG = PLUGIN_ID + "/debug"; //$NON-NLS-1$
-
-	public static final String DEBUG_TEXT = DEBUG + "/text"; //$NON-NLS-1$
-	public static final String DEBUG_TEXTSIZE = DEBUG + "/textsize"; //$NON-NLS-1$
-
-	public static final String DEBUG_FOCUS = DEBUG + "/focus"; //$NON-NLS-1$
-
-	public static final String FOCUS_SCROLLING = "focusScrolling"; //$NON-NLS-1$
-	
-	public static final String IGNORE_BODY = "__ignore_body__"; //$NON-NLS-1$
-
-	public static Text createText(Composite parent, String label,
-			FormToolkit factory) {
-		return createText(parent, label, factory, 1);
-	}
-
-	public static Text createText(Composite parent, String label,
-			FormToolkit factory, int span) {
-		factory.createLabel(parent, label);
-		Text text = factory.createText(parent, ""); //$NON-NLS-1$
-		int hfill = span == 1 ? GridData.FILL_HORIZONTAL
-				: GridData.HORIZONTAL_ALIGN_FILL;
-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);
-		gd.horizontalSpan = span;
-		text.setLayoutData(gd);
-		return text;
-	}
-
-	public static Text createText(Composite parent, String label,
-			FormToolkit factory, int span, int style) {
-		Label l = factory.createLabel(parent, label);
-		if ((style & SWT.MULTI) != 0) {
-			GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-			l.setLayoutData(gd);
-		}
-		Text text = factory.createText(parent, "", style); //$NON-NLS-1$
-		int hfill = span == 1 ? GridData.FILL_HORIZONTAL
-				: GridData.HORIZONTAL_ALIGN_FILL;
-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);
-		gd.horizontalSpan = span;
-		text.setLayoutData(gd);
-		return text;
-	}
-
-	public static Text createText(Composite parent, FormToolkit factory,
-			int span) {
-		Text text = factory.createText(parent, ""); //$NON-NLS-1$
-		int hfill = span == 1 ? GridData.FILL_HORIZONTAL
-				: GridData.HORIZONTAL_ALIGN_FILL;
-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);
-		gd.horizontalSpan = span;
-		text.setLayoutData(gd);
-		return text;
-	}
-
-	public static int computeMinimumWidth(GC gc, String text) {
-		BreakIterator wb = BreakIterator.getWordInstance();
-		wb.setText(text);
-		int last = 0;
-
-		int width = 0;
-
-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {
-			String word = text.substring(last, loc);
-			Point extent = gc.textExtent(word);
-			width = Math.max(width, extent.x);
-			last = loc;
-		}
-		String lastWord = text.substring(last);
-		Point extent = gc.textExtent(lastWord);
-		width = Math.max(width, extent.x);
-		return width;
-	}
-
-	public static Point computeWrapSize(GC gc, String text, int wHint) {
-		BreakIterator wb = BreakIterator.getWordInstance();
-		wb.setText(text);
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-
-		int saved = 0;
-		int last = 0;
-		int height = lineHeight;
-		int maxWidth = 0;
-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {
-			String word = text.substring(saved, loc);
-			Point extent = gc.textExtent(word);
-			if (extent.x > wHint) {
-				// overflow
-				saved = last;
-				height += extent.y;
-				// switch to current word so maxWidth will accommodate very long single words
-				word = text.substring(last, loc);
-				extent = gc.textExtent(word);
-			}
-			maxWidth = Math.max(maxWidth, extent.x);
-			last = loc;
-		}
-		/*
-		 * Correct the height attribute in case it was calculated wrong due to wHint being less than maxWidth.
-		 * The recursive call proved to be the only thing that worked in all cases. Some attempts can be made
-		 * to estimate the height, but the algorithm needs to be run again to be sure.
-		 */
-		if (maxWidth > wHint)
-			return computeWrapSize(gc, text, maxWidth);
-		return new Point(maxWidth, height);
-	}
-
-	public static void paintWrapText(GC gc, String text, Rectangle bounds) {
-		paintWrapText(gc, text, bounds, false);
-	}
-
-	public static void paintWrapText(GC gc, String text, Rectangle bounds,
-			boolean underline) {
-		BreakIterator wb = BreakIterator.getWordInstance();
-		wb.setText(text);
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-		int descent = fm.getDescent();
-
-		int saved = 0;
-		int last = 0;
-		int y = bounds.y;
-		int width = bounds.width;
-
-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {
-			String line = text.substring(saved, loc);
-			Point extent = gc.textExtent(line);
-
-			if (extent.x > width) {
-				// overflow
-				String prevLine = text.substring(saved, last);
-				gc.drawText(prevLine, bounds.x, y, true);
-				if (underline) {
-					Point prevExtent = gc.textExtent(prevLine);
-					int lineY = y + lineHeight - descent + 1;
-					gc
-							.drawLine(bounds.x, lineY, bounds.x + prevExtent.x,
-									lineY);
-				}
-
-				saved = last;
-				y += lineHeight;
-			}
-			last = loc;
-		}
-		// paint the last line
-		String lastLine = text.substring(saved, last);
-		gc.drawText(lastLine, bounds.x, y, true);
-		if (underline) {
-			int lineY = y + lineHeight - descent + 1;
-			Point lastExtent = gc.textExtent(lastLine);
-			gc.drawLine(bounds.x, lineY, bounds.x + lastExtent.x, lineY);
-		}
-	}
-
-	public static ScrolledComposite getScrolledComposite(Control c) {
-		Composite parent = c.getParent();
-
-		while (parent != null) {
-			if (parent instanceof ScrolledComposite) {
-				return (ScrolledComposite) parent;
-			}
-			parent = parent.getParent();
-		}
-		return null;
-	}
-
-	public static void ensureVisible(Control c) {
-		ScrolledComposite scomp = getScrolledComposite(c);
-		if (scomp != null) {
-			Object data = scomp.getData(FOCUS_SCROLLING);
-			if (data == null || !data.equals(Boolean.FALSE))
-				FormUtil.ensureVisible(scomp, c);
-		}
-	}
-
-	public static void ensureVisible(ScrolledComposite scomp, Control control) {
-		// if the control is a FormText we do not need to scroll since it will
-		// ensure visibility of its segments as necessary
-		if (control instanceof FormText)
-			return;
-		Point controlSize = control.getSize();
-		Point controlOrigin = getControlLocation(scomp, control);
-		ensureVisible(scomp, controlOrigin, controlSize);
-	}
-
-	public static void ensureVisible(ScrolledComposite scomp,
-			Point controlOrigin, Point controlSize) {
-		Rectangle area = scomp.getClientArea();
-		Point scompOrigin = scomp.getOrigin();
-
-		int x = scompOrigin.x;
-		int y = scompOrigin.y;
-
-		// horizontal right, but only if the control is smaller
-		// than the client area
-		if (controlSize.x < area.width
-				&& (controlOrigin.x + controlSize.x > scompOrigin.x
-						+ area.width)) {
-			x = controlOrigin.x + controlSize.x - area.width;
-		}
-		// horizontal left - make sure the left edge of
-		// the control is showing
-		if (controlOrigin.x < x) {
-			if (controlSize.x < area.width)
-				x = controlOrigin.x + controlSize.x - area.width;
-			else
-				x = controlOrigin.x;
-		}
-		// vertical bottom
-		if (controlSize.y < area.height
-				&& (controlOrigin.y + controlSize.y > scompOrigin.y
-						+ area.height)) {
-			y = controlOrigin.y + controlSize.y - area.height;
-		}
-		// vertical top - make sure the top of
-		// the control is showing
-		if (controlOrigin.y < y) {
-			if (controlSize.y < area.height)
-				y = controlOrigin.y + controlSize.y - area.height;
-			else
-				y = controlOrigin.y;
-		}
-
-		if (scompOrigin.x != x || scompOrigin.y != y) {
-			// scroll to reveal
-			scomp.setOrigin(x, y);
-		}
-	}
-
-	public static void ensureVisible(ScrolledComposite scomp, Control control,
-			MouseEvent e) {
-		Point controlOrigin = getControlLocation(scomp, control);
-		int rX = controlOrigin.x + e.x;
-		int rY = controlOrigin.y + e.y;
-		Rectangle area = scomp.getClientArea();
-		Point scompOrigin = scomp.getOrigin();
-
-		int x = scompOrigin.x;
-		int y = scompOrigin.y;
-		// System.out.println("Ensure: area="+area+", origin="+scompOrigin+",
-		// cloc="+controlOrigin+", csize="+controlSize+", x="+x+", y="+y);
-
-		// horizontal right
-		if (rX > scompOrigin.x + area.width) {
-			x = rX - area.width;
-		}
-		// horizontal left
-		else if (rX < x) {
-			x = rX;
-		}
-		// vertical bottom
-		if (rY > scompOrigin.y + area.height) {
-			y = rY - area.height;
-		}
-		// vertical top
-		else if (rY < y) {
-			y = rY;
-		}
-
-		if (scompOrigin.x != x || scompOrigin.y != y) {
-			// scroll to reveal
-			scomp.setOrigin(x, y);
-		}
-	}
-
-	public static Point getControlLocation(ScrolledComposite scomp,
-			Control control) {
-		int x = 0;
-		int y = 0;
-		Control content = scomp.getContent();
-		Control currentControl = control;
-		for (;;) {
-			if (currentControl == content)
-				break;
-			Point location = currentControl.getLocation();
-			// if (location.x > 0)
-			// x += location.x;
-			// if (location.y > 0)
-			// y += location.y;
-			x += location.x;
-			y += location.y;
-			currentControl = currentControl.getParent();
-		}
-		return new Point(x, y);
-	}
-
-	static void scrollVertical(ScrolledComposite scomp, boolean up) {
-		scroll(scomp, 0, up ? -V_SCROLL_INCREMENT : V_SCROLL_INCREMENT);
-	}
-
-	static void scrollHorizontal(ScrolledComposite scomp, boolean left) {
-		scroll(scomp, left ? -H_SCROLL_INCREMENT : H_SCROLL_INCREMENT, 0);
-	}
-
-	static void scrollPage(ScrolledComposite scomp, boolean up) {
-		Rectangle clientArea = scomp.getClientArea();
-		int increment = up ? -clientArea.height : clientArea.height;
-		scroll(scomp, 0, increment);
-	}
-
-	static void scroll(ScrolledComposite scomp, int xoffset, int yoffset) {
-		Point origin = scomp.getOrigin();
-		Point contentSize = scomp.getContent().getSize();
-		int xorigin = origin.x + xoffset;
-		int yorigin = origin.y + yoffset;
-		xorigin = Math.max(xorigin, 0);
-		xorigin = Math.min(xorigin, contentSize.x - 1);
-		yorigin = Math.max(yorigin, 0);
-		yorigin = Math.min(yorigin, contentSize.y - 1);
-		scomp.setOrigin(xorigin, yorigin);
-	}
-
-	public static void updatePageIncrement(ScrolledComposite scomp) {
-		ScrollBar vbar = scomp.getVerticalBar();
-		if (vbar != null) {
-			Rectangle clientArea = scomp.getClientArea();
-			int increment = clientArea.height - 5;
-			vbar.setPageIncrement(increment);
-		}
-		ScrollBar hbar = scomp.getHorizontalBar();
-		if (hbar != null) {
-			Rectangle clientArea = scomp.getClientArea();
-			int increment = clientArea.width - 5;
-			hbar.setPageIncrement(increment);
-		}
-	}
-
-	public static void processKey(int keyCode, Control c) {
-		ScrolledComposite scomp = FormUtil.getScrolledComposite(c);
-		if (scomp != null) {
-			if (c instanceof Combo)
-				return;
-			switch (keyCode) {
-			case SWT.ARROW_DOWN:
-				if (scomp.getData("novarrows") == null) //$NON-NLS-1$
-					FormUtil.scrollVertical(scomp, false);
-				break;
-			case SWT.ARROW_UP:
-				if (scomp.getData("novarrows") == null) //$NON-NLS-1$
-					FormUtil.scrollVertical(scomp, true);
-				break;
-			case SWT.ARROW_LEFT:
-				FormUtil.scrollHorizontal(scomp, true);
-				break;
-			case SWT.ARROW_RIGHT:
-				FormUtil.scrollHorizontal(scomp, false);
-				break;
-			case SWT.PAGE_UP:
-				FormUtil.scrollPage(scomp, true);
-				break;
-			case SWT.PAGE_DOWN:
-				FormUtil.scrollPage(scomp, false);
-				break;
-			}
-		}
-	}
-
-	public static boolean isWrapControl(Control c) {
-		if ((c.getStyle() & SWT.WRAP) != 0)
-			return true;
-		if (c instanceof Composite) {
-			return ((Composite) c).getLayout() instanceof ILayoutExtension;
-		}
-		return false;
-	}
-
-	public static int getWidthHint(int wHint, Control c) {
-		boolean wrap = isWrapControl(c);
-		return wrap ? wHint : SWT.DEFAULT;
-	}
-
-	public static int getHeightHint(int hHint, Control c) {
-		if (c instanceof Composite) {
-			Layout layout = ((Composite) c).getLayout();
-			if (layout instanceof ColumnLayout)
-				return hHint;
-		}
-		return SWT.DEFAULT;
-	}
-
-	public static int computeMinimumWidth(Control c, boolean changed) {
-		if (c instanceof Composite) {
-			Layout layout = ((Composite) c).getLayout();
-			if (layout instanceof ILayoutExtension)
-				return ((ILayoutExtension) layout).computeMinimumWidth(
-						(Composite) c, changed);
-		}
-		return c.computeSize(FormUtil.getWidthHint(5, c), SWT.DEFAULT, changed).x;
-	}
-
-	public static int computeMaximumWidth(Control c, boolean changed) {
-		if (c instanceof Composite) {
-			Layout layout = ((Composite) c).getLayout();
-			if (layout instanceof ILayoutExtension)
-				return ((ILayoutExtension) layout).computeMaximumWidth(
-						(Composite) c, changed);
-		}
-		return c.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed).x;
-	}
-
-	public static Form getForm(Control c) {
-		Composite parent = c.getParent();
-		while (parent != null) {
-			if (parent instanceof Form) {
-				return (Form) parent;
-			}
-			parent = parent.getParent();
-		}
-		return null;
-	}
-
-	public static Image createAlphaMashImage(Device device, Image srcImage) {
-		Rectangle bounds = srcImage.getBounds();
-		int alpha = 0;
-		int calpha = 0;
-		ImageData data = srcImage.getImageData();
-		// Create a new image with alpha values alternating
-		// between fully transparent (0) and fully opaque (255).
-		// This image will show the background through the
-		// transparent pixels.
-		for (int i = 0; i < bounds.height; i++) {
-			// scan line
-			alpha = calpha;
-			for (int j = 0; j < bounds.width; j++) {
-				// column
-				data.setAlpha(j, i, alpha);
-				alpha = alpha == 255 ? 0 : 255;
-			}
-			calpha = calpha == 255 ? 0 : 255;
-		}
-		return new Image(device, data);
-	}
-
-	public static boolean mnemonicMatch(String text, char key) {
-		char mnemonic = findMnemonic(text);
-		if (mnemonic == '\0')
-			return false;
-		return Character.toUpperCase(key) == Character.toUpperCase(mnemonic);
-	}
-
-	private static char findMnemonic(String string) {
-		int index = 0;
-		int length = string.length();
-		do {
-			while (index < length && string.charAt(index) != '&')
-				index++;
-			if (++index >= length)
-				return '\0';
-			if (string.charAt(index) != '&')
-				return string.charAt(index);
-			index++;
-		} while (index < length);
-		return '\0';
-	}
-	
-	public static void setFocusScrollingEnabled(Control c, boolean enabled) {
-		ScrolledComposite scomp = null;
-		
-		if (c instanceof ScrolledComposite)
-			scomp = (ScrolledComposite)c;
-		else
-			scomp = getScrolledComposite(c);
-		if (scomp!=null)
-			scomp.setData(FormUtil.FOCUS_SCROLLING, enabled?null:Boolean.FALSE);
-	}
-	
-	public static void setAntialias(GC gc, int style) {
-		if (!gc.getAdvanced()) {
-			gc.setAdvanced(true);
-			if (!gc.getAdvanced())
-				return;
-		}
-		gc.setAntialias(style);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormsResources.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormsResources.java
deleted file mode 100644
index b0927db..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormsResources.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Utility methods to access shared form-specific resources.
- * <p>
- * All methods declared on this class are static. This
- * class cannot be instantiated.
- * </p>
- * <p>
- * </p>
- */
-public class FormsResources {
-	private static Cursor busyCursor;
-	private static Cursor handCursor;
-	private static Cursor textCursor;
-	
-	public static Cursor getBusyCursor() {
-		if (busyCursor==null)
-			busyCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_WAIT);
-		return busyCursor;
-	}
-	public static Cursor getHandCursor() {
-		if (handCursor==null)
-			handCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_HAND);
-		return handCursor;
-	}
-	public static Cursor getTextCursor() {
-		if (textCursor==null)
-			textCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_IBEAM);
-		return textCursor;
-	}
-	
-	public static int getProgressDelay(int index) {
-		/*
-		if (progressDelays==null)
-			return 0;
-		return progressDelays[index];
-		*/
-		return 100;
-	}
-	
-	public static void shutdown() {
-		if (busyCursor!=null)
-			busyCursor.dispose();
-		if (handCursor!=null)
-			handCursor.dispose();
-		if (textCursor!=null)
-			textCursor.dispose();
-		busyCursor=null;
-		handCursor=null;
-		textCursor=null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IFocusSelectable.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IFocusSelectable.java
deleted file mode 100644
index e4b9a76..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IFocusSelectable.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.Rectangle;
-
-public interface IFocusSelectable {
-	boolean isFocusSelectable(Hashtable resourceTable);
-	boolean setFocus(Hashtable resourceTable, boolean direction);
-	Rectangle getBounds();
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IHyperlinkSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IHyperlinkSegment.java
deleted file mode 100644
index 57d11a9..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IHyperlinkSegment.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chriss Gross (schtoo@schtoo.com) - fix for 61670
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.graphics.GC;
-
-public interface IHyperlinkSegment extends IFocusSelectable {
-	String getHref();
-	String getText();
-	void paintFocus(GC gc, Color bg, Color fg, boolean selected, Rectangle repaintRegion);
-	boolean contains(int x, int y);
-	boolean intersects(Rectangle rect);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageHyperlinkSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageHyperlinkSegment.java
deleted file mode 100644
index b4afb01..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageHyperlinkSegment.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.*;
-
-public class ImageHyperlinkSegment extends ImageSegment implements
-		IHyperlinkSegment {
-	private String href;
-	private String text;
-
-	private String tooltipText;
-
-	public ImageHyperlinkSegment() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#setHref(java.lang.String)
-	 */
-	public void setHref(String href) {
-		this.href = href;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#getHref()
-	 */
-	public String getHref() {
-		return href;
-	}
-
-	public void paintFocus(GC gc, Color bg, Color fg, boolean selected,
-			Rectangle repaintRegion) {
-		Rectangle bounds = getBounds();
-		if (bounds == null)
-			return;
-		if (selected) {
-			gc.setBackground(bg);
-			gc.setForeground(fg);
-			gc.drawFocus(bounds.x, bounds.y, bounds.width, bounds.height);
-		} else {
-			gc.setForeground(bg);
-			gc.drawRectangle(bounds.x, bounds.y, bounds.width - 1,
-					bounds.height - 1);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#isWordWrapAllowed()
-	 */
-	public boolean isWordWrapAllowed() {
-		return !isNowrap();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#setWordWrapAllowed(boolean)
-	 */
-	public void setWordWrapAllowed(boolean value) {
-		setNowrap(!value);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#getText()
-	 */
-	public String getText() {
-		return text!=null?text:""; //$NON-NLS-1$
-	}
-	
-	public void setText(String text) {
-		this.text = text;
-	}
-
-	/**
-	 * @return Returns the tooltipText.
-	 */
-	public String getTooltipText() {
-		return tooltipText;
-	}
-
-	/**
-	 * @param tooltipText
-	 *            The tooltipText to set.
-	 */
-	public void setTooltipText(String tooltipText) {
-		this.tooltipText = tooltipText;
-	}
-	
-	public boolean isSelectable() {
-		return true;
-	}
-
-	public boolean isFocusSelectable(Hashtable resourceTable) {
-		return true;
-	}
-
-	public boolean setFocus(Hashtable resourceTable, boolean direction) {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageSegment.java
deleted file mode 100644
index a8e8613..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageSegment.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * @version 1.0
- * @author
- */
-public class ImageSegment extends ObjectSegment {
-	public static final String SEL_IMAGE_PREFIX = "isel."; //$NON-NLS-1$
-
-	public Image getImage(Hashtable objectTable) {
-		return getImage(getObjectId(), objectTable);
-	}
-
-	private Image getImage(String key, Hashtable objectTable) {
-		if (key == null)
-			return null;
-		Object obj = objectTable.get(key);
-		if (obj == null)
-			return null;
-		if (obj instanceof Image)
-			return (Image) obj;
-		return null;
-	}
-
-	private Image getSelectedImage(Hashtable objectTable, SelectionData selData) {
-		String key = SEL_IMAGE_PREFIX + getObjectId();
-		Image image = getImage(key, objectTable);
-		if (image==null) {
-			image = FormUtil.createAlphaMashImage(selData.display, getImage(objectTable));
-			if (image!=null)
-				objectTable.put(key, image);
-		}
-		return image;
-	}
-/*
-	private String getSelectedImageId() {
-		if (getObjectId() == null)
-			return null;
-		return SEL_IMAGE_PREFIX + getObjectId();
-	}
-*/
-	
-	public void paint(GC gc, boolean hover, Hashtable resourceTable, boolean selected, SelectionData selData, Rectangle repaintRegion) {
-		Image image = getImage(resourceTable);
-		int iwidth = 0;
-		int iheight = 0;
-		if (image != null) {
-			Rectangle rect = image.getBounds();
-			iwidth = rect.width + (isSelectable()?2:0);
-			iheight = rect.height + (isSelectable()?2:0);
-		} else
-			return;
-		Rectangle bounds = getBounds();
-		int ix = bounds.x+(isSelectable()?1:0);
-		int iy = bounds.y+(isSelectable()?1:0);
-
-		if (selData != null) {
-			int leftOffset = selData.getLeftOffset(bounds.height);
-			int rightOffset = selData.getRightOffset(bounds.height);
-			boolean firstRow = selData.isFirstSelectionRow(bounds.y,
-					bounds.height);
-			boolean lastRow = selData.isLastSelectionRow(bounds.y,
-					bounds.height);
-			boolean selectedRow = selData
-					.isSelectedRow(bounds.y, bounds.height);
-			if (selectedRow) {
-				if ((firstRow && leftOffset > ix) ||
-					(lastRow && rightOffset < ix + iwidth/2)) {
-					drawClipImage(gc, image, ix, iy, repaintRegion);
-				}
-				else {
-					Color savedBg = gc.getBackground();
-					gc.setBackground(selData.bg);
-					int sx = ix;
-					int sy = iy;
-					if (repaintRegion!=null) {
-						sx -= repaintRegion.x;
-						sy -= repaintRegion.y;
-					}
-					gc.fillRectangle(sx, sy, iwidth, iheight);
-					Image selImage = getSelectedImage(resourceTable, selData);
-					gc.drawImage(selImage, sx, sy);
-					gc.setBackground(savedBg);
-				}
-			}
-			else
-				drawClipImage(gc, image, ix, iy, repaintRegion);
-		} else
-			drawClipImage(gc, image, ix, iy, repaintRegion);
-		if (selected) {
-			int fx = bounds.x;
-			int fy = bounds.y;
-			if (repaintRegion!=null) {
-				fx -= repaintRegion.x;
-				fy -= repaintRegion.y;
-			}
-			Color fg = gc.getForeground();
-			gc.setForeground(gc.getBackground());
-			// Clean up to avoid canceling out XOR if it is already
-			// selected.
-			gc.drawRectangle(bounds.x, bounds.y, bounds.width - 1,
-					bounds.height - 1);
-			gc.setForeground(fg);
-			gc.drawFocus(fx, fy, bounds.width, bounds.height);
-		}
-	}
-	private void drawClipImage(GC gc, Image image, int ix, int iy, Rectangle repaintRegion) {
-		if (repaintRegion!=null) {
-			ix -= repaintRegion.x;
-			iy -= repaintRegion.y;
-		}
-		gc.drawImage(image, ix, iy);			
-	}
-
-	protected Point getObjectSize(Hashtable resourceTable, int wHint) {
-		Image image = getImage(resourceTable);
-		if (image==null)
-			return new Point(0, 0);
-		Rectangle ibounds = image.getBounds();
-		return new Point(ibounds.width, ibounds.height);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java
deleted file mode 100644
index fc098c6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.ArrayList;
-
-public class Locator implements Cloneable { 
-	public int indent;
-	public int x, y;
-	public int width;
-	public int leading;
-	public int rowHeight;
-	public int marginWidth;
-	public int marginHeight;
-	public int rowCounter;
-	public ArrayList heights;
-	
-	public void newLine() {
-		resetCaret();
-		y += rowHeight;
-		rowHeight = 0;
-	}
-
-	public Locator create() {
-		try {
-			return (Locator)clone();
-		}
-		catch (CloneNotSupportedException e) {
-			return null;
-		}
-	}
-	public void collectHeights() {
-		heights.add(new int [] { rowHeight, leading} );
-		rowCounter++;
-	}
-	public int getBaseline(int segmentHeight) {
-		return getBaseline(segmentHeight, true);
-
-	}
-	public int getMiddle(int segmentHeight, boolean text) {
-		if (heights!=null && heights.size()>rowCounter) {
-			int [] rdata = (int[])heights.get(rowCounter);
-			int rheight = rdata[0];
-			int rleading = rdata[1];
-			if (text)
-				return y + rheight/2 - segmentHeight/2 - rleading;
-			return y + rheight/2 - segmentHeight/2;
-		}
-		return y;		
-	}
-	public int getBaseline(int segmentHeight, boolean text) {
-		if (heights!=null && heights.size()>rowCounter) {
-			int [] rdata = (int[])heights.get(rowCounter);
-			int rheight = rdata[0];
-			int rleading = rdata[1];
-			if (text)
-				return y + rheight - segmentHeight - rleading;
-			return y + rheight - segmentHeight;
-		}
-		return y;
-	}
-	
-	public void resetCaret() {
-		x = getStartX();
-	}
-	public int getStartX() {
-		return marginWidth + indent;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.java
deleted file mode 100644
index 7a75fb2..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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++;
-		}
-		int ix = loc.x;
-		int iy = loc.y;
-		
-		if (alignment==MIDDLE)
-			iy = loc.getMiddle(objHeight, false);
-		else if (alignment==BOTTOM)
-			iy = loc.getBaseline(objHeight, false);
-		loc.x += objWidth;
-		loc.rowHeight = Math.max(loc.rowHeight, objHeight);
-		bounds = new Rectangle(ix, iy, objWidth, objHeight);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#computeSelection(org.eclipse.swt.graphics.GC, java.util.Hashtable, boolean, org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData) {
-		// TODO we should add this to the selection 
-		// if we want to support rich text
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Paragraph.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Paragraph.java
deleted file mode 100644
index ce6a48b..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, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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, boolean wrapAllowed,
-			HyperlinkSettings settings, String fontId) {
-		parseRegularText(text, expandURLs, wrapAllowed, settings, fontId, null);
-	}
-
-	public void parseRegularText(String text, boolean expandURLs, boolean wrapAllowed,
-			HyperlinkSettings settings, String fontId, String colorId) {
-		if (text.length() == 0)
-			return;
-		if (expandURLs) {
-			int loc = text.indexOf(HTTP);
-
-			if (loc == -1)
-				addSegment(new TextSegment(text, fontId, colorId, wrapAllowed));
-			else {
-				int textLoc = 0;
-				while (loc != -1) {
-					addSegment(new TextSegment(text.substring(textLoc, loc),
-							fontId, colorId, wrapAllowed));
-					boolean added = false;
-					for (textLoc = loc; textLoc < text.length(); textLoc++) {
-						char c = text.charAt(textLoc);
-						if (Character.isSpaceChar(c)) {
-							addHyperlinkSegment(text.substring(loc, textLoc),
-									settings, fontId);
-							added = true;
-							break;
-						}
-					}
-					if (!added) {
-						// there was no space - just end of text
-						addHyperlinkSegment(text.substring(loc), settings,
-								fontId);
-						break;
-					}
-					loc = text.indexOf(HTTP, textLoc);
-				}
-				if (textLoc < text.length()) {
-					addSegment(new TextSegment(text.substring(textLoc), fontId,
-							colorId, wrapAllowed));
-				}
-			}
-		} else {
-			addSegment(new TextSegment(text, fontId, colorId, wrapAllowed));
-		}
-	}
-
-	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 150f15e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ParagraphSegment.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.graphics.GC;
-
-/**
- * @version 	1.0
- * @author
- */
-public abstract class ParagraphSegment {
-	/**
-	 * Moves the locator according to the content of this segment.
-	 * @param gc
-	 * @param wHint
-	 * @param loc
-	 * @param objectTable
-	 * @param computeHeightOnly
-	 * @return <code>true</code> if text wrapped to the new line, <code>false</code> otherwise.
-	 */
-	public abstract boolean advanceLocator(GC gc, int wHint, Locator loc, Hashtable objectTable, boolean computeHeightOnly);
-	/**
-	 * Computes bounding rectangles and row heights of this segments.
-	 * @param gc
-	 * @param width
-	 * @param loc
-	 * @param resourceTable
-	 * @param selected
-	 */
-	public abstract void layout(GC gc, int width, Locator loc, Hashtable resourceTable, boolean selected);
-	/**
-	 * Paints this segment.
-	 * @param gc
-	 * @param hover
-	 * @param resourceTable
-	 * @param selected
-	 * @param selData
-	 * @param region
-	 */
-	public abstract void paint(GC gc, boolean hover, Hashtable resourceTable, boolean selected, SelectionData selData, Rectangle region);
-	/**
-	 * Paints this segment.
-	 * @param gc
-	 * @param resourceTable
-	 * @param selData
-	 */
-	public abstract void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData);	
-	/**
-	 * Tests if the coordinates are contained in one of the
-	 * bounding rectangles of this segment.
-	 * @param x
-	 * @param y
-	 * @return true if inside the bounding rectangle, false otherwise.
-	 */
-	public abstract boolean contains(int x, int y);
-	/**
-	 * Tests if the source rectangle intersects with
-	 * one of the bounding rectangles of this segment.
-	 * @param rect
-	 * @return true if the two rectangles intersect, false otherwise.
-	 */
-	public abstract boolean intersects(Rectangle rect);
-	/**
-	 * Returns the tool tip of this segment or <code>null</code>
-	 * if not defined.
-	 * @return tooltip or <code>null</code>.
-	 */
-	public String getTooltipText() {
-		return null;
-	}
-	/**
-	 * Clears the text metrics cache for the provided font id.
-	 * @param fontId the id of the font that the cache is kept for.
-	 * 
-	 */
-	public void clearCache(String fontId) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/PixelConverter.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/PixelConverter.java
deleted file mode 100644
index be1f31e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/PixelConverter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import org.eclipse.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();
-	}
-
-	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 8351965..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SWTUtil.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.widgets.Caret;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Utility class to simplify access to some SWT resources. 
- */
-public class SWTUtil {
-
-	/**
-	 * Returns the standard display to be used. The method first checks, if
-	 * the thread calling this method has an associated disaply. If so, this
-	 * display is returned. Otherwise the method returns the default display.
-	 */
-	public static Display getStandardDisplay() {
-		Display display;
-		display = Display.getCurrent();
-		if (display == null)
-			display = Display.getDefault();
-		return display;
-	}
-
-	/**
-	 * Returns the shell for the given widget. If the widget doesn't represent
-	 * a SWT object that manage a shell, <code>null</code> is returned.
-	 * 
-	 * @return the shell for the given widget
-	 */
-	public static Shell getShell(Widget widget) {
-		if (widget instanceof Control)
-			return ((Control) widget).getShell();
-		if (widget instanceof Caret)
-			return ((Caret) widget).getParent().getShell();
-		if (widget instanceof DragSource)
-			return ((DragSource) widget).getControl().getShell();
-		if (widget instanceof DropTarget)
-			return ((DropTarget) widget).getControl().getShell();
-		if (widget instanceof Menu)
-			return ((Menu) widget).getParent().getShell();
-		if (widget instanceof ScrollBar)
-			return ((ScrollBar) widget).getParent().getShell();
-
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SelectionData.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SelectionData.java
deleted file mode 100644
index c73a6bf..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SelectionData.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.ArrayList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Display;
-
-public class SelectionData {
-	public Display display;
-	public Color bg;
-	public Color fg;
-	private Point start;
-	private Point stop;
-	private ArrayList segments;
-	private boolean newLineNeeded;
-	
-	public SelectionData(MouseEvent e) {
-		display = e.display;
-		segments = new ArrayList();
-		start = new Point(e.x, e.y);
-		stop = new Point(e.x, e.y);
-		bg = e.display.getSystemColor(SWT.COLOR_LIST_SELECTION);
-		fg = e.display.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT);
-	}
-	
-	public void markNewLine() {
-		newLineNeeded=true;
-	}
-	public void addSegment(String text) {
-		if (newLineNeeded) {
-			segments.add(System.getProperty("line.separator")); //$NON-NLS-1$
-			newLineNeeded=false;
-		}
-		segments.add(text);
-	}
-
-	public void update(MouseEvent e) {
-		//Control c = (Control)e.widget;
-		stop.x = e.x;
-		stop.y = e.y;
-	}
-	public void reset() {
-		segments.clear();
-	}
-	public String getSelectionText() {
-		StringBuffer buf = new StringBuffer();
-		for (int i=0; i<segments.size(); i++) {
-			buf.append((String)segments.get(i));
-		}
-		return buf.toString();
-	}
-	public boolean canCopy() {
-		return segments.size()>0;
-	}
-	
-	private int getTopOffset() {
-		return start.y<stop.y?start.y:stop.y;
-	}
-	private int getBottomOffset() {
-		return start.y>stop.y?start.y:stop.y;
-	}
-	public int getLeftOffset(Locator locator) {
-		return isInverted(locator)? stop.x:start.x;
-	}
-	public int getLeftOffset(int rowHeight) {
-		return isInverted(rowHeight) ? stop.x:start.x;
-	}
-	public int getRightOffset(Locator locator) {
-		return isInverted(locator)? start.x: stop.x;
-	}
-	public int getRightOffset(int rowHeight) {
-		return isInverted(rowHeight) ? start.x:stop.x;
-	}
-	private boolean isInverted(Locator locator) {
-		int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0];
-		return isInverted(rowHeight);
-	}
-	private boolean isInverted(int rowHeight) {
-		int deltaY = start.y - stop.y;
-		if (Math.abs(deltaY) > rowHeight) {
-			// inter-row selection
-			return deltaY>0;
-		}
-		// intra-row selection
-		return start.x > stop.x; 
-	}
-	public boolean isEnclosed() {
-		return !start.equals(stop);
-	}
-
-	public boolean isSelectedRow(Locator locator) {
-		if (!isEnclosed())
-			return false;
-		int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0];
-		return isSelectedRow(locator.y, rowHeight);
-	}
-	public boolean isSelectedRow(int y, int rowHeight) {
-		if (!isEnclosed())
-			return false;
-		return (y + rowHeight >= getTopOffset() &&
-				y <= getBottomOffset());
-	}
-	public boolean isFirstSelectionRow(Locator locator) {
-		if (!isEnclosed())
-			return false;
-		int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0];
-		return (locator.y + rowHeight >= getTopOffset() &&
-				locator.y <= getTopOffset());
-	}
-	public boolean isFirstSelectionRow(int y, int rowHeight) {
-		if (!isEnclosed())
-			return false;
-		return (y + rowHeight >= getTopOffset() &&
-				y <= getTopOffset());
-	}
-	public boolean isLastSelectionRow(Locator locator) {
-		if (!isEnclosed())
-			return false;
-		int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0];
-		return (locator.y + rowHeight >=getBottomOffset() && 
-				locator.y <= getBottomOffset());
-	}
-	public boolean isLastSelectionRow(int y, int rowHeight) {
-		if (!isEnclosed())
-			return false;
-		return (y + rowHeight >=getBottomOffset() && 
-				y <= getBottomOffset());
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextHyperlinkSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextHyperlinkSegment.java
deleted file mode 100644
index bd89e32..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextHyperlinkSegment.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.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);
-	}
-	
-	protected void drawString(GC gc, String s, int clipX, int clipY) {
-		gc.drawString(s, clipX, clipY, false);
-	}
-
-	public String getTooltipText() {
-		return tooltipText;
-	}
-
-	public void setTooltipText(String tooltip) {
-		this.tooltipText = tooltip;
-	}
-	
-	public boolean isSelectable() {
-		return true;
-	}
-
-	public boolean isFocusSelectable(Hashtable resourceTable) {
-		return true;
-	}
-
-	public boolean setFocus(Hashtable resourceTable, boolean direction) {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java
deleted file mode 100644
index 667caf8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java
+++ /dev/null
@@ -1,732 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-
-import com.ibm.icu.text.BreakIterator;
-
-/**
- * @version 1.0
- * @author
- */
-public class TextSegment extends ParagraphSegment {
-	private String colorId;
-
-	private String fontId;
-
-	private String text;
-
-	protected boolean underline;
-
-	private boolean wrapAllowed = true;
-
-	protected Vector areaRectangles = new Vector();
-
-	private TextFragment[] textFragments;
-
-	class AreaRectangle {
-		Rectangle rect;
-
-		int from, to;
-
-		public AreaRectangle(Rectangle rect, int from, int to) {
-			this.rect = rect;
-			this.from = from;
-			this.to = to;
-		}
-
-		public boolean contains(int x, int y) {
-			return rect.contains(x, y);
-		}
-
-		public boolean intersects(Rectangle region) {
-			return rect.intersects(region);
-		}
-
-		public String getText() {
-			if (from == 0 && to == -1)
-				return TextSegment.this.getText();
-			if (from > 0 && to == -1)
-				return TextSegment.this.getText().substring(from);
-			return TextSegment.this.getText().substring(from, to);
-		}
-	}
-
-	static class SelectionRange {
-		public int start;
-
-		public int stop;
-
-		public SelectionRange() {
-			reset();
-		}
-
-		public void reset() {
-			start = -1;
-			stop = -1;
-		}
-	}
-
-	static class TextFragment {
-		short index;
-
-		short length;
-
-		public TextFragment(short index, short length) {
-			this.index = index;
-			this.length = length;
-		}
-	}
-
-	public TextSegment(String text, String fontId) {
-		this(text, fontId, null, true);
-	}
-
-	public TextSegment(String text, String fontId, String colorId) {
-		this(text, fontId, colorId, true);
-	}
-	
-	public TextSegment(String text, String fontId, String colorId, boolean wrapAllowed) {
-		this.text = cleanup(text);
-		this.fontId = fontId;
-		this.colorId = colorId;
-		this.wrapAllowed = wrapAllowed;
-	}	
-
-	private String cleanup(String text) {
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < text.length(); i++) {
-			char c = text.charAt(i);
-			if (c == '\n' || c == '\r' || c == '\f') {
-				if (i > 0)
-					buf.append(' ');
-			} else
-				buf.append(c);
-		}
-		return buf.toString();
-	}
-
-	public void setWordWrapAllowed(boolean value) {
-		wrapAllowed = value;
-	}
-
-	public boolean isWordWrapAllowed() {
-		return wrapAllowed;
-	}
-
-	public boolean isSelectable() {
-		return false;
-	}
-
-	public String getColorId() {
-		return colorId;
-	}
-
-	public String getText() {
-		return text;
-	}
-
-	void setText(String text) {
-		this.text = cleanup(text);
-		textFragments = null;
-	}
-
-	void setColorId(String colorId) {
-		this.colorId = colorId;
-	}
-
-	void setFontId(String fontId) {
-		this.fontId = fontId;
-		textFragments = null;
-	}
-
-	public boolean contains(int x, int y) {
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle ar = (AreaRectangle) areaRectangles.get(i);
-			if (ar.contains(x, y))
-				return true;
-			if (i<areaRectangles.size()-1) {
-				// test the gap
-				Rectangle top = ar.rect;
-				Rectangle bot = ((AreaRectangle)areaRectangles.get(i+1)).rect;
-				if (y >= top.y+top.height && y < bot.y) {
-					// in the gap
-					int left = Math.max(top.x, bot.x);
-					int right = Math.min(top.x+top.width, bot.x+bot.width);
-					if (x>=left && x<=right) {
-						return true;
-					}
-				}
-			}
-		}
-		return false;
-	}
-
-	public boolean intersects(Rectangle rect) {
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle ar = (AreaRectangle) areaRectangles.get(i);
-			if (ar.intersects(rect))
-				return true;
-			if (i<areaRectangles.size()-1) {
-				// test the gap
-				Rectangle top = ar.rect;
-				Rectangle bot = ((AreaRectangle)areaRectangles.get(i+1)).rect;
-				if (top.y+top.height < bot.y) {
-					int y = top.y+top.height;
-					int height = bot.y-y;
-					int left = Math.max(top.x, bot.x);
-					int right = Math.min(top.x+top.width, bot.x+bot.width);
-					Rectangle gap = new Rectangle(left, y, right-left, height);
-					if (gap.intersects(rect))
-						return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public Rectangle getBounds() {
-		int x = 0, y = 0;
-		int width = 0, height = 0;
-
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle ar = (AreaRectangle) areaRectangles.get(i);
-			if (i == 0) {
-				x = ar.rect.x;
-				y = ar.rect.y;
-			} else
-				x = Math.min(ar.rect.x, x);
-			width = Math.max(ar.rect.width, width);
-			height += ar.rect.height;
-		}
-		return new Rectangle(x, y, width, height);
-	}
-
-	public boolean advanceLocator(GC gc, int wHint, Locator locator,
-			Hashtable objectTable, boolean computeHeightOnly) {
-		Font oldFont = null;
-		if (fontId != null) {
-			oldFont = gc.getFont();
-			Font newFont = (Font) objectTable.get(fontId);
-			if (newFont != null)
-				gc.setFont(newFont);
-		}
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-		boolean newLine = false;
-
-		if (wHint == SWT.DEFAULT || !wrapAllowed) {
-			Point extent = gc.textExtent(text);
-			int totalExtent = locator.x+extent.x;
-			if (isSelectable())
-				totalExtent+=1;
-
-			if (wHint != SWT.DEFAULT && totalExtent > 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;
-
-			// i != 0 || locator.x > locator.getStartX() + (isSelectable() ? 1 : 0) means:
-			// only wrap on the first fragment if we are not at the start of a line
-			if ((i != 0 || locator.x > locator.getStartX() + (isSelectable() ? 1 : 0)) && currentExtent + textFragment.length > wHint) {
-				// overflow
-				int lineWidth = currentExtent;
-				locator.rowHeight = Math.max(locator.rowHeight, lineExtent.y);
-				locator.leading = Math.max(locator.leading, fm.getLeading());
-				if (computeHeightOnly)
-					locator.collectHeights();
-				locator.x = locator.indent;
-				locator.y += locator.rowHeight;
-				locator.rowHeight = 0;
-				locator.leading = 0;
-				lineExtent.x = 0;
-				lineExtent.y = 0;
-				width = Math.max(width, lineWidth);
-				newLine = true;
-			}
-			lineExtent.x += textFragment.length;
-			lineExtent.y = Math.max(lineHeight, lineExtent.y);
-		}
-		int lineWidth = lineExtent.x;
-		if (isSelectable())
-			lineWidth += 1;
-		locator.x += lineWidth;
-		locator.width = width;
-		locator.rowHeight = Math.max(locator.rowHeight, lineExtent.y);
-		locator.leading = Math.max(locator.leading, fm.getLeading());
-		if (oldFont != null) {
-			gc.setFont(oldFont);
-		}
-		return newLine;
-	}
-
-	/**
-	 * @param gc
-	 * @param width
-	 * @param locator
-	 * @param selected
-	 * @param selData
-	 * @param color
-	 * @param fm
-	 * @param lineHeight
-	 * @param descent
-	 */
-	private void layoutWithoutWrapping(GC gc, int width, Locator locator,
-			boolean selected, FontMetrics fm, int lineHeight, int descent) {
-		Point extent = gc.textExtent(text);
-		int ewidth = extent.x;
-		if (isSelectable())
-			ewidth += 1;
-		if (locator.x + ewidth > width-locator.marginWidth) {
-			// new line
-			locator.resetCaret();
-			locator.y += locator.rowHeight;
-			locator.rowHeight = 0;
-			locator.rowCounter++;
-		}
-		int ly = locator.getBaseline(fm.getHeight() - fm.getLeading());
-		//int lineY = ly + lineHeight - descent + 1;
-		Rectangle br = new Rectangle(locator.x, ly, ewidth,
-				lineHeight - descent + 3);
-		areaRectangles.add(new AreaRectangle(br, 0, -1));
-		locator.x += ewidth;
-		locator.width = ewidth;
-		locator.rowHeight = Math.max(locator.rowHeight, extent.y);
-	}
-
-	protected int convertOffsetToStringIndex(GC gc, String s, int x,
-			int swidth, int selOffset) {
-		int index = s.length();
-		while (index > 0 && x + swidth > selOffset) {
-			index--;
-			String ss = s.substring(0, index);
-			swidth = gc.textExtent(ss).x;
-		}
-		return index;
-	}
-
-	public void paintFocus(GC gc, Color bg, Color fg, boolean selected,
-			Rectangle repaintRegion) {
-		if (areaRectangles == null)
-			return;
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle areaRectangle = (AreaRectangle) areaRectangles.get(i);
-			Rectangle br = areaRectangle.rect;
-			int bx = br.x;
-			int by = br.y;
-			if (repaintRegion != null) {
-				bx -= repaintRegion.x;
-				by -= repaintRegion.y;
-			}
-			if (selected) {
-				gc.setBackground(bg);
-				gc.setForeground(fg);
-				gc.drawFocus(bx, by, br.width, br.height);
-			} else {
-				gc.setForeground(bg);
-				gc.drawRectangle(bx, by, br.width - 1, br.height - 1);
-			}
-		}
-	}
-
-	public void paint(GC gc, boolean hover, Hashtable resourceTable,
-			boolean selected, SelectionData selData, Rectangle repaintRegion) {
-		this.paint(gc, hover, resourceTable, selected, false, selData,
-				repaintRegion);
-	}
-
-	protected void paint(GC gc, boolean hover, Hashtable resourceTable,
-			boolean selected, boolean rollover, SelectionData selData,
-			Rectangle repaintRegion) {
-		Font oldFont = null;
-		Color oldColor = null;
-		Color oldBg = null;
-
-		// apply segment-specific font, color and background
-		if (fontId != null) {
-			oldFont = gc.getFont();
-			Font newFont = (Font) resourceTable.get(fontId);
-			if (newFont != null)
-				gc.setFont(newFont);
-		}
-		if (!hover && colorId != null) {
-			oldColor = gc.getForeground();
-			Color newColor = (Color) resourceTable.get(colorId);
-			if (newColor != null)
-				gc.setForeground(newColor);
-		}
-		oldBg = gc.getBackground();
-
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-		int descent = fm.getDescent();
-
-		// paint area rectangles of the segment
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle areaRectangle = (AreaRectangle) areaRectangles.get(i);
-			Rectangle rect = areaRectangle.rect;
-			String text = areaRectangle.getText();
-			Point extent = gc.textExtent(text);
-			int textX = rect.x + (isSelectable()?1:0);
-			int lineY = rect.y + lineHeight - descent + 1;
-			paintString(gc, text, extent.x, textX, rect.y, lineY, selData,
-					rect, hover, rollover, repaintRegion);
-			if (selected) {
-				int fx = rect.x;
-				int fy = rect.y;
-				if (repaintRegion != null) {
-					fx -= repaintRegion.x;
-					fy -= repaintRegion.y;
-				}
-				//To avoid partially cancelling the focus by painting over
-				//X-ORed pixels, first cancel it yourself
-				Color fg = gc.getForeground();
-				gc.setForeground(oldBg);
-				gc.drawRectangle(fx, fy, rect.width - 1, rect.height - 1);
-				gc.setForeground(fg);
-				gc.drawFocus(fx, fy, rect.width, rect.height);
-			}
-		}
-		// restore GC resources
-		if (oldFont != null) {
-			gc.setFont(oldFont);
-		}
-		if (oldColor != null) {
-			gc.setForeground(oldColor);
-		}
-		if (oldBg != null) {
-			gc.setBackground(oldBg);
-		}
-	}
-
-	public void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData) {
-		Font oldFont = null;
-
-		if (fontId != null) {
-			oldFont = gc.getFont();
-			Font newFont = (Font) resourceTable.get(fontId);
-			if (newFont != null)
-				gc.setFont(newFont);
-		}
-
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle areaRectangle = (AreaRectangle) areaRectangles.get(i);
-			Rectangle rect = areaRectangle.rect;
-			String text = areaRectangle.getText();
-			Point extent = gc.textExtent(text);
-			computeSelection(gc, text, extent.x, selData,
-					rect);
-		}
-		// restore GC resources
-		if (oldFont != null) {
-			gc.setFont(oldFont);
-		}
-	}
-
-	private void paintString(GC gc, String s, int swidth, int x, int y,
-			int lineY, SelectionData selData, Rectangle bounds, boolean hover,
-			boolean rolloverMode, Rectangle repaintRegion) {
-		// repaints one area rectangle
-		if (selData != null && selData.isEnclosed()) {
-			Color savedBg = gc.getBackground();
-			Color savedFg = gc.getForeground();
-			int leftOffset = selData.getLeftOffset(bounds.height);
-			int rightOffset = selData.getRightOffset(bounds.height);
-			boolean firstRow = selData.isFirstSelectionRow(bounds.y,
-					bounds.height);
-			boolean lastRow = selData.isLastSelectionRow(bounds.y,
-					bounds.height);
-			boolean selectedRow = selData
-					.isSelectedRow(bounds.y, bounds.height);
-
-			int sstart = -1;
-			int sstop = -1;
-
-			if ((firstRow && x + swidth < leftOffset)
-					|| (lastRow && x > rightOffset)) {
-				paintStringSegment(gc, s, gc.textExtent(s).x, x, y, lineY,
-						hover, rolloverMode, repaintRegion);
-				return;
-			}
-
-			if (firstRow && bounds.x + swidth > leftOffset) {
-				sstart = convertOffsetToStringIndex(gc, s, bounds.x, swidth,
-						leftOffset);
-			}
-			if (lastRow && bounds.x + swidth > rightOffset) {
-				sstop = convertOffsetToStringIndex(gc, s, bounds.x, swidth,
-						rightOffset);
-			}
-
-			if (firstRow && sstart != -1) {
-				String left = s.substring(0, sstart);
-				int width = gc.textExtent(left).x;
-				paintStringSegment(gc, left, width, x, y, lineY, hover,
-						rolloverMode, repaintRegion);
-				x += width;
-			}
-			if (selectedRow) {
-				int lindex = sstart != -1 ? sstart : 0;
-				int rindex = sstop != -1 ? sstop : s.length();
-				String mid = s.substring(lindex, rindex);
-				Point extent = gc.textExtent(mid);
-				gc.setForeground(selData.fg);
-				gc.setBackground(selData.bg);
-				gc.fillRectangle(x, y, extent.x, extent.y);
-				paintStringSegment(gc, mid, extent.x, x, y, lineY, hover,
-						rolloverMode, repaintRegion);
-				x += extent.x;
-				gc.setForeground(savedFg);
-				gc.setBackground(savedBg);
-			} else {
-				paintStringSegment(gc, s, gc.textExtent(s).x, x, y, lineY,
-						hover, rolloverMode, repaintRegion);
-			}
-			if (lastRow && sstop != -1) {
-				String right = s.substring(sstop);
-				paintStringSegment(gc, right, gc.textExtent(right).x, x, y,
-						lineY, hover, rolloverMode, repaintRegion);
-			}
-		} else {
-			paintStringSegment(gc, s, gc.textExtent(s).x, x, y, lineY, hover,
-					rolloverMode, repaintRegion);
-		}
-	}
-
-	private void computeSelection(GC gc, String s, int swidth, SelectionData selData, Rectangle bounds) {
-		int leftOffset = selData.getLeftOffset(bounds.height);
-		int rightOffset = selData.getRightOffset(bounds.height);
-		boolean firstRow = selData.isFirstSelectionRow(bounds.y, bounds.height);
-		boolean lastRow = selData.isLastSelectionRow(bounds.y, bounds.height);
-		boolean selectedRow = selData.isSelectedRow(bounds.y, bounds.height);
-
-		int sstart = -1;
-		int sstop = -1;
-
-		if (firstRow && bounds.x + swidth > leftOffset) {
-			sstart = convertOffsetToStringIndex(gc, s, bounds.x, swidth,
-					leftOffset);
-		}
-		if (lastRow && bounds.x + swidth > rightOffset) {
-			sstop = convertOffsetToStringIndex(gc, s, bounds.x, swidth,
-					rightOffset);
-		}
-
-		if (selectedRow) {
-			int lindex = sstart != -1 ? sstart : 0;
-			int rindex = sstop != -1 ? sstop : s.length();
-			String mid = s.substring(lindex, rindex);
-			selData.addSegment(mid);
-		}
-	}
-
-	/**
-	 * @param gc
-	 * @param s
-	 * @param x
-	 * @param y
-	 * @param lineY
-	 * @param hover
-	 * @param rolloverMode
-	 */
-	private void paintStringSegment(GC gc, String s, int swidth, int x, int y,
-			int lineY, boolean hover, boolean rolloverMode,
-			Rectangle repaintRegion) {
-		boolean reverse = false;
-		int clipX = x;
-		int clipY = y;
-		int clipLineY = lineY;
-		if (repaintRegion != null) {
-			clipX -= repaintRegion.x;
-			clipY -= repaintRegion.y;
-			clipLineY -= repaintRegion.y;
-		}
-		if (underline || hover || rolloverMode) {
-			if (rolloverMode && !hover)
-				reverse = true;
-		}
-		if (reverse) {
-			drawUnderline(gc, swidth, clipX, clipLineY, hover, rolloverMode);
-			drawString(gc, s, clipX, clipY);
-		} else {
-			drawString(gc, s, clipX, clipY);
-			drawUnderline(gc, swidth, clipX, clipLineY, hover, rolloverMode);
-		}
-	}
-	
-	protected void drawString(GC gc, String s, int clipX, int clipY) {
-		gc.drawString(s, clipX, clipY, true);
-	}
-
-	private void drawUnderline(GC gc, int swidth, int x, int y, boolean hover,
-			boolean rolloverMode) {
-		if (underline || 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;
-				// (i != 0 || locator.x > locator.getStartX() + (isSelectable() ? 1 : 0)) means:
-				// only wrap on the first fragment if we are not at the start of a line
-				if ((i != 0 || locator.x > locator.getStartX() + (isSelectable() ? 1 : 0)) && locator.x + lineExtent.x + fragment.length > rightEdge) {
-					// overflow
-					int lineWidth = locator.x + lineExtent.x;
-					if (isSelectable())
-						lineWidth += 1;
-					int ly = locator.getBaseline(lineHeight - fm.getLeading());
-					Rectangle br = new Rectangle(isSelectable()?
-							locator.x - 1:locator.x, ly,
-							isSelectable()?lineExtent.x + 1:lineExtent.x, lineHeight - descent + 3);
-					areaRectangles
-							.add(new AreaRectangle(br, lineStart, lastLoc));
-
-					locator.rowHeight = Math.max(locator.rowHeight,
-							lineExtent.y);
-					locator.resetCaret();
-					if (isSelectable())
-						locator.x += 1;					
-					locator.y += locator.rowHeight;
-					locator.rowCounter++;
-					locator.rowHeight = 0;
-					lineStart = lastLoc;
-					lineExtent.x = 0;
-					lineExtent.y = 0;
-				}
-				lastLoc = breakLoc;
-				lineExtent.x += fragment.length;
-				lineExtent.y = Math.max(lineHeight, lineExtent.y);
-			}
-			//String lastLine = text.substring(lineStart, lastLoc);
-			int ly = locator.getBaseline(lineHeight - fm.getLeading());
-			int lastWidth = lineExtent.x;
-			if (isSelectable())
-				lastWidth += 1;
-			Rectangle br = new Rectangle(isSelectable()?locator.x - 1:locator.x, ly, 
-					isSelectable()?lineExtent.x + 1:lineExtent.x,
-					lineHeight - descent + 3);
-			//int lineY = ly + lineHeight - descent + 1;
-			areaRectangles.add(new AreaRectangle(br, lineStart, lastLoc));
-			locator.x += lastWidth;
-			locator.rowHeight = Math.max(locator.rowHeight, lineExtent.y);
-		}
-		if (oldFont != null) {
-			gc.setFont(oldFont);
-		}
-	}
-
-	private void computeTextFragments(GC gc) {
-		if (textFragments != null)
-			return;
-		ArrayList list = new ArrayList();
-		BreakIterator wb = BreakIterator.getLineInstance();
-		wb.setText(getText());
-		int cursor = 0;
-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {
-			if (loc == 0)
-				continue;
-			String word = text.substring(cursor, loc);
-			Point extent = gc.textExtent(word);
-			list.add(new TextFragment((short) loc, (short) extent.x));
-			cursor = loc;
-		}
-		textFragments = (TextFragment[]) list.toArray(new TextFragment[list
-				.size()]);
-	}
-	
-	public void clearCache(String fontId) {
-		if (fontId==null && (this.fontId==null||this.fontId.equals(FormTextModel.BOLD_FONT_ID)))
-			textFragments = null;
-		else if (fontId!=null && this.fontId!=null && fontId.equals(this.fontId))
-			textFragments = null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TitleRegion.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TitleRegion.java
deleted file mode 100644
index a910810..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TitleRegion.java
+++ /dev/null
@@ -1,535 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceEffect;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-import org.eclipse.ui.forms.widgets.SizeCache;
-import org.eclipse.ui.forms.widgets.Twistie;
-import org.eclipse.ui.internal.forms.IMessageToolTipManager;
-
-/**
- * Form heading title.
- */
-public class TitleRegion extends Canvas {
-	public static final int STATE_NORMAL = 0;
-	public static final int STATE_HOVER_LIGHT = 1;
-	public static final int STATE_HOVER_FULL = 2;
-	private int hoverState;
-	private static final int HMARGIN = 1;
-	private static final int VMARGIN = 5;
-	private static final int SPACING = 5;
-	private static final int ARC_WIDTH = 20;
-	private static final int ARC_HEIGHT = 20;
-	private Image image;
-	private BusyIndicator busyLabel;
-	private Label titleLabel;
-	private SizeCache titleCache;
-	private int fontHeight = -1;
-	private int fontBaselineHeight = -1;
-	private MenuHyperlink menuHyperlink;
-	private MenuManager menuManager;
-	private boolean dragSupport;
-	private int dragOperations;
-	private Transfer[] dragTransferTypes;
-	private DragSourceListener dragListener;
-	private DragSource dragSource;
-	private Image dragImage;
-
-	private class HoverListener implements MouseTrackListener,
-			MouseMoveListener {
-
-		public void mouseEnter(MouseEvent e) {
-			setHoverState(STATE_HOVER_FULL);
-		}
-
-		public void mouseExit(MouseEvent e) {
-			setHoverState(STATE_NORMAL);
-		}
-
-		public void mouseHover(MouseEvent e) {
-		}
-
-		public void mouseMove(MouseEvent e) {
-			if (e.button > 0)
-				setHoverState(STATE_NORMAL);
-			else
-				setHoverState(STATE_HOVER_FULL);
-		}
-	}
-
-	private class MenuHyperlink extends Twistie {
-		private boolean firstTime = true;
-
-		public MenuHyperlink(Composite parent, int style) {
-			super(parent, style);
-			setExpanded(true);
-		}
-
-		public void setExpanded(boolean expanded) {
-			if (firstTime) {
-				super.setExpanded(expanded);
-				firstTime = false;
-			} else {
-				Menu menu = menuManager.createContextMenu(menuHyperlink);
-				menu.setVisible(true);
-			}
-		}
-	}
-
-	private class TitleRegionLayout extends Layout implements ILayoutExtension {
-
-		protected Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			return layout(composite, false, 0, 0, wHint, hHint, flushCache);
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			Rectangle carea = composite.getClientArea();
-			layout(composite, true, carea.x, carea.y, carea.width,
-					carea.height, flushCache);
-		}
-
-		private Point layout(Composite composite, boolean move, int x, int y,
-				int width, int height, boolean flushCache) {
-			int iwidth = width == SWT.DEFAULT ? SWT.DEFAULT : width - HMARGIN
-					* 2;
-			Point bsize = null;
-			Point tsize = null;
-			Point msize = null;
-
-			if (busyLabel != null) {
-				bsize = busyLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			if (menuManager != null) {
-				menuHyperlink.setVisible(!menuManager.isEmpty()
-						&& titleLabel.getVisible());
-				if (menuHyperlink.getVisible())
-					msize = menuHyperlink.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			if (flushCache)
-				titleCache.flush();
-			titleCache.setControl(titleLabel);
-			int twidth = iwidth == SWT.DEFAULT ? iwidth : iwidth - SPACING * 2;
-			if (bsize != null && twidth != SWT.DEFAULT)
-				twidth -= bsize.x + SPACING;
-			if (msize != null && twidth != SWT.DEFAULT)
-				twidth -= msize.x + SPACING;
-			if (titleLabel.getVisible()) {
-				tsize = titleCache.computeSize(twidth, SWT.DEFAULT);
-				if (twidth != SWT.DEFAULT) {
-					// correct for the case when width hint is larger
-					// than the maximum width - this is when the text
-					// can be rendered on one line with width to spare
-					int maxWidth = titleCache.computeSize(SWT.DEFAULT,
-							SWT.DEFAULT).x;
-					tsize.x = Math.min(tsize.x, maxWidth);
-					// System.out.println("twidth="+twidth+",
-					// tsize.x="+tsize.x); //$NON-NLS-1$//$NON-NLS-2$
-				}
-			} else
-				tsize = new Point(0, 0);
-			Point size = new Point(width, height);
-			if (!move) {
-				// compute size
-				size.x = tsize.x > 0 ? HMARGIN * 2 + SPACING * 2 + tsize.x : 0;
-				size.y = tsize.y;
-				if (bsize != null) {
-					size.x += bsize.x + SPACING;
-					size.y = Math.max(size.y, bsize.y);
-				}
-				if (msize != null) {
-					size.x += msize.x + SPACING;
-					size.y = Math.max(size.y, msize.y);
-				}
-				if (size.y > 0)
-					size.y += VMARGIN * 2;
-				// System.out.println("Compute size: width="+width+",
-				// size.x="+size.x); //$NON-NLS-1$ //$NON-NLS-2$
-			} else {
-				// position controls
-				int xloc = x + HMARGIN + SPACING;
-				int yloc = y + VMARGIN;
-				if (bsize != null) {
-					busyLabel.setBounds(xloc,
-							// yloc + height / 2 - bsize.y / 2,
-							yloc + (getFontHeight() >= bsize.y ? getFontHeight() : bsize.y) - 1 - bsize.y,
-							bsize.x, bsize.y);
-					xloc += bsize.x + SPACING;
-				}
-				if (titleLabel.getVisible()) {
-					int tw = width - HMARGIN * 2 - SPACING * 2;
-					if (bsize != null)
-						tw -= bsize.x + SPACING;
-					if (msize != null)
-						tw -= msize.x + SPACING;
-					titleLabel.setBounds(xloc,
-					// yloc + height / 2 - tsize.y / 2,
-							yloc, tw, tsize.y);
-					// System.out.println("tw="+tw); //$NON-NLS-1$
-					xloc += tw + SPACING;
-				}
-				if (msize != null) {
-					menuHyperlink.setBounds(xloc, yloc
-							+ getFontHeight() / 2 - msize.y / 2,
-							msize.x, msize.y);
-				}
-			}
-			return size;
-		}
-
-		public int computeMaximumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-		}
-
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, 0, SWT.DEFAULT, changed).x;
-		}
-	}
-
-	public TitleRegion(Composite parent) {
-		super(parent, SWT.NULL);
-		titleLabel = new Label(this, SWT.WRAP);
-		titleLabel.setVisible(false);
-		titleCache = new SizeCache();
-		super.setLayout(new TitleRegionLayout());
-		hookHoverListeners();
-		addListener(SWT.Dispose, new Listener() {
-			public void handleEvent(Event e) {
-				if (dragImage != null) {
-					dragImage.dispose();
-					dragImage = null;
-				}
-			}
-		});
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#forceFocus()
-	 */
-	public boolean forceFocus() {
-		return false;
-	}
-
-	private Color getColor(String key) {
-		return (Color) ((FormHeading) getParent()).colors.get(key);
-	}
-
-	private void hookHoverListeners() {
-		HoverListener listener = new HoverListener();
-		addMouseTrackListener(listener);
-		addMouseMoveListener(listener);
-		titleLabel.addMouseTrackListener(listener);
-		titleLabel.addMouseMoveListener(listener);
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				onPaint(e);
-			}
-		});
-	}
-
-	private void onPaint(PaintEvent e) {
-		if (hoverState == STATE_NORMAL)
-			return;
-		GC gc = e.gc;
-		Rectangle carea = getClientArea();
-		gc.setBackground(getHoverBackground());
-		int savedAntialias = gc.getAntialias();
-		FormUtil.setAntialias(gc, SWT.ON);
-		gc.fillRoundRectangle(carea.x + HMARGIN, carea.y + 2, carea.width
-				- HMARGIN * 2, carea.height - 4, ARC_WIDTH, ARC_HEIGHT);
-		FormUtil.setAntialias(gc, savedAntialias);
-	}
-
-	private Color getHoverBackground() {
-		if (hoverState == STATE_NORMAL)
-			return null;
-		Color color = getColor(hoverState == STATE_HOVER_FULL ? IFormColors.H_HOVER_FULL
-				: IFormColors.H_HOVER_LIGHT);
-		if (color == null)
-			color = getDisplay()
-					.getSystemColor(
-							hoverState == STATE_HOVER_FULL ? SWT.COLOR_WIDGET_BACKGROUND
-									: SWT.COLOR_WIDGET_LIGHT_SHADOW);
-		return color;
-	}
-
-	public void setHoverState(int state) {
-		if (dragSource == null || this.hoverState == state)
-			return;
-		this.hoverState = state;
-		Color color = getHoverBackground();
-		titleLabel.setBackground(color != null ? color
-				: getColor(FormHeading.COLOR_BASE_BG));
-		if (busyLabel != null)
-			busyLabel.setBackground(color != null ? color
-					: getColor(FormHeading.COLOR_BASE_BG));
-		if (menuHyperlink != null)
-			menuHyperlink.setBackground(color != null ? color
-					: getColor(FormHeading.COLOR_BASE_BG));
-		redraw();
-	}
-
-	/**
-	 * Fully delegates the size computation to the internal layout manager.
-	 */
-	public final Point computeSize(int wHint, int hHint, boolean changed) {
-		return ((TitleRegionLayout) getLayout()).computeSize(this, wHint,
-				hHint, changed);
-	}
-
-	public final void setLayout(Layout layout) {
-		// do nothing
-	}
-
-	public Image getImage() {
-		return image;
-	}
-
-	public void setImage(Image image) {
-		this.image = image;
-	}
-
-	public void updateImage(Image newImage, boolean doLayout) {
-		Image theImage = newImage != null ? newImage : this.image;
-
-		if (theImage != null) {
-			ensureBusyLabelExists();
-		} else if (busyLabel != null) {
-			if (!busyLabel.isBusy()) {
-				busyLabel.dispose();
-				busyLabel = null;
-			}
-		}
-		if (busyLabel != null) {
-			busyLabel.setImage(theImage);
-		}
-		if (doLayout)
-			layout();
-	}
-
-	public void updateToolTip(String toolTip) {
-		if (busyLabel != null)
-			busyLabel.setToolTipText(toolTip);
-	}
-
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		titleLabel.setBackground(bg);
-		if (busyLabel != null)
-			busyLabel.setBackground(bg);
-		if (menuHyperlink != null)
-			menuHyperlink.setBackground(bg);
-	}
-
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		titleLabel.setForeground(fg);
-		if (menuHyperlink != null)
-			menuHyperlink.setForeground(fg);
-	}
-
-	public void setText(String text) {
-		if (text != null)
-			titleLabel.setText(text);
-		titleLabel.setVisible(text != null);
-		layout();
-		redraw();
-	}
-
-	public String getText() {
-		return titleLabel.getText();
-	}
-
-	public void setFont(Font font) {
-		super.setFont(font);
-		titleLabel.setFont(font);
-		fontHeight = -1;
-		fontBaselineHeight = -1;
-		layout();
-	}
-
-	private void ensureBusyLabelExists() {
-		if (busyLabel == null) {
-			busyLabel = new BusyIndicator(this, SWT.NULL);
-			busyLabel.setBackground(getColor(FormHeading.COLOR_BASE_BG));
-			HoverListener listener = new HoverListener();
-			busyLabel.addMouseTrackListener(listener);
-			busyLabel.addMouseMoveListener(listener);
-			if (menuManager != null)
-				busyLabel.setMenu(menuManager.createContextMenu(this));
-			if (dragSupport)
-				addDragSupport(busyLabel, dragOperations, dragTransferTypes, dragListener);
-			IMessageToolTipManager mng = ((FormHeading) getParent())
-					.getMessageToolTipManager();
-			if (mng != null)
-				mng.createToolTip(busyLabel, true);
-		}
-	}
-
-	private void createMenuHyperlink() {
-		menuHyperlink = new MenuHyperlink(this, SWT.NULL);
-		menuHyperlink.setBackground(getColor(FormHeading.COLOR_BASE_BG));
-		menuHyperlink.setDecorationColor(getForeground());
-		menuHyperlink.setHoverDecorationColor(getDisplay().getSystemColor(SWT.COLOR_LIST_FOREGROUND));
-		HoverListener listener = new HoverListener();
-		menuHyperlink.addMouseTrackListener(listener);
-		menuHyperlink.addMouseMoveListener(listener);
-		if (dragSupport)
-			addDragSupport(menuHyperlink, dragOperations, dragTransferTypes, dragListener);
-	}
-
-	/**
-	 * Sets the form's busy state. Busy form will display 'busy' animation in
-	 * the area of the title image.
-	 * 
-	 * @param busy
-	 *            the form's busy state
-	 */
-
-	public boolean setBusy(boolean busy) {
-		if (busy)
-			ensureBusyLabelExists();
-		else if (busyLabel == null)
-			return false;
-		if (busy == busyLabel.isBusy())
-			return false;
-		busyLabel.setBusy(busy);
-		if (busyLabel.getImage() == null) {
-			layout();
-			return true;
-		}
-		return false;
-	}
-
-	public boolean isBusy() {
-		return busyLabel != null && busyLabel.isBusy();
-	}
-
-	/*
-	 * Returns the complete height of the font.
-	 */
-	public int getFontHeight() {
-		if (fontHeight == -1) {
-			Font font = getFont();
-			GC gc = new GC(getDisplay());
-			gc.setFont(font);
-			FontMetrics fm = gc.getFontMetrics();
-			fontHeight = fm.getHeight();
-			gc.dispose();
-		}
-		return fontHeight;
-	}
-
-	/*
-	 * Returns the height of the font starting at the baseline,
-	 * i.e. without the descent.
-	 */
-	public int getFontBaselineHeight() {
-		if (fontBaselineHeight == -1) {
-			Font font = getFont();
-			GC gc = new GC(getDisplay());
-			gc.setFont(font);
-			FontMetrics fm = gc.getFontMetrics();
-			fontBaselineHeight = fm.getHeight() - fm.getDescent();
-			gc.dispose();
-		}
-		return fontBaselineHeight;
-	}
-
-	public IMenuManager getMenuManager() {
-		if (menuManager == null) {
-			menuManager = new MenuManager();
-			Menu menu = menuManager.createContextMenu(this);
-			setMenu(menu);
-			titleLabel.setMenu(menu);
-			if (busyLabel != null)
-				busyLabel.setMenu(menu);
-			createMenuHyperlink();
-		}
-		return menuManager;
-	}
-
-	public void addDragSupport(int operations, Transfer[] transferTypes,
-			DragSourceListener listener) {
-		dragSupport = true;
-		dragOperations = operations;
-		dragTransferTypes = transferTypes;
-		dragListener = listener;
-		dragSource = addDragSupport(titleLabel, operations, transferTypes,
-				listener);
-		addDragSupport(this, operations, transferTypes, listener);
-		if (busyLabel != null)
-			addDragSupport(busyLabel, operations, transferTypes, listener);
-		if (menuHyperlink != null)
-			addDragSupport(menuHyperlink, operations, transferTypes, listener);
-	}
-
-	private DragSource addDragSupport(Control control, int operations,
-			Transfer[] transferTypes, DragSourceListener listener) {
-		DragSource source = new DragSource(control, operations);
-		source.setTransfer(transferTypes);
-		source.addDragListener(listener);
-		source.setDragSourceEffect(new DragSourceEffect(control) {
-			public void dragStart(DragSourceEvent event) {
-				event.image = createDragEffectImage();
-			}
-		});
-		return source;
-	}
-
-	private Image createDragEffectImage() {
-		/*
-		 * if (dragImage != null) { dragImage.dispose(); } GC gc = new GC(this);
-		 * Point size = getSize(); dragImage = new Image(getDisplay(), size.x,
-		 * size.y); gc.copyArea(dragImage, 0, 0); gc.dispose(); return
-		 * dragImage;
-		 */
-		return null;
-	}
-
-	public void addDropSupport(int operations, Transfer[] transferTypes,
-			DropTargetListener listener) {
-		final DropTarget target = new DropTarget(this, operations);
-		target.setTransfer(transferTypes);
-		target.addDropListener(listener);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java
deleted file mode 100644
index 964a4f3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-
-/**
- * A pagebook is a composite control where only a single control is visible at
- * a time. It is similar to a notebook, but without tabs.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class WrappedPageBook extends Composite {
-	class PageBookLayout extends Layout implements ILayoutExtension {
-		protected Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
-				return new Point(wHint, hHint);
-			Point result = null;
-			if (currentPage != null) {
-				result = currentPage.computeSize(wHint, hHint, flushCache);
-			} else {
-				result = new Point(0, 0);
-			}
-			return result;
-		}
-		protected void layout(Composite composite, boolean flushCache) {
-			if (currentPage != null) {
-				currentPage.setBounds(composite.getClientArea());
-			}
-		}
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.widgets.ILayoutExtension#computeMaximumWidth(org.eclipse.swt.widgets.Composite,
-		 *      boolean)
-		 */
-		public int computeMaximumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-		}
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.widgets.ILayoutExtension#computeMinimumWidth(org.eclipse.swt.widgets.Composite,
-		 *      boolean)
-		 */
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, 0, SWT.DEFAULT, changed).x;
-		}
-	}
-	/**
-	 * The current control; <code>null</code> if none.
-	 */
-	private Control currentPage = null;
-	/**
-	 * Creates a new empty pagebook.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            the SWT style bits
-	 */
-	public WrappedPageBook(Composite parent, int style) {
-		super(parent, style);
-		setLayout(new PageBookLayout());
-	}
-	/**
-	 * Shows the given page. This method has no effect if the given page is not
-	 * contained in this pagebook.
-	 * 
-	 * @param page
-	 *            the page to show
-	 */
-	public void showPage(Control page) {
-		if (page == currentPage)
-			return;
-		if (page.getParent() != this)
-			return;
-		Control oldPage = currentPage;
-		currentPage = page;
-		// show new page
-		if (page != null) {
-			if (!page.isDisposed()) {
-				//page.setVisible(true);
-				layout(true);
-				page.setVisible(true);
-			}
-		}
-		// hide old *after* new page has been made visible in order to avoid
-		// flashing
-		if (oldPage != null && !oldPage.isDisposed())
-			oldPage.setVisible(false);
-	}
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		return ((PageBookLayout) getLayout()).computeSize(this, wHint, hHint,
-				changed);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide.application/.classpath b/bundles/org.eclipse.ui.ide.application/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.ui.ide.application/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.ide.application/.project b/bundles/org.eclipse.ui.ide.application/.project
deleted file mode 100644
index 716e130..0000000
--- a/bundles/org.eclipse.ui.ide.application/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.ide.application</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d1f7f5a..0000000
--- a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Thu Apr 03 13:18:13 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index c25b294..0000000
--- a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:18:42 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 498f3ae..0000000
--- a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:11:37 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
deleted file mode 100644
index 62466d8..0000000
--- a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.ide.application;singleton:=true
-Bundle-Version: 1.0.1.qualifier
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.update.configurator;bundle-version="[3.1.100,4.0.0)",
- org.eclipse.ui;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.ui.navigator.resources;bundle-version="[3.2.100,4.0.0)",
- org.eclipse.core.net;bundle-version="[1.0.0,2.0.0)",
- com.ibm.icu;bundle-version="3.8.1"
-Export-Package: org.eclipse.ui.internal.ide.application;x-internal:=true,
- org.eclipse.ui.internal.ide.application.dialogs;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.ui.ide.application/about.html b/bundles/org.eclipse.ui.ide.application/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.ide.application/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide.application/build.properties b/bundles/org.eclipse.ui.ide.application/build.properties
deleted file mode 100644
index 4f5c84b..0000000
--- a/bundles/org.eclipse.ui.ide.application/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html,\
-               icons/
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/configs.gif b/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/configs.gif
deleted file mode 100755
index c984fba..0000000
--- a/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/configs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/usearch_obj.gif b/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/usearch_obj.gif
deleted file mode 100755
index 5080599..0000000
--- a/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/usearch_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide.application/icons/full/eview16/resource_persp.gif b/bundles/org.eclipse.ui.ide.application/icons/full/eview16/resource_persp.gif
deleted file mode 100644
index 1b8fe00..0000000
--- a/bundles/org.eclipse.ui.ide.application/icons/full/eview16/resource_persp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide.application/plugin.properties b/bundles/org.eclipse.ui.ide.application/plugin.properties
deleted file mode 100644
index 3574a4f..0000000
--- a/bundles/org.eclipse.ui.ide.application/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Eclipse IDE UI Application
-Plugin.providerName = Eclipse.org
-
-PreferencePages.Startup = Startup and Shutdown
-
-Perspective.resourcePerspective = Resource
-Perspective.resourceDescription = This perspective is designed to provide general resource viewing and navigation. 
-
-restart.mnemonic = t
-
-updateMenu.label = &Software Updates
-actionSets.updates.label = &Find and Install...
-actionSets.configManager.label = &Manage Configuration...
diff --git a/bundles/org.eclipse.ui.ide.application/plugin.xml b/bundles/org.eclipse.ui.ide.application/plugin.xml
deleted file mode 100644
index 0e8d9f3..0000000
--- a/bundles/org.eclipse.ui.ide.application/plugin.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-    <extension
-         id="org.eclipse.ui.ide.workbench"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.internal.ide.application.IDEApplication">
-         </run>
-      </application>
-   </extension>
-    <extension
-          point="org.eclipse.ui.preferencePages">
-     <page
-            name="%PreferencePages.Startup"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.internal.ide.application.dialogs.IDEStartupPreferencePage"
-            id="org.eclipse.ui.preferencePages.Startup">
-         <keywordReference id="org.eclipse.ui.ide.startupAndShutdown"/>
-      </page>
-    </extension>
-     <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="%Perspective.resourcePerspective"
-            icon="$nl$/icons/full/eview16/resource_persp.gif"
-            class="org.eclipse.ui.internal.ide.application.ResourcePerspective"
-            id="org.eclipse.ui.resourcePerspective">
-         <description>
-            %Perspective.resourceDescription
-         </description>
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.eclipse.ui.resourcePerspective">
-         <showInPart
-               id="org.eclipse.ui.navigator.ProjectExplorer">
-         </showInPart>
-      </perspectiveExtension>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:file?after=open.ext">
-         <command
-               commandId="org.eclipse.ui.file.restartWorkbench"
-               id="org.eclipse.ui.file.restartWorkbench"
-               mnemonic="%restart.mnemonic"
-               style="push">
-         </command>
-      </menuContribution>
-      <menuContribution
-             locationURI="menu:help?after=additions">
-       <menu label="%updateMenu.label">
-               <command
-                     commandId="org.eclipse.ui.update.findAndInstallUpdates"
-                     helpContextId="org.eclipse.update.ui.newUpdates"
-                     icon="icons/full/elcl16/usearch_obj.gif"
-                     label="%actionSets.updates.label"
-                     style="push">
-               </command>
-               <command
-                     commandId="org.eclipse.ui.update.manageConfiguration"
-                     helpContextId="org.eclipse.update.ui.newUpdates"
-                     icon="icons/full/elcl16/configs.gif"
-                     label="%actionSets.configManager.label"
-                     style="push">
-               </command>
-       </menu>
-       </menuContribution>
-   </extension>
-</plugin>
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
deleted file mode 100644
index 036bc68..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
+++ /dev/null
@@ -1,489 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.application;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.ide.ChooseWorkspaceData;
-import org.eclipse.ui.internal.ide.ChooseWorkspaceDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.StatusUtil;
-
-/**
- * The "main program" for the Eclipse IDE.
- * 
- * @since 3.0
- */
-public class IDEApplication implements IApplication, IExecutableExtension {
-
-	/**
-	 * The name of the folder containing metadata information for the workspace.
-	 */
-    public static final String METADATA_FOLDER = ".metadata"; //$NON-NLS-1$
-
-    private static final String VERSION_FILENAME = "version.ini"; //$NON-NLS-1$
-
-    private static final String WORKSPACE_VERSION_KEY = "org.eclipse.core.runtime"; //$NON-NLS-1$
-
-    private static final String WORKSPACE_VERSION_VALUE = "1"; //$NON-NLS-1$
-
-    private static final String PROP_EXIT_CODE = "eclipse.exitcode"; //$NON-NLS-1$
-
-    /**
-     * A special return code that will be recognized by the launcher and used to
-     * restart the workbench.
-     */
-    private static final Integer EXIT_RELAUNCH = new Integer(24);
-
-    /**
-     * The ID of the application plug-in
-     */
-	public static final String PLUGIN_ID = "org.eclipse.ui.ide.application"; //$NON-NLS-1$
-
-    /**
-     * Creates a new IDE application.
-     */
-    public IDEApplication() {
-        // There is nothing to do for IDEApplication
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext context)
-     */
-    public Object start(IApplicationContext appContext) throws Exception {
-        Display display = createDisplay();
-
-        try {
-
-        	// look and see if there's a splash shell we can parent off of
-        	Shell shell = WorkbenchPlugin.getSplashShell(display);
-        	if (shell != null) {
-        		// should should set the icon and message for this shell to be the 
-        		// same as the chooser dialog - this will be the guy that lives in
-        		// the task bar and without these calls you'd have the default icon 
-        		// with no message.
-        		shell.setText(ChooseWorkspaceDialog.getWindowTitle());
-        		shell.setImages(Dialog.getDefaultImages());
-        	}
-           
-            if (!checkInstanceLocation(shell)) {
-            	WorkbenchPlugin.unsetSplashShell(display);
-                Platform.endSplash();
-                return EXIT_OK;
-            }
-
-            // create the workbench with this advisor and run it until it exits
-            // N.B. createWorkbench remembers the advisor, and also registers
-            // the workbench globally so that all UI plug-ins can find it using
-            // PlatformUI.getWorkbench() or AbstractUIPlugin.getWorkbench()
-            int returnCode = PlatformUI.createAndRunWorkbench(display,
-                    new IDEWorkbenchAdvisor());
-
-            // the workbench doesn't support relaunch yet (bug 61809) so
-            // for now restart is used, and exit data properties are checked
-            // here to substitute in the relaunch return code if needed
-            if (returnCode != PlatformUI.RETURN_RESTART) {
-				return EXIT_OK;
-			}
-
-            // if the exit code property has been set to the relaunch code, then
-            // return that code now, otherwise this is a normal restart
-            return EXIT_RELAUNCH.equals(Integer.getInteger(PROP_EXIT_CODE)) ? EXIT_RELAUNCH
-                    : EXIT_RESTART;
-        } finally {
-            if (display != null) {
-				display.dispose();
-			}
-            Location instanceLoc = Platform.getInstanceLocation();
-            if (instanceLoc != null)
-            	instanceLoc.release();
-        }
-    }
-
-    /**
-     * Creates the display used by the application.
-     * 
-     * @return the display used by the application
-     */
-    protected Display createDisplay() {
-        return PlatformUI.createDisplay();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
-     */
-    public void setInitializationData(IConfigurationElement config,
-            String propertyName, Object data) {
-        // There is nothing to do for IDEApplication
-    }
-
-    /**
-     * Return true if a valid workspace path has been set and false otherwise.
-     * Prompt for and set the path if possible and required.
-     * 
-     * @return true if a valid instance location has been set and false
-     *         otherwise
-     */
-    private boolean checkInstanceLocation(Shell shell) {
-        // -data @none was specified but an ide requires workspace
-        Location instanceLoc = Platform.getInstanceLocation();
-        if (instanceLoc == null) {
-            MessageDialog
-                    .openError(
-                            shell,
-                            IDEWorkbenchMessages.IDEApplication_workspaceMandatoryTitle,
-                            IDEWorkbenchMessages.IDEApplication_workspaceMandatoryMessage);
-            return false;
-        }
-
-        // -data "/valid/path", workspace already set
-        if (instanceLoc.isSet()) {
-            // make sure the meta data version is compatible (or the user has
-            // chosen to overwrite it).
-            if (!checkValidWorkspace(shell, instanceLoc.getURL())) {
-				return false;
-			}
-
-            // at this point its valid, so try to lock it and update the
-            // metadata version information if successful
-            try {
-                if (instanceLoc.lock()) {
-                    writeWorkspaceVersion();
-                    return true;
-                }
-                
-                // we failed to create the directory.  
-                // Two possibilities:
-                // 1. directory is already in use
-                // 2. directory could not be created
-                File workspaceDirectory = new File(instanceLoc.getURL().getFile());
-                if (workspaceDirectory.exists()) {
-	                MessageDialog.openError(
-	                        shell,
-	                        IDEWorkbenchMessages.IDEApplication_workspaceCannotLockTitle,
-	                        IDEWorkbenchMessages.IDEApplication_workspaceCannotLockMessage);
-                } else {
-                	MessageDialog.openError(
-                			shell, 
-                			IDEWorkbenchMessages.IDEApplication_workspaceCannotBeSetTitle,
-                			IDEWorkbenchMessages.IDEApplication_workspaceCannotBeSetMessage);
-                }
-            } catch (IOException e) {
-                IDEWorkbenchPlugin.log("Could not obtain lock for workspace location", //$NON-NLS-1$
-                        e);            	
-                MessageDialog
-                .openError(
-                        shell,
-                        IDEWorkbenchMessages.InternalError,
-                        e.getMessage());                
-            }            
-            return false;
-        }
-
-        // -data @noDefault or -data not specified, prompt and set
-        ChooseWorkspaceData launchData = new ChooseWorkspaceData(instanceLoc
-                .getDefault());
-
-        boolean force = false;
-        while (true) {
-            URL workspaceUrl = promptForWorkspace(shell, launchData, force);
-            if (workspaceUrl == null) {
-				return false;
-			}
-
-            // if there is an error with the first selection, then force the
-            // dialog to open to give the user a chance to correct
-            force = true;
-
-            try {
-                // the operation will fail if the url is not a valid
-                // instance data area, so other checking is unneeded
-                if (instanceLoc.setURL(workspaceUrl, true)) {
-                    launchData.writePersistedData();
-                    writeWorkspaceVersion();
-                    return true;
-                }
-            } catch (IllegalStateException e) {
-                MessageDialog
-                        .openError(
-                                shell,
-                                IDEWorkbenchMessages.IDEApplication_workspaceCannotBeSetTitle,
-                                IDEWorkbenchMessages.IDEApplication_workspaceCannotBeSetMessage);
-                return false;
-            }
-
-            // by this point it has been determined that the workspace is
-            // already in use -- force the user to choose again
-            MessageDialog.openError(shell, IDEWorkbenchMessages.IDEApplication_workspaceInUseTitle, 
-                    IDEWorkbenchMessages.IDEApplication_workspaceInUseMessage);
-        }
-    }
-
-    /**
-     * Open a workspace selection dialog on the argument shell, populating the
-     * argument data with the user's selection. Perform first level validation
-     * on the selection by comparing the version information. This method does
-     * not examine the runtime state (e.g., is the workspace already locked?).
-     * 
-     * @param shell
-     * @param launchData
-     * @param force
-     *            setting to true makes the dialog open regardless of the
-     *            showDialog value
-     * @return An URL storing the selected workspace or null if the user has
-     *         canceled the launch operation.
-     */
-    private URL promptForWorkspace(Shell shell, ChooseWorkspaceData launchData,
-			boolean force) {
-        URL url = null;
-        do {
-        	// okay to use the shell now - this is the splash shell
-            new ChooseWorkspaceDialog(shell, launchData, false, true).prompt(force);
-            String instancePath = launchData.getSelection();
-            if (instancePath == null) {
-				return null;
-			}
-
-            // the dialog is not forced on the first iteration, but is on every
-            // subsequent one -- if there was an error then the user needs to be
-            // allowed to fix it
-            force = true;
-
-            // 70576: don't accept empty input
-            if (instancePath.length() <= 0) {
-                MessageDialog
-                .openError(
-                        shell,
-                        IDEWorkbenchMessages.IDEApplication_workspaceEmptyTitle,
-                        IDEWorkbenchMessages.IDEApplication_workspaceEmptyMessage);
-                continue;
-            }
-
-            // create the workspace if it does not already exist
-            File workspace = new File(instancePath);
-            if (!workspace.exists()) {
-				workspace.mkdir();
-			}
-
-            try {
-                // Don't use File.toURL() since it adds a leading slash that Platform does not
-                // handle properly.  See bug 54081 for more details.  
-                String path = workspace.getAbsolutePath().replace(
-                        File.separatorChar, '/');
-                url = new URL("file", null, path); //$NON-NLS-1$
-            } catch (MalformedURLException e) {
-                MessageDialog
-                        .openError(
-                                shell,
-                                IDEWorkbenchMessages.IDEApplication_workspaceInvalidTitle,
-                                IDEWorkbenchMessages.IDEApplication_workspaceInvalidMessage);
-                continue;
-            }
-        } while (!checkValidWorkspace(shell, url));
-
-        return url;
-    }
-
-    /**
-     * Return true if the argument directory is ok to use as a workspace and
-     * false otherwise. A version check will be performed, and a confirmation
-     * box may be displayed on the argument shell if an older version is
-     * detected.
-     * 
-     * @return true if the argument URL is ok to use as a workspace and false
-     *         otherwise.
-     */
-    private boolean checkValidWorkspace(Shell shell, URL url) {
-        // a null url is not a valid workspace
-        if (url == null) {
-			return false;
-		}
-
-        String version = readWorkspaceVersion(url);
-
-        // if the version could not be read, then there is not any existing
-        // workspace data to trample, e.g., perhaps its a new directory that
-        // is just starting to be used as a workspace
-        if (version == null) {
-			return true;
-		}
-
-        final int ide_version = Integer.parseInt(WORKSPACE_VERSION_VALUE);
-        int workspace_version = Integer.parseInt(version);
-
-        // equality test is required since any version difference (newer
-        // or older) may result in data being trampled
-        if (workspace_version == ide_version) {
-			return true;
-		}
-
-        // At this point workspace has been detected to be from a version
-        // other than the current ide version -- find out if the user wants
-        // to use it anyhow.
-        String title = IDEWorkbenchMessages.IDEApplication_versionTitle;
-        String message = NLS.bind(IDEWorkbenchMessages.IDEApplication_versionMessage, url.getFile());
-
-        MessageBox mbox = new MessageBox(shell, SWT.OK | SWT.CANCEL
-                | SWT.ICON_WARNING | SWT.APPLICATION_MODAL);
-        mbox.setText(title);
-        mbox.setMessage(message);
-        return mbox.open() == SWT.OK;
-    }
-
-    /**
-     * Look at the argument URL for the workspace's version information. Return
-     * that version if found and null otherwise.
-     */
-    private static String readWorkspaceVersion(URL workspace) {
-        File versionFile = getVersionFile(workspace, false);
-        if (versionFile == null || !versionFile.exists()) {
-			return null;
-		}
-
-        try {
-            // Although the version file is not spec'ed to be a Java properties
-            // file, it happens to follow the same format currently, so using
-            // Properties to read it is convenient.
-            Properties props = new Properties();
-            FileInputStream is = new FileInputStream(versionFile);
-            try {
-                props.load(is);
-            } finally {
-                is.close();
-            }
-
-            return props.getProperty(WORKSPACE_VERSION_KEY);
-        } catch (IOException e) {
-            IDEWorkbenchPlugin.log("Could not read version file", new Status( //$NON-NLS-1$
-                    IStatus.ERROR, IDEWorkbenchPlugin.IDE_WORKBENCH,
-                    IStatus.ERROR,
-                    e.getMessage() == null ? "" : e.getMessage(), //$NON-NLS-1$, 
-                    e));
-            return null;
-        }
-    }
-
-    /**
-     * Write the version of the metadata into a known file overwriting any
-     * existing file contents. Writing the version file isn't really crucial,
-     * so the function is silent about failure
-     */
-    private static void writeWorkspaceVersion() {
-        Location instanceLoc = Platform.getInstanceLocation();
-        if (instanceLoc == null || instanceLoc.isReadOnly()) {
-			return;
-		}
-
-        File versionFile = getVersionFile(instanceLoc.getURL(), true);
-        if (versionFile == null) {
-			return;
-		}
-
-        OutputStream output = null;
-        try {
-            String versionLine = WORKSPACE_VERSION_KEY + '='
-                    + WORKSPACE_VERSION_VALUE;
-
-            output = new FileOutputStream(versionFile);
-            output.write(versionLine.getBytes("UTF-8")); //$NON-NLS-1$
-        } catch (IOException e) {
-            IDEWorkbenchPlugin.log("Could not write version file", //$NON-NLS-1$
-                    StatusUtil.newStatus(IStatus.ERROR, e.getMessage(), e));
-        } finally {
-            try {
-                if (output != null) {
-					output.close();
-				}
-            } catch (IOException e) {
-                // do nothing
-            }
-        }
-    }
-
-    /**
-     * The version file is stored in the metadata area of the workspace. This
-     * method returns an URL to the file or null if the directory or file does
-     * not exist (and the create parameter is false).
-     * 
-     * @param create
-     *            If the directory and file does not exist this parameter
-     *            controls whether it will be created.
-     * @return An url to the file or null if the version file does not exist or
-     *         could not be created.
-     */
-    private static File getVersionFile(URL workspaceUrl, boolean create) {
-        if (workspaceUrl == null) {
-			return null;
-		}
-
-        try {
-            // make sure the directory exists
-            File metaDir = new File(workspaceUrl.getPath(), METADATA_FOLDER);
-            if (!metaDir.exists() && (!create || !metaDir.mkdir())) {
-				return null;
-			}
-
-            // make sure the file exists
-            File versionFile = new File(metaDir, VERSION_FILENAME);
-            if (!versionFile.exists()
-                    && (!create || !versionFile.createNewFile())) {
-				return null;
-			}
-
-            return versionFile;
-        } catch (IOException e) {
-            // cannot log because instance area has not been set
-            return null;
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.equinox.app.IApplication#stop()
-     */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEIdleHelper.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEIdleHelper.java
deleted file mode 100644
index 8e8fbd8..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEIdleHelper.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.application;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.Policy;
-
-/**
- * The idle helper detects when the system is idle in order to perform garbage 
- * collection in a way that minimizes impact on responsiveness of the UI.
- * The algorithm for determining when to perform a garbage collection
- * is as follows:
- * 
- *  - Never gc if there is a test harness present
- *  - Don't gc if background jobs are running
- *  - Don't gc if the keyboard or mouse have been active within IDLE_INTERVAL
- *  - Don't gc if there has been a GC within the minimum gc interval (system property PROP_GC_INTERVAL)
- *  - After a gc, don't gc again until (duration * GC_DELAY_MULTIPLIER) has elapsed.
- *    For example, if a GC takes 100ms and the multiplier is 60, don't gc for at least five seconds
- *  - Never gc again if any single gc takes longer than system property PROP_GC_MAX
- */
-class IDEIdleHelper {
-
-	/**
-	 * The default minimum time between garbage collections.
-	 */
-	private static final int DEFAULT_GC_INTERVAL = 60000;
-
-	/**
-	 * The default maximum duration for a garbage collection, beyond which
-	 * the explicit gc mechanism is automatically disabled.
-	 */
-	private static final int DEFAULT_GC_MAX = 8000;
-
-	/**
-	 * The multiple of the last gc duration before we will consider doing
-	 * another one.
-	 */
-	private static final int GC_DELAY_MULTIPLIER = 60;
-
-	/**
-	 * The time interval of no keyboard or mouse events after which the system 
-	 * is considered idle.
-	 */
-	private static final int IDLE_INTERVAL = 5000;
-
-	/**
-	 * The name of the boolean system property that specifies whether explicit
-	 * garbage collection is enabled.
-	 */
-	private static final String PROP_GC = "ide.gc"; //$NON-NLS-1$
-
-	/**
-	 * The name of the integer system property that specifies the minimum time 
-	 * interval in milliseconds between garbage collections.
-	 */
-	private static final String PROP_GC_INTERVAL = "ide.gc.interval"; //$NON-NLS-1$
-
-	/**
-	 * The name of the integer system property that specifies the maximum 
-	 * duration for a garbage collection. If this duration is ever exceeded, the 
-	 * explicit gc mechanism is disabled for the remainder of the session.
-	 */
-	private static final String PROP_GC_MAX = "ide.gc.max"; //$NON-NLS-1$
-
-	protected IWorkbenchConfigurer configurer;
-
-	private Listener idleListener;
-
-	/**
-	 * The last time we garbage collected.
-	 */
-	private long lastGC = System.currentTimeMillis();
-
-	/**
-	 * The maximum gc duration. If this value is exceeded, the
-	 * entire explicit gc mechanism is disabled.
-	 */
-	private int maxGC = DEFAULT_GC_MAX;
-	/**
-	 * The minimum time interval until the next garbage collection
-	 */
-	private int minGCInterval = DEFAULT_GC_INTERVAL;
-
-	/**
-	 * The time interval until the next garbage collection
-	 */
-	private int nextGCInterval = DEFAULT_GC_INTERVAL;
-	
-	private Job gcJob;
-
-	private Runnable handler;	
-	
-	/**
-	 * Creates and initializes the idle handler
-	 * @param aConfigurer The workbench configurer.
-	 */
-	IDEIdleHelper(IWorkbenchConfigurer aConfigurer) {
-		this.configurer = aConfigurer;
-		//don't gc while running tests because performance tests are sensitive to timing (see bug 121562)
-		if (PlatformUI.getTestableObject().getTestHarness() != null) {
-			return;
-		}
-		String enabled = System.getProperty(PROP_GC);
-		//gc is turned on by default if property is missing
-		if (enabled != null && enabled.equalsIgnoreCase(Boolean.FALSE.toString())) {
-			return;
-		}
-		//init gc interval
-		Integer prop = Integer.getInteger(PROP_GC_INTERVAL);
-		if (prop != null && prop.intValue() >= 0) {
-			minGCInterval = nextGCInterval = prop.intValue();
-		}
-
-		//init max gc interval
-		prop = Integer.getInteger(PROP_GC_MAX);
-		if (prop != null) {
-			maxGC = prop.intValue();
-		}
-		
-		createGarbageCollectionJob();
-
-		//hook idle handler
-		final Display display = configurer.getWorkbench().getDisplay();
-		handler = new Runnable() {
-					public void run() {
-						if (!display.isDisposed() && !configurer.getWorkbench().isClosing()) {
-							int nextInterval;
-							final long start = System.currentTimeMillis();
-							//don't garbage collect if background jobs are running
-							if (!Job.getJobManager().isIdle()) {
-								nextInterval = IDLE_INTERVAL;
-							} else if ((start - lastGC) < nextGCInterval) {
-								//don't garbage collect if we have collected within the specific interval
-								nextInterval = nextGCInterval - (int) (start - lastGC);
-							} else {
-								gcJob.schedule();
-								nextInterval = minGCInterval;
-							}
-							display.timerExec(nextInterval, this);
-						}
-					}
-				};
-		idleListener = new Listener() {
-			public void handleEvent(Event event) {
-				display.timerExec(IDLE_INTERVAL, handler);
-			}
-		};
-		display.addFilter(SWT.KeyUp, idleListener);
-		display.addFilter(SWT.MouseUp, idleListener);
-	}
-
-	/**
-	 * Creates the job that performs garbage collection
-	 */
-	private void createGarbageCollectionJob() {
-		gcJob = new Job(IDEWorkbenchMessages.IDEIdleHelper_backgroundGC) {
-			protected IStatus run(IProgressMonitor monitor) {
-				final Display display = configurer.getWorkbench().getDisplay();
-				if (display != null && !display.isDisposed()) {
-					final long start = System.currentTimeMillis();
-					System.gc();
-					System.runFinalization();
-					lastGC = start;
-					final int duration = (int) (System.currentTimeMillis() - start);
-					if (Policy.DEBUG_GC) {
-						System.out.println("Explicit GC took: " + duration); //$NON-NLS-1$
-					}
-					if (duration > maxGC) {
-						if (Policy.DEBUG_GC) {
-							System.out.println("Further explicit GCs disabled due to long GC"); //$NON-NLS-1$
-						}
-						shutdown();
-					} else {
-						//if the gc took a long time, ensure the next gc doesn't happen for awhile
-						nextGCInterval = Math.max(minGCInterval, GC_DELAY_MULTIPLIER * duration);
-						if (Policy.DEBUG_GC) {
-							System.out.println("Next GC to run in: " + nextGCInterval); //$NON-NLS-1$
-						}
-					}
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		gcJob.setSystem(true);
-	}
-
-	/**
-	 * Shuts down the idle helper, removing any installed listeners, etc.
-	 */
-	void shutdown() {
-		if (idleListener == null) {
-			return;
-		}
-		final Display display = configurer.getWorkbench().getDisplay();
-		if (display != null && !display.isDisposed()) {
-			try {
-				display.asyncExec(new Runnable() {
-					public void run() {
-						display.timerExec(-1, handler);
-						display.removeFilter(SWT.KeyUp, idleListener);
-						display.removeFilter(SWT.MouseUp, idleListener);
-					}
-				});
-			} catch (SWTException ex) {
-				// ignore (display might be disposed)
-			}			
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java
deleted file mode 100644
index e22bdee..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java
+++ /dev/null
@@ -1,766 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.application;
-
-import java.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.net.proxy.IProxyService;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ISelectionConversionService;
-import org.eclipse.ui.internal.PluginActionBuilder;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.ide.AboutInfo;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDESelectionConversionService;
-import org.eclipse.ui.internal.ide.IDEWorkbenchActivityHelper;
-import org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.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.ui.statushandlers.AbstractStatusHandler;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-import com.ibm.icu.text.Collator;
-
-/**
- * IDE-specified workbench advisor which configures the workbench for use as an
- * IDE.
- * <p>
- * Note: This class replaces <code>org.eclipse.ui.internal.Workbench</code>.
- * </p>
- * 
- * @since 3.0
- */
-public class IDEWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String WORKBENCH_PREFERENCE_CATEGORY_ID = "org.eclipse.ui.preferencePages.Workbench"; //$NON-NLS-1$
-
-	/**
-	 * The dialog setting key to access the known installed features since the
-	 * last time the workbench was run.
-	 */
-	private static final String INSTALLED_FEATURES = "installedFeatures"; //$NON-NLS-1$
-
-	private static IDEWorkbenchAdvisor workbenchAdvisor = null;
-
-	/**
-	 * Contains the workspace location if the -showlocation command line
-	 * argument is specified, or <code>null</code> if not specified.
-	 */
-	private String workspaceLocation = null;
-
-	/**
-	 * Ordered map of versioned feature ids -> info that are new for this
-	 * session; <code>null</code> if uninitialized. Key type:
-	 * <code>String</code>, Value type: <code>AboutInfo</code>.
-	 */
-	private Map newlyAddedBundleGroups;
-
-	/**
-	 * Array of <code>AboutInfo</code> for all new installed features that
-	 * specify a welcome perspective.
-	 */
-	private AboutInfo[] welcomePerspectiveInfos = null;
-
-	/**
-	 * Helper for managing activites in response to workspace changes.
-	 */
-	private IDEWorkbenchActivityHelper activityHelper = null;
-
-	/**
-	 * Helper for managing work that is performed when the system is otherwise
-	 * idle.
-	 */
-	private IDEIdleHelper idleHelper;
-
-	private Listener settingsChangeListener;
-	
-	/**
-	 * Support class for monitoring workspace changes and periodically
-	 * validating the undo history
-	 */
-	private WorkspaceUndoMonitor workspaceUndoMonitor;
-
-	/**
-	 * The IDE workbench error handler.
-	 */
-	private AbstractStatusHandler ideWorkbenchErrorHandler;
-
-	/**
-	 * Creates a new workbench advisor instance.
-	 */
-	public IDEWorkbenchAdvisor() {
-		super();
-		if (workbenchAdvisor != null) {
-			throw new IllegalStateException();
-		}
-		workbenchAdvisor = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize
-	 */
-	public void initialize(IWorkbenchConfigurer configurer) {
-
-		PluginActionBuilder.setAllowIdeLogging(true);
-		
-		// make sure we always save and restore workspace state
-		configurer.setSaveAndRestore(true);
-
-		// register workspace adapters
-		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);
-
-		Policy.setComparator(Collator.getInstance());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
-	 */
-	public void preStartup() {
-
-		// Suspend background jobs while we startup
-		Job.getJobManager().suspend();
-
-		// Register the build actions
-		IProgressService service = PlatformUI.getWorkbench()
-				.getProgressService();
-		ImageDescriptor newImage = IDEInternalWorkbenchImages
-				.getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC);
-		service.registerIconForFamily(newImage,
-				ResourcesPlugin.FAMILY_MANUAL_BUILD);
-		service.registerIconForFamily(newImage,
-				ResourcesPlugin.FAMILY_AUTO_BUILD);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#postStartup()
-	 */
-	public void postStartup() {
-		try {
-			refreshFromLocal();
-			activateProxyService();
-			((Workbench) PlatformUI.getWorkbench()).registerService(
-					ISelectionConversionService.class,
-					new IDESelectionConversionService());
-
-			initializeSettingsChangeListener();
-			Display.getCurrent().addListener(SWT.Settings,
-					settingsChangeListener);
-		} finally {// Resume background jobs after we startup
-			Job.getJobManager().resume();
-		}
-	}
-
-	/**
-	 * Activate the proxy service by obtaining it.
-	 */
-	private void activateProxyService() {
-		Bundle bundle = Platform.getBundle("org.eclipse.ui.ide"); //$NON-NLS-1$
-		Object proxyService = null;
-		if (bundle != null) {
-			ServiceReference ref = bundle.getBundleContext().getServiceReference(IProxyService.class.getName());
-			if (ref != null)
-				proxyService = bundle.getBundleContext().getService(ref);
-		}
-		if (proxyService == null) {
-			IDEWorkbenchPlugin.log("Proxy service could not be found."); //$NON-NLS-1$
-		}	
-	}
-
-	/**
-	 * Initialize the listener for settings changes.
-	 */
-	private void initializeSettingsChangeListener() {
-		settingsChangeListener = new Listener() {
-
-			boolean currentHighContrast = Display.getCurrent()
-					.getHighContrast();
-
-			public void handleEvent(org.eclipse.swt.widgets.Event event) {
-				if (Display.getCurrent().getHighContrast() == currentHighContrast)
-					return;
-
-				currentHighContrast = !currentHighContrast;
-
-				// make sure they really want to do this
-				if (new MessageDialog(null,
-						IDEWorkbenchMessages.SystemSettingsChange_title, null,
-						IDEWorkbenchMessages.SystemSettingsChange_message,
-						MessageDialog.QUESTION, new String[] {
-								IDEWorkbenchMessages.SystemSettingsChange_yes,
-								IDEWorkbenchMessages.SystemSettingsChange_no },
-						1).open() == Window.OK) {
-					PlatformUI.getWorkbench().restart();
-				}
-			}
-		};
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#postShutdown
-	 */
-	public void postShutdown() {
-		if (activityHelper != null) {
-			activityHelper.shutdown();
-			activityHelper = null;
-		}
-		if (idleHelper != null) {
-			idleHelper.shutdown();
-			idleHelper = null;
-		}
-		if (workspaceUndoMonitor != null) {
-			workspaceUndoMonitor.shutdown();
-			workspaceUndoMonitor = null;
-		}
-		if (IDEWorkbenchPlugin.getPluginWorkspace() != null) {
-			disconnectFromWorkspace();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preShutdown()
-	 */
-	public boolean preShutdown() {
-		Display.getCurrent().removeListener(SWT.Settings,
-				settingsChangeListener);
-		return super.preShutdown();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)
-	 */
-	public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-			IWorkbenchWindowConfigurer configurer) {
-		return new IDEWorkbenchWindowAdvisor(this, configurer);
-	}
-
-	/**
-	 * Return true if the intro plugin is present and false otherwise.
-	 * 
-	 * @return boolean
-	 */
-	public boolean hasIntro() {
-		return getWorkbenchConfigurer().getWorkbench().getIntroManager()
-				.hasIntro();
-	}
-
-	private void refreshFromLocal() {
-		String[] commandLineArgs = Platform.getCommandLineArgs();
-		IPreferenceStore store = IDEWorkbenchPlugin.getDefault()
-				.getPreferenceStore();
-		boolean refresh = store
-				.getBoolean(IDEInternalPreferences.REFRESH_WORKSPACE_ON_STARTUP);
-		if (!refresh) {
-			return;
-		}
-
-		// Do not refresh if it was already done by core on startup.
-		for (int i = 0; i < commandLineArgs.length; i++) {
-			if (commandLineArgs[i].equalsIgnoreCase("-refresh")) { //$NON-NLS-1$
-				return;
-			}
-		}
-
-		final IContainer root = ResourcesPlugin.getWorkspace().getRoot();
-		Job job = new WorkspaceJob(IDEWorkbenchMessages.Workspace_refreshing) {
-			public IStatus runInWorkspace(IProgressMonitor monitor)
-					throws CoreException {
-				root.refreshLocal(IResource.DEPTH_INFINITE, monitor);
-				return Status.OK_STATUS;
-			}
-		};
-		job.setRule(root);
-		job.schedule();
-	}
-
-	/**
-	 * Disconnect from the core workspace.
-	 */
-	private void disconnectFromWorkspace() {
-		// save the workspace
-		final MultiStatus status = new MultiStatus(
-				IDEWorkbenchPlugin.IDE_WORKBENCH, 1,
-				IDEWorkbenchMessages.ProblemSavingWorkbench, null);
-		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);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getDefaultPageInput
-	 */
-	public IAdaptable getDefaultPageInput() {
-		return ResourcesPlugin.getWorkspace().getRoot();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor
-	 */
-	public String getInitialWindowPerspectiveId() {
-		int index = PlatformUI.getWorkbench().getWorkbenchWindowCount() - 1;
-
-		String perspectiveId = null;
-		AboutInfo[] welcomeInfos = getWelcomePerspectiveInfos();
-		if (index >= 0 && welcomeInfos != null && index < welcomeInfos.length) {
-			perspectiveId = welcomeInfos[index].getWelcomePerspectiveId();
-		}
-		if (perspectiveId == null) {
-			perspectiveId = IDE.RESOURCE_PERSPECTIVE_ID;
-		}
-		return perspectiveId;
-	}
-
-	/**
-	 * Returns the map of versioned feature ids -> info object for all installed
-	 * features. The format of the versioned feature id (the key of the map) is
-	 * featureId + ":" + versionId.
-	 * 
-	 * @return map of versioned feature ids -> info object (key type:
-	 *         <code>String</code>, value type: <code>AboutInfo</code>)
-	 * @since 3.0
-	 */
-	private Map computeBundleGroupMap() {
-		// use tree map to get predicable order
-		Map ids = new TreeMap();
-
-		IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
-		for (int i = 0; i < providers.length; ++i) {
-			IBundleGroup[] groups = providers[i].getBundleGroups();
-			for (int j = 0; j < groups.length; ++j) {
-				IBundleGroup group = groups[j];
-				AboutInfo info = new AboutInfo(group);
-
-				String version = info.getVersionId();
-				version = version == null ? "0.0.0" //$NON-NLS-1$
-						: new Version(version).toString();
-				String versionedFeature = group.getIdentifier() + ":" + version; //$NON-NLS-1$
-
-				ids.put(versionedFeature, info);
-			}
-		}
-
-		return ids;
-	}
-
-	/**
-	 * Returns the ordered map of versioned feature ids -> AboutInfo that are
-	 * new for this session.
-	 * 
-	 * @return ordered map of versioned feature ids (key type:
-	 *         <code>String</code>) -> infos (value type:
-	 *         <code>AboutInfo</code>).
-	 */
-	public Map getNewlyAddedBundleGroups() {
-		if (newlyAddedBundleGroups == null) {
-			newlyAddedBundleGroups = createNewBundleGroupsMap();
-		}
-		return newlyAddedBundleGroups;
-	}
-
-	/**
-	 * Updates the old features setting and returns a map of new features.
-	 */
-	private Map createNewBundleGroupsMap() {
-		// retrieve list of installed bundle groups from last session
-		IDialogSettings settings = IDEWorkbenchPlugin.getDefault()
-				.getDialogSettings();
-		String[] previousFeaturesArray = settings.getArray(INSTALLED_FEATURES);
-
-		// get a map of currently installed bundle groups and store it for next
-		// session
-		Map bundleGroups = computeBundleGroupMap();
-		String[] currentFeaturesArray = new String[bundleGroups.size()];
-		bundleGroups.keySet().toArray(currentFeaturesArray);
-		settings.put(INSTALLED_FEATURES, currentFeaturesArray);
-
-		// remove the previously known from the current set
-		if (previousFeaturesArray != null) {
-			for (int i = 0; i < previousFeaturesArray.length; ++i) {
-				bundleGroups.remove(previousFeaturesArray[i]);
-			}
-		}
-
-		return bundleGroups;
-	}
-
-	/**
-	 * Declares all IDE-specific workbench images. This includes both "shared"
-	 * images (named in {@link IDE.SharedImages}) and internal images (named in
-	 * {@link org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages}).
-	 * 
-	 * @see IWorkbenchConfigurer#declareImage
-	 */
-	private void declareWorkbenchImages() {
-
-		final String ICONS_PATH = "$nl$/icons/full/";//$NON-NLS-1$
-		final String PATH_ELOCALTOOL = ICONS_PATH + "elcl16/"; // Enabled //$NON-NLS-1$
-
-		// toolbar
-		// icons.
-		final String PATH_DLOCALTOOL = ICONS_PATH + "dlcl16/"; // Disabled //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// toolbar
-		// icons.
-		final String PATH_ETOOL = ICONS_PATH + "etool16/"; // Enabled toolbar //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// icons.
-		final String PATH_DTOOL = ICONS_PATH + "dtool16/"; // Disabled toolbar //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// icons.
-		final String PATH_OBJECT = ICONS_PATH + "obj16/"; // Model object //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// icons
-		final String PATH_WIZBAN = ICONS_PATH + "wizban/"; // Wizard //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// icons
-
-		Bundle ideBundle = Platform.getBundle(IDEWorkbenchPlugin.IDE_WORKBENCH);
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC, PATH_ETOOL
-						+ "build_exec.gif", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_HOVER,
-				PATH_ETOOL + "build_exec.gif", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_DISABLED,
-				PATH_DTOOL + "build_exec.gif", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC, PATH_ETOOL
-						+ "search_src.gif", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_HOVER,
-				PATH_ETOOL + "search_src.gif", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_DISABLED,
-				PATH_DTOOL + "search_src.gif", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_NEXT_NAV, PATH_ETOOL
-						+ "next_nav.gif", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_PREVIOUS_NAV, PATH_ETOOL
-						+ "prev_nav.gif", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_NEWPRJ_WIZ, PATH_WIZBAN
-						+ "newprj_wiz.png", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFOLDER_WIZ,
-				PATH_WIZBAN + "newfolder_wiz.png", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFILE_WIZ, PATH_WIZBAN
-						+ "newfile_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTDIR_WIZ,
-				PATH_WIZBAN + "importdir_wiz.png", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTZIP_WIZ,
-				PATH_WIZBAN + "importzip_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTDIR_WIZ,
-				PATH_WIZBAN + "exportdir_wiz.png", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTZIP_WIZ,
-				PATH_WIZBAN + "exportzip_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_RESOURCEWORKINGSET_WIZ,
-				PATH_WIZBAN + "workset_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_DLGBAN_SAVEAS_DLG, PATH_WIZBAN
-						+ "saveas_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_DLGBAN_QUICKFIX_DLG, PATH_WIZBAN
-						+ "quick_fix.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT,
-				PATH_OBJECT + "prj_obj.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED, PATH_OBJECT
-						+ "cprj_obj.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OPEN_MARKER,
-				PATH_ELOCALTOOL + "gotoobj_tsk.gif", true); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ELCL_QUICK_FIX_ENABLED,
-				PATH_ELOCALTOOL + "smartmode_co.gif", true); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_DLCL_QUICK_FIX_DISABLED,
-				PATH_DLOCALTOOL + "smartmode_co.gif", true); //$NON-NLS-1$
-
-		// task objects
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_HPRIO_TSK,
-		// PATH_OBJECT+"hprio_tsk.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_MPRIO_TSK,
-		// PATH_OBJECT+"mprio_tsk.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_LPRIO_TSK,
-		// PATH_OBJECT+"lprio_tsk.gif");
-
-		declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_TASK_TSK,
-				PATH_OBJECT + "taskmrk_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_BKMRK_TSK,
-				PATH_OBJECT + "bkmrk_tsk.gif", true); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_COMPLETE_TSK, PATH_OBJECT
-						+ "complete_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_INCOMPLETE_TSK, PATH_OBJECT
-						+ "incomplete_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_ITEM, PATH_OBJECT
-						+ "welcome_item.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_BANNER, PATH_OBJECT
-						+ "welcome_banner.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_ERROR_PATH, PATH_OBJECT
-						+ "error_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_WARNING_PATH, PATH_OBJECT
-						+ "warn_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_INFO_PATH, PATH_OBJECT
-						+ "info_tsk.gif", true); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_LCL_FLAT_LAYOUT, PATH_ELOCALTOOL
-						+ "flatLayout.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_LCL_HIERARCHICAL_LAYOUT,
-				PATH_ELOCALTOOL + "hierarchicalLayout.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_PROBLEM_CATEGORY,
-				PATH_ETOOL + "problem_category.gif", true); //$NON-NLS-1$
-	
-		// synchronization indicator objects
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_WBET_STAT,
-		// PATH_OVERLAY+"wbet_stat.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_SBET_STAT,
-		// PATH_OVERLAY+"sbet_stat.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_CONFLICT_STAT,
-		// PATH_OVERLAY+"conflict_stat.gif");
-
-		// content locality indicator objects
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_NOTLOCAL_STAT,
-		// PATH_STAT+"notlocal_stat.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_LOCAL_STAT,
-		// PATH_STAT+"local_stat.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_FILLLOCAL_STAT,
-		// PATH_STAT+"filllocal_stat.gif");
-	}
-
-	/**
-	 * Declares an IDE-specific workbench image.
-	 * 
-	 * @param symbolicName
-	 *            the symbolic name of the image
-	 * @param path
-	 *            the path of the image file; this path is relative to the base
-	 *            of the IDE plug-in
-	 * @param shared
-	 *            <code>true</code> if this is a shared image, and
-	 *            <code>false</code> if this is not a shared image
-	 * @see IWorkbenchConfigurer#declareImage
-	 */
-	private void declareWorkbenchImage(Bundle ideBundle, String symbolicName,
-			String path, boolean shared) {
-		URL url = FileLocator.find(ideBundle, new Path(path), null);
-		ImageDescriptor desc = ImageDescriptor.createFromURL(url);
-		getWorkbenchConfigurer().declareImage(symbolicName, desc, shared);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getMainPreferencePageId
-	 */
-	public String getMainPreferencePageId() {
-		// indicate that we want the Workench preference page to be prominent
-		return WORKBENCH_PREFERENCE_CATEGORY_ID;
-	}
-
-	/**
-	 * @return the workspace location string, or <code>null</code> if the
-	 *         location is not being shown
-	 */
-	public String getWorkspaceLocation() {
-		return workspaceLocation;
-	}
-
-	/**
-	 * @return the welcome perspective infos, or <code>null</code> if none or
-	 *         if they should be ignored due to the new intro being present
-	 */
-	public AboutInfo[] getWelcomePerspectiveInfos() {
-		if (welcomePerspectiveInfos == null) {
-			// support old welcome perspectives if intro plugin is not present
-			if (!hasIntro()) {
-				Map m = getNewlyAddedBundleGroups();
-				ArrayList list = new ArrayList(m.size());
-				for (Iterator i = m.values().iterator(); i.hasNext();) {
-					AboutInfo info = (AboutInfo) i.next();
-					if (info != null && info.getWelcomePerspectiveId() != null
-							&& info.getWelcomePageURL() != null) {
-						list.add(info);
-					}
-				}
-				welcomePerspectiveInfos = new AboutInfo[list.size()];
-				list.toArray(welcomePerspectiveInfos);
-			}
-		}
-		return welcomePerspectiveInfos;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getWorkbenchErrorHandler()
-	 */
-	public AbstractStatusHandler getWorkbenchErrorHandler() {
-		if (ideWorkbenchErrorHandler == null) {
-			ideWorkbenchErrorHandler = new IDEWorkbenchErrorHandler(
-					getWorkbenchConfigurer());
-		}
-		return ideWorkbenchErrorHandler;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchWindowAdvisor.java
deleted file mode 100644
index 91a55d9..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,673 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.application;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IPageListener;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartConstants;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PerspectiveAdapter;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.internal.ide.AboutInfo;
-import org.eclipse.ui.internal.ide.EditorAreaDropAdapter;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.WorkbenchActionBuilder;
-import org.eclipse.ui.internal.ide.dialogs.WelcomeEditorInput;
-import org.eclipse.ui.part.EditorInputTransfer;
-import org.eclipse.ui.part.MarkerTransfer;
-import org.eclipse.ui.part.ResourceTransfer;
-import org.eclipse.ui.statushandlers.StatusManager;
-import org.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;
-
-	private IWorkbenchAction openPerspectiveAction;
-
-	/**
-	 * Crates a new IDE workbench window advisor.
-	 * 
-	 * @param wbAdvisor
-	 *            the workbench advisor
-	 * @param configurer
-	 *            the window configurer
-	 */
-	public IDEWorkbenchWindowAdvisor(IDEWorkbenchAdvisor wbAdvisor,
-			IWorkbenchWindowConfigurer configurer) {
-		super(configurer);
-		this.wbAdvisor = wbAdvisor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)
-	 */
-	public ActionBarAdvisor createActionBarAdvisor(
-			IActionBarConfigurer configurer) {
-		return new WorkbenchActionBuilder(configurer);
-	}
-
-	/**
-	 * Returns the workbench.
-	 * 
-	 * @return the workbench
-	 */
-	private IWorkbench getWorkbench() {
-		return getWindowConfigurer().getWorkbenchConfigurer().getWorkbench();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preWindowShellClose
-	 */
-	public boolean preWindowShellClose() {
-		if (getWorkbench().getWorkbenchWindowCount() > 1) {
-			return true;
-		}
-		// the user has asked to close the last window, while will cause the
-		// workbench to close in due course - prompt the user for confirmation
-		IPreferenceStore store = IDEWorkbenchPlugin.getDefault()
-				.getPreferenceStore();
-		boolean promptOnExit = store
-				.getBoolean(IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW);
-
-		if (promptOnExit) {
-			String message;
-
-			String productName = null;
-			IProduct product = Platform.getProduct();
-			if (product != null) {
-				productName = product.getName();
-			}
-			if (productName == null) {
-				message = IDEWorkbenchMessages.PromptOnExitDialog_message0;
-			} else {
-				message = NLS.bind(
-						IDEWorkbenchMessages.PromptOnExitDialog_message1,
-						productName);
-			}
-
-			MessageDialogWithToggle dlg = MessageDialogWithToggle
-					.openOkCancelConfirm(getWindowConfigurer().getWindow()
-							.getShell(),
-							IDEWorkbenchMessages.PromptOnExitDialog_shellTitle,
-							message,
-							IDEWorkbenchMessages.PromptOnExitDialog_choice,
-							false, null, null);
-			if (dlg.getReturnCode() != IDialogConstants.OK_ID) {
-				return false;
-			}
-			if (dlg.getToggleState()) {
-				store
-						.setValue(
-								IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW,
-								false);
-				IDEWorkbenchPlugin.getDefault().savePluginPreferences();
-			}
-		}
-
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preWindowOpen
-	 */
-	public void preWindowOpen() {
-		IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-
-		// show the shortcut bar and progress indicator, which are hidden by
-		// default
-		configurer.setShowPerspectiveBar(true);
-		configurer.setShowFastViewBars(true);
-		configurer.setShowProgressIndicator(true);
-
-		// add the drag and drop support for the editor area
-		configurer.addEditorAreaTransfer(EditorInputTransfer.getInstance());
-		configurer.addEditorAreaTransfer(ResourceTransfer.getInstance());
-		configurer.addEditorAreaTransfer(FileTransfer.getInstance());
-		configurer.addEditorAreaTransfer(MarkerTransfer.getInstance());
-		configurer.configureEditorAreaDropListener(new EditorAreaDropAdapter(
-				configurer.getWindow()));
-
-		hookTitleUpdateListeners(configurer);
-	}
-
-	/**
-	 * Hooks the listeners needed on the window
-	 * 
-	 * @param configurer
-	 */
-	private void hookTitleUpdateListeners(IWorkbenchWindowConfigurer configurer) {
-		// hook up the listeners to update the window title
-		configurer.getWindow().addPageListener(new IPageListener() {
-			public void pageActivated(IWorkbenchPage page) {
-				updateTitle();
-			}
-
-			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(Bundle.START_TRANSIENT);
-								} catch (BundleException exception) {
-									StatusManager
-											.getManager()
-											.handle(
-													new Status(
-															IStatus.ERROR,
-															IDEApplication.PLUGIN_ID,
-															"Failed to load feature", exception));//$NON-NLS-1$
-								}
-							}
-						}
-					}
-				}
-			}
-
-			int wCount = getWorkbench().getWorkbenchWindowCount();
-			for (int i = 0; i < welcomeFeatures.size(); i++) {
-				AboutInfo newInfo = (AboutInfo) welcomeFeatures.get(i);
-				String id = newInfo.getWelcomePerspectiveId();
-				// Other editors were already opened in postWindowRestore(..)
-				if (id == null || i >= wCount) {
-					openWelcomeEditor(window, new WelcomeEditorInput(newInfo),
-							id);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Open a welcome editor for the given input
-	 */
-	private void openWelcomeEditor(IWorkbenchWindow window,
-			WelcomeEditorInput input, String perspectiveId) {
-		if (getWorkbench().getWorkbenchWindowCount() == 0) {
-			// Something is wrong, there should be at least
-			// one workbench window open by now.
-			return;
-		}
-
-		IWorkbenchWindow win = window;
-		if (perspectiveId != null) {
-			try {
-				win = getWorkbench().openWorkbenchWindow(perspectiveId,
-						wbAdvisor.getDefaultPageInput());
-				if (win == null) {
-					win = window;
-				}
-			} catch (WorkbenchException e) {
-				IDEWorkbenchPlugin
-						.log(
-								"Error opening window with welcome perspective.", e.getStatus()); //$NON-NLS-1$
-				return;
-			}
-		}
-
-		if (win == null) {
-			win = getWorkbench().getWorkbenchWindows()[0];
-		}
-
-		IWorkbenchPage page = win.getActivePage();
-		String id = perspectiveId;
-		if (id == null) {
-			id = getWorkbench().getPerspectiveRegistry()
-					.getDefaultPerspective();
-		}
-
-		if (page == null) {
-			try {
-				page = win.openPage(id, wbAdvisor.getDefaultPageInput());
-			} catch (WorkbenchException e) {
-				ErrorDialog.openError(win.getShell(),
-						IDEWorkbenchMessages.Problems_Opening_Page, e
-								.getMessage(), e.getStatus());
-			}
-		}
-		if (page == null) {
-			return;
-		}
-
-		if (page.getPerspective() == null) {
-			try {
-				page = getWorkbench().showPerspective(id, win);
-			} catch (WorkbenchException e) {
-				ErrorDialog
-						.openError(
-								win.getShell(),
-								IDEWorkbenchMessages.Workbench_openEditorErrorDialogTitle,
-								IDEWorkbenchMessages.Workbench_openEditorErrorDialogMessage,
-								e.getStatus());
-				return;
-			}
-		}
-
-		page.setEditorAreaVisible(true);
-
-		// see if we already have an editor
-		IEditorPart editor = page.findEditor(input);
-		if (editor != null) {
-			page.activate(editor);
-			return;
-		}
-
-		try {
-			page.openEditor(input, WELCOME_EDITOR_ID);
-		} catch (PartInitException e) {
-			ErrorDialog
-					.openError(
-							win.getShell(),
-							IDEWorkbenchMessages.Workbench_openEditorErrorDialogTitle,
-							IDEWorkbenchMessages.Workbench_openEditorErrorDialogMessage,
-							e.getStatus());
-		}
-		return;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#createEmptyWindowContents(org.eclipse.ui.application.IWorkbenchWindowConfigurer,
-	 *      org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createEmptyWindowContents(Composite parent) {
-		final IWorkbenchWindow window = getWindowConfigurer().getWindow();
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setLayout(new GridLayout(2, false));
-		Display display = composite.getDisplay();
-		Color bgCol = display
-				.getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND);
-		composite.setBackground(bgCol);
-		Label label = new Label(composite, SWT.WRAP);
-		label.setForeground(display
-				.getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
-		label.setBackground(bgCol);
-		label.setFont(JFaceResources.getFontRegistry().getBold(
-				JFaceResources.DEFAULT_FONT));
-		String msg = IDEWorkbenchMessages.IDEWorkbenchAdvisor_noPerspective;
-		label.setText(msg);
-		ToolBarManager toolBarManager = new ToolBarManager();
-		// TODO: should obtain the open perspective action from ActionFactory
-		openPerspectiveAction = ActionFactory.OPEN_PERSPECTIVE_DIALOG
-				.create(window);
-		toolBarManager.add(openPerspectiveAction);
-		ToolBar toolBar = toolBarManager.createControl(composite);
-		toolBar.setBackground(bgCol);
-		return composite;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#dispose()
-	 */
-	public void dispose() {
-		if (openPerspectiveAction!=null) {
-			openPerspectiveAction.dispose();
-			openPerspectiveAction = null;
-		}
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/ResourcePerspective.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/ResourcePerspective.java
deleted file mode 100644
index 44c3901..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/ResourcePerspective.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Remy Chi Jian Suen <remy.suen@gmail.com>
- *     		- Bug 44162 [Wizards]  Define constants for wizard ids of new.file, new.folder, and new.project
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.application;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard;
-
-/**
- */
-public class ResourcePerspective implements IPerspectiveFactory {
-	
-	private static String ID_PROJECT_EXPLORER = "org.eclipse.ui.navigator.ProjectExplorer"; //$NON-NLS-1$
-    /**
-     * Constructs a new Default layout engine.
-     */
-    public ResourcePerspective() {
-        super();
-    }
-
-    /**
-     * Defines the initial layout for a perspective.  
-     *
-     * Implementors of this method may add additional views to a
-     * perspective.  The perspective already contains an editor folder
-     * with <code>ID = ILayoutFactory.ID_EDITORS</code>.  Add additional views
-     * to the perspective in reference to the editor folder.
-     *
-     * This method is only called when a new perspective is created.  If
-     * an old perspective is restored from a persistence file then
-     * this method is not called.
-     *
-     * @param layout the factory used to add views to the perspective
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        defineActions(layout);
-        defineLayout(layout);
-    }
-
-    /**
-     * Defines the initial actions for a page.  
-     * @param layout The layout we are filling
-     */
-    public void defineActions(IPageLayout layout) {
-        // Add "new wizards".
-        layout.addNewWizardShortcut(BasicNewFolderResourceWizard.WIZARD_ID);
-        layout.addNewWizardShortcut(BasicNewFileResourceWizard.WIZARD_ID);
-
-        // Add "show views".
-        layout.addShowViewShortcut(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(ID_PROJECT_EXPLORER);
-        topLeft.addPlaceholder(IPageLayout.ID_BOOKMARKS);
-
-        // Add a placeholder for the old navigator to maintain compatibility
-        topLeft.addPlaceholder("org.eclipse.ui.views.ResourceNavigator"); //$NON-NLS-1$
-
-        // Bottom left.
-        IFolderLayout bottomLeft = layout.createFolder(
-                "bottomLeft", IPageLayout.BOTTOM, (float) 0.50,//$NON-NLS-1$
-                "topLeft");//$NON-NLS-1$
-        bottomLeft.addView(IPageLayout.ID_OUTLINE);
-
-        // Bottom right.
-		IFolderLayout bottomRight = layout.createFolder(
-                "bottomRight", IPageLayout.BOTTOM, (float) 0.66,//$NON-NLS-1$
-                editorArea);
-		
-		bottomRight.addView(IPageLayout.ID_TASK_LIST);
-		
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/IDEStartupPreferencePage.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/IDEStartupPreferencePage.java
deleted file mode 100644
index 949e392..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/IDEStartupPreferencePage.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.application.dialogs;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.dialogs.StartupPreferencePage;
-import org.eclipse.ui.internal.ide.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.application/src/org/eclipse/ui/internal/ide/application/package.html b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/package.html
deleted file mode 100644
index 052a46e..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/package.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="Author" content="IBM">
-<title>Package-level Javadoc</title>
-</head>
-
-<body>
-
-Internal implementation of the IDE- application of the Eclipse Platform User
-Interface.
-<h2>Package Specification</h2>
-This package does not contain any API.
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.ui.presentations.r21/.classpath b/bundles/org.eclipse.ui.presentations.r21/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.presentations.r21/.cvsignore b/bundles/org.eclipse.ui.presentations.r21/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.presentations.r21/.project b/bundles/org.eclipse.ui.presentations.r21/.project
deleted file mode 100644
index 5da924d..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.project
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.presentations.r21</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.ui</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0db0d73..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,90 +0,0 @@
-#Mon Oct 29 10:37:38 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 29e9857..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Oct 29 10:37:42 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 77b65f8..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:11:51 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.presentations.r21/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.presentations.r21/META-INF/MANIFEST.MF
deleted file mode 100644
index b744e77..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ui.presentations.r21; singleton:=true
-Bundle-Version: 3.2.100.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.ui.internal.presentations.r21.R21PresentationPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.presentations;x-internal:=true,
- org.eclipse.ui.internal.presentations.r21;x-internal:=true,
- org.eclipse.ui.internal.presentations.r21.widgets;x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)"
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.ui.presentations.r21/README.TXT b/bundles/org.eclipse.ui.presentations.r21/README.TXT
deleted file mode 100644
index 33b17e3..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/README.TXT
+++ /dev/null
@@ -1,15 +0,0 @@
-The r21presentation plugin provides an R2.1 style look and feel for
-Eclipse.  This look and feel is accomplished entirely through the
-Presentations API, no changes are needed to the base eclipse release.
-
-Use:
-
-1. Ensure the plugin is installed (look in your eclipse/plugins
-   directory for org.eclipse.ui.presentations.r21_3.0.0).
-2. Add the contents of the r21presentation.ini file to your primary
-   plugin's "plugin_customization.ini" file.  In the basic Eclipse
-   IDE, this file is located in plugins/org.eclipse.platform_3.0.0.
-3. Resolve any conflicts in the plugin_customization.ini file to favour
-   the settings for this project.  E.g., DOCK_PERSPECTIVE_BAR is set
-   to "topRight" in the basic platform but should be "left" for the
-   R21 presentation.
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.presentations.r21/about.html b/bundles/org.eclipse.ui.presentations.r21/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.presentations.r21/build.properties b/bundles/org.eclipse.ui.presentations.r21/build.properties
deleted file mode 100644
index eccd880..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-bin.includes = plugin.properties,\
-               plugin.xml,\
-               .,\
-               r21presentation.ini,\
-               README.TXT,\
-               about.html,\
-               META-INF/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.ui.presentations.r21/plugin.properties b/bundles/org.eclipse.ui.presentations.r21/plugin.properties
deleted file mode 100644
index 516f332..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName= R21 Presentation Plug-in
-providerName= Eclipse.org
-
-Presentation.r21.name=Eclipse 2.1 Style Presentation
diff --git a/bundles/org.eclipse.ui.presentations.r21/plugin.xml b/bundles/org.eclipse.ui.presentations.r21/plugin.xml
deleted file mode 100644
index dd5bcd3..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.presentationFactories">
-      <factory
-            name="%Presentation.r21.name"
-            class="org.eclipse.ui.internal.presentations.R21PresentationFactory"
-            id="org.eclipse.ui.internal.r21presentationFactory">
-      </factory>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.presentations.r21/r21presentation.ini b/bundles/org.eclipse.ui.presentations.r21/r21presentation.ini
deleted file mode 100644
index be8c8e3..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/r21presentation.ini
+++ /dev/null
@@ -1,18 +0,0 @@
-# R21 presentation settings: copy these values to your product's
-# plugin_customization.ini file before starting eclipse
-#
-# Its possible that platform has its own setting for some of these
-# values.  Be sure to resolve conflicts to favour the values in this
-# file.
-
-# use the R2.1 style
-org.eclipse.ui/presentationFactoryId=org.eclipse.ui.internal.r21presentationFactory
-
-# put the view tabs on the bottom (1024 == SWT.BOTTOM)
-org.eclipse.ui.workbench/VIEW_TAB_POSITION=1024
-
-# put the perspective switcher on the left
-org.eclipse.ui/DOCK_PERSPECTIVE_BAR=left
-
-# put the fast view bar on the left
-org.eclipse.ui/initialFastViewBarLocation=left
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21BasicStackPresentation.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21BasicStackPresentation.java
deleted file mode 100644
index 13f9041..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21BasicStackPresentation.java
+++ /dev/null
@@ -1,1217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Gunnar Wagenknecht - some contributions (bug fixes and enhancements)
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.presentations.r21.R21Colors;
-import org.eclipse.ui.internal.presentations.r21.R21PresentationMessages;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabItem;
-import org.eclipse.ui.internal.presentations.r21.widgets.R21PaneFolder;
-import org.eclipse.ui.internal.util.Util;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IPresentationSerializer;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.PresentationUtil;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * Base class for StackPresentations that display IPresentableParts in a
- * CTabFolder.
- * 
- * @since 3.0
- */
-public class R21BasicStackPresentation extends StackPresentation {
-
-	private R21PaneFolder paneFolder;
-
-	private IPresentablePart current;
-
-	private boolean activeState = false;
-
-	private MenuManager systemMenuManager = new MenuManager();
-
-	private CLabel titleLabel;
-
-	private boolean shellActive = true;
-
-	private final static String TAB_DATA = R21BasicStackPresentation.class
-			.getName()
-			+ ".partId"; //$NON-NLS-1$
-
-	// private PaneFolderButtonListener buttonListener = new
-	// PaneFolderButtonListener() {
-	// public void stateButtonPressed(int buttonId) {
-	// getSite().setState(buttonId);
-	// }
-	//
-	// public void closeButtonPressed(CTabItem item) {
-	// IPresentablePart part = getPartForTab(item);
-	//			
-	// getSite().close(part);
-	// }
-	// };
-	//	
-	private MouseListener mouseListener = new MouseAdapter() {
-		public void mouseDown(MouseEvent e) {
-			if (e.widget instanceof Control) {
-				Control ctrl = (Control) e.widget;
-				Point globalPos = ctrl.toDisplay(new Point(e.x, e.y));
-
-				// PR#1GDEZ25 - If selection will change in mouse up ignore
-				// mouse down.
-				// Else, set focus.
-				CTabItem newItem = paneFolder.getItem(paneFolder.getControl()
-						.toControl(globalPos));
-				if (newItem != null) {
-					CTabItem oldItem = paneFolder.getSelection();
-					if (newItem != oldItem) {
-						return;
-					}
-				}
-				if (current != null) {
-					current.setFocus();
-				}
-			}
-		}
-
-		public void mouseDoubleClick(MouseEvent e) {
-			if (getSite().getState() == IStackPresentationSite.STATE_MAXIMIZED) {
-				getSite().setState(IStackPresentationSite.STATE_RESTORED);
-			} else {
-				getSite().setState(IStackPresentationSite.STATE_MAXIMIZED);
-			}
-		}
-	};
-
-	private MouseListener titleMouseListener = new MouseAdapter() {
-		public void mouseDown(MouseEvent e) {
-			if (e.widget instanceof Control) {
-				Control ctrl = (Control) e.widget;
-				Point globalPos = ctrl.toDisplay(new Point(0, titleLabel
-						.getBounds().height));
-
-				if ((e.button == 1) && overImage(e.x)) {
-					showSystemMenu(globalPos);
-				}
-			}
-		}
-	};
-
-	private Listener menuListener = new Listener() {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		 */
-		public void handleEvent(Event event) {
-			Point pos = new Point(event.x, event.y);
-
-			showSystemMenu(pos);
-		}
-	};
-
-	private Listener dragListener = new Listener() {
-		public void handleEvent(Event event) {
-
-			Point localPos = new Point(event.x, event.y);
-			CTabItem tabUnderPointer = paneFolder.getItem(localPos);
-
-			// Drags on the title area drag the selected part only
-			if (tabUnderPointer == null) {
-				if (paneFolder.getTabPosition() == SWT.BOTTOM
-						&& localPos.y < paneFolder.getControl().getBounds().height
-								- paneFolder.getTabHeight()) {
-					tabUnderPointer = paneFolder.getSelection();
-				} else if (paneFolder.getTabPosition() == SWT.TOP
-						&& localPos.y > paneFolder.getTabHeight()) {
-					tabUnderPointer = paneFolder.getSelection();
-				}
-			}
-
-			// Not in a tab, not in a title area, must be dragging the whole
-			// stack
-			if (tabUnderPointer == null) {
-				getSite().dragStart(
-						paneFolder.getControl().toDisplay(localPos), false);
-				return;
-			}
-
-			IPresentablePart part = getPartForTab(tabUnderPointer);
-
-			if (getSite().isPartMoveable(part)) {
-				getSite().dragStart(part,
-						paneFolder.getControl().toDisplay(localPos), false);
-			}
-		}
-	};
-
-	private Listener selectionListener = new Listener() {
-		public void handleEvent(Event e) {
-			IPresentablePart item = getPartForTab((CTabItem) e.item);
-
-			if (item != null) {
-				getSite().selectPart(item);
-			}
-		}
-	};
-
-	private Listener resizeListener = new Listener() {
-		public void handleEvent(Event e) {
-			setControlSize();
-		}
-	};
-
-	private IPropertyListener childPropertyChangeListener = new IPropertyListener() {
-		public void propertyChanged(Object source, int property) {
-			if (source instanceof IPresentablePart) {
-				IPresentablePart part = (IPresentablePart) source;
-				childPropertyChanged(part, property);
-			}
-		}
-	};
-
-	private DisposeListener tabDisposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget instanceof CTabItem) {
-				CTabItem item = (CTabItem) e.widget;
-
-				IPresentablePart part = getPartForTab(item);
-
-				part.removePropertyListener(childPropertyChangeListener);
-			}
-		}
-	};
-
-	/** the shell listener for upgrading the gradient */
-	private ShellAdapter shellListener = new ShellAdapter() {
-
-		public void shellActivated(ShellEvent event) {
-			shellActive = true;
-			updateGradient();
-		}
-
-		public void shellDeactivated(ShellEvent event) {
-			shellActive = false;
-			updateGradient();
-		}
-	};
-
-	private ToolBar viewToolBar;
-
-	private ToolItem pullDownButton;
-
-	private ToolItem closeButton;
-
-	/**
-	 * @param control
-	 * @param stackSite
-	 */
-	public R21BasicStackPresentation(R21PaneFolder control,
-			IStackPresentationSite stackSite) {
-		super(stackSite);
-		paneFolder = control;
-
-		shellActive = paneFolder.getControl().getShell().equals(
-				control.getControl().getDisplay().getActiveShell());
-
-		// tabFolder.setMinimizeVisible(stackSite.supportsState(IStackPresentationSite.STATE_MINIMIZED));
-		// tabFolder.setMaximizeVisible(stackSite.supportsState(IStackPresentationSite.STATE_MAXIMIZED));
-		//				
-		titleLabel = new CLabel(paneFolder.getControl(), SWT.SHADOW_NONE);
-		titleLabel.setVisible(false);
-		titleLabel.moveAbove(null);
-		titleLabel.addMouseListener(titleMouseListener);
-		titleLabel.addMouseListener(mouseListener);
-		titleLabel.addListener(SWT.MenuDetect, menuListener);
-		PresentationUtil.addDragListener(titleLabel, dragListener);
-
-		// ColorSchemeService.setViewTitleFont(this, titleLabel);
-
-		viewToolBar = new ToolBar(control.getControl(), SWT.HORIZONTAL
-				| SWT.FLAT);
-		viewToolBar.moveAbove(null);
-
-		pullDownButton = new ToolItem(viewToolBar, SWT.PUSH);
-		// Image img =
-		// WorkbenchImages.getImage(IWorkbenchGraphicConstants.IMG_LCL_VIEW_MENU);
-		Image hoverImage = WorkbenchImages
-				.getImage(IWorkbenchGraphicConstants.IMG_LCL_VIEW_MENU);
-		pullDownButton.setDisabledImage(null); // TODO: comment this out?
-		// PR#1GE56QT - Avoid creation of unnecessary image.
-		pullDownButton.setImage(hoverImage);
-		pullDownButton.setToolTipText(R21PresentationMessages
-				.getString("BasicStackPresentation.menu.tooltip")); //$NON-NLS-1$
-		pullDownButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				showPaneMenu();
-			}
-		});
-
-		// listener to switch between visible tabItems
-		paneFolder.getControl().addListener(SWT.Selection, selectionListener);
-
-		// listener to resize visible components
-		paneFolder.getControl().addListener(SWT.Resize, resizeListener);
-
-		// listen for mouse down on tab to set focus.
-		paneFolder.getControl().addMouseListener(mouseListener);
-
-		paneFolder.getControl().addListener(SWT.MenuDetect, menuListener);
-
-		// tabFolder.addButtonListener(buttonListener);
-
-		PresentationUtil.addDragListener(paneFolder.getControl(), dragListener);
-
-		// add the shell listener to track shell activations
-		// TODO: check if workaround can be removed (see bug 55458)
-		paneFolder.getControl().getShell().addShellListener(shellListener);
-
-		// Uncomment to allow dragging from the title label
-		// PresentationUtil.addDragListener(titleLabel, new Listener() {
-		// public void handleEvent(Event event) {
-		// if (layout.isTrimOnTop()) {
-		// Point localPos = new Point(event.x, event.y);
-		// getSite().dragStart(titleLabel.toDisplay(localPos), false);
-		// }
-		// }
-		// });
-
-		// // Compute the tab height
-		// int tabHeight = viewToolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		//
-		// // Enforce a minimum tab height
-		// if (tabHeight < 20) {
-		// tabHeight = 20;
-		// }
-		// paneFolder.setTabHeight(tabHeight);
-		//		
-		populateSystemMenu(systemMenuManager);
-	}
-
-	/*
-	 * Return true if <code>x</code> is over the label image.
-	 */
-	private boolean overImage(int x) {
-		return x < titleLabel.getImage().getBounds().width;
-	}
-
-	/**
-	 * @param systemMenuManager
-	 */
-	private void populateSystemMenu(IMenuManager systemMenuManager) {
-
-		systemMenuManager.add(new GroupMarker("misc")); //$NON-NLS-1$
-		systemMenuManager.add(new GroupMarker("restore")); //$NON-NLS-1$
-		systemMenuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuRestore(getSite())));
-
-		systemMenuManager.add(new SystemMenuMove(getSite(), getPaneName()));
-		systemMenuManager.add(new GroupMarker("size")); //$NON-NLS-1$
-		systemMenuManager.add(new GroupMarker("state")); //$NON-NLS-1$
-		systemMenuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuMinimize(getSite())));
-
-		systemMenuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuMaximize(getSite())));
-		systemMenuManager.add(new Separator("close")); //$NON-NLS-1$
-		systemMenuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuClose(getSite())));
-
-		getSite().addSystemActions(systemMenuManager);
-	}
-
-	protected String getPaneName() {
-		return R21PresentationMessages.getString("BasicStackPresentation.pane"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Displays the view menu as a popup
-	 */
-	public void showPaneMenu() {
-		IPartMenu menu = getPartMenu();
-
-		if (menu != null) {
-			Rectangle bounds = DragUtil.getDisplayBounds(viewToolBar);
-			menu.showMenu(new Point(bounds.x, bounds.y + bounds.height));
-		}
-	}
-
-	/**
-	 * Returns the currently selected part, or <code>null</code>.
-	 * 
-	 * @return the currently selected part, or <code>null</code>
-	 */
-	protected IPresentablePart getCurrent() {
-		return current;
-	}
-
-	/**
-	 * Returns the index of the tab for the given part, or returns
-	 * tabFolder.getItemCount() if there is no such tab.
-	 * 
-	 * @param part
-	 *            part being searched for
-	 * @return the index of the tab for the given part, or the number of tabs if
-	 *         there is no such tab
-	 */
-	private final int indexOf(IPresentablePart part) {
-		if (part == null) {
-			return paneFolder.getItemCount();
-		}
-
-		CTabItem[] items = paneFolder.getItems();
-
-		for (int idx = 0; idx < items.length; idx++) {
-			IPresentablePart tabPart = getPartForTab(items[idx]);
-
-			if (part == tabPart) {
-				return idx;
-			}
-		}
-
-		return items.length;
-	}
-
-	/**
-	 * Returns the tab for the given part, or null if there is no such tab
-	 * 
-	 * @param part
-	 *            the part being searched for
-	 * @return the tab for the given part, or null if there is no such tab
-	 */
-	protected final CTabItem getTab(IPresentablePart part) {
-		CTabItem[] items = paneFolder.getItems();
-
-		int idx = indexOf(part);
-
-		if (idx < items.length) {
-			return items[idx];
-		}
-
-		return null;
-	}
-
-	/**
-	 * @param part
-	 * @param property
-	 */
-	protected void childPropertyChanged(IPresentablePart part, int property) {
-
-		CTabItem tab = getTab(part);
-		initTab(tab, part);
-
-		switch (property) {
-		case IPresentablePart.PROP_BUSY:
-			break;
-		case IPresentablePart.PROP_HIGHLIGHT_IF_BACK:
-			// FontRegistry registry =
-			// PlatformUI.getWorkbench().
-			// getThemeManager().getCurrentTheme().
-			// getFontRegistry();
-			//	     	
-			// if(!getCurrent().equals(part))//Set bold if it does currently
-			// have focus
-			// tab.setFont(registry.getBold(IWorkbenchThemeConstants.TAB_TEXT_FONT));
-			// break;
-		case IPresentablePart.PROP_TOOLBAR:
-		case IPresentablePart.PROP_PANE_MENU:
-		case IPresentablePart.PROP_TITLE:
-			setControlSize();
-			break;
-		}
-	}
-
-	protected final IPresentablePart getPartForTab(CTabItem item) {
-		IPresentablePart part = (IPresentablePart) item.getData(TAB_DATA);
-
-		return part;
-	}
-
-	/**
-	 * Returns the underlying tab folder for this presentation.
-	 * 
-	 * @return the tab folder
-	 */
-	protected R21PaneFolder getPaneFolder() {
-		return paneFolder;
-	}
-
-	/**
-	 * Returns true iff the underlying tab folder has been disposed.
-	 * 
-	 * @return true if disposed
-	 */
-	public boolean isDisposed() {
-		return paneFolder == null || paneFolder.isDisposed();
-	}
-
-	/**
-	 * Update the tab folder's colours to match the current theme settings and
-	 * active state
-	 */
-	protected void updateGradient() {
-
-		if (isDisposed()) {
-			return;
-		}
-
-		Color fgColor;
-		Color[] bgColors;
-		int[] bgPercents;
-		boolean vertical = false;
-		if (isActive()) {
-			if (getShellActivated()) {
-				fgColor = R21Colors.getSystemColor(SWT.COLOR_TITLE_FOREGROUND);
-				bgColors = R21Colors.getActiveViewGradient();
-				bgPercents = R21Colors.getActiveViewGradientPercents();
-			} else {
-				fgColor = R21Colors
-						.getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND);
-				bgColors = R21Colors.getDeactivatedViewGradient();
-				bgPercents = R21Colors.getDeactivatedViewGradientPercents();
-			}
-
-		} else {
-			fgColor = R21Colors.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-			bgColors = null;
-			bgPercents = null;
-		}
-
-		drawGradient(fgColor, bgColors, bgPercents, vertical);
-
-		// Color fgColor;
-		// ITheme currentTheme =
-		// PlatformUI.getWorkbench().getThemeManager().getCurrentTheme();
-		// FontRegistry fontRegistry = currentTheme.getFontRegistry();
-		// ColorRegistry colorRegistry = currentTheme.getColorRegistry();
-		// Color [] bgColors = new Color[2];
-		// int [] percent = new int[1];
-		// boolean vertical;
-
-		// if (isActive()){
-		//        	
-		// CTabItem item = getPaneFolder().getSelection();
-		// if(item != null && !getPartForTab(item).isBusy()){
-		// Font tabFont =
-		// fontRegistry.get(IWorkbenchThemeConstants.TAB_TEXT_FONT);
-		// // item.setFont(tabFont);
-		// }
-		//            
-		// fgColor =
-		// colorRegistry.get(IWorkbenchThemeConstants.ACTIVE_TAB_TEXT_COLOR);
-		// bgColors[0] =
-		// colorRegistry.get(IWorkbenchThemeConstants.ACTIVE_TAB_BG_START);
-		// bgColors[1] =
-		// colorRegistry.get(IWorkbenchThemeConstants.ACTIVE_TAB_BG_END);
-		// percent[0] =
-		// currentTheme.getInt(IWorkbenchThemeConstants.ACTIVE_TAB_PERCENT);
-		// vertical =
-		// currentTheme.getBoolean(IWorkbenchThemeConstants.ACTIVE_TAB_VERTICAL);
-		// } else {
-		// fgColor =
-		// colorRegistry.get(IWorkbenchThemeConstants.INACTIVE_TAB_TEXT_COLOR);
-		// bgColors[0] =
-		// colorRegistry.get(IWorkbenchThemeConstants.INACTIVE_TAB_BG_START);
-		// bgColors[1] =
-		// colorRegistry.get(IWorkbenchThemeConstants.INACTIVE_TAB_BG_END);
-		// percent[0] =
-		// currentTheme.getInt(IWorkbenchThemeConstants.INACTIVE_TAB_PERCENT);
-		// vertical =
-		// currentTheme.getBoolean(IWorkbenchThemeConstants.INACTIVE_TAB_VERTICAL);
-		// }
-		//      
-		//		
-		// drawGradient(fgColor, bgColors, bgPercents, false);
-	}
-
-	/**
-	 * Draws the applicable gradient on the title area
-	 * 
-	 * @param fgColor
-	 * @param bgColors
-	 * @param percentages
-	 * @param vertical
-	 */
-	public void drawGradient(Color fgColor, Color[] bgColors,
-			int[] percentages, boolean vertical) {
-		// paneFolder.setSelectionForeground(fgColor);
-		// paneFolder.setSelectionBackground(bgColors, percentages, vertical);
-
-		if (titleLabel == null || viewToolBar == null) {
-			return;
-		}
-
-		titleLabel.setBackground(bgColors, percentages, vertical);
-		titleLabel.setForeground(fgColor);
-
-		titleLabel.update();
-	}
-
-	/**
-	 * @return true if active
-	 */
-	public boolean isActive() {
-		return activeState;
-	}
-
-	/**
-	 * Set the size of a page in the folder.
-	 * 
-	 * TODO: Kim here...I had to make this public so that the when the font was
-	 * updated via the color scheme service it could relayout the
-	 * presentation... calling control.getLayout() doesn't do the trick.
-	 */
-	public void setControlSize() {
-		// Set up the top-right controls
-		// List topRight = new ArrayList(3);
-
-		if (current != null) {
-			paneFolder.setTopLeft(titleLabel);
-			titleLabel.setText(current.getTitle());
-			titleLabel.setImage(current.getTitleImage());
-			titleLabel.setVisible(true);
-
-			// set tooltip (https://bugs.eclipse.org/bugs/show_bug.cgi?id=67513)
-			String toolTipText = current.getTitleToolTip();
-			titleLabel.setToolTipText(toolTipText
-					.equals(Util.ZERO_LENGTH_STRING) ? null : toolTipText);
-			
-		}
-
-		Control currentToolbar = getCurrentToolbar();
-		paneFolder.setTopCenter(currentToolbar);
-
-		IPartMenu partMenu = getPartMenu();
-
-		if (partMenu != null) {
-			pullDownButton.setEnabled(true);
-		} else {
-			pullDownButton.setEnabled(false);
-		}
-		paneFolder.setTopRight(viewToolBar);
-		viewToolBar.setVisible(true);
-
-		paneFolder.layout(true);
-
-		if (current != null) {
-			Rectangle clientArea = paneFolder.getClientArea();
-			Rectangle bounds = paneFolder.getControl().getBounds();
-			clientArea.x += bounds.x;
-			clientArea.y += bounds.y;
-
-			current.setBounds(clientArea);
-		}
-
-	}
-
-	/**
-	 * Returns the IPartMenu for the currently selected part, or null if the
-	 * current part does not have a menu.
-	 * 
-	 * @return the IPartMenu for the currently selected part or null if none
-	 */
-	protected IPartMenu getPartMenu() {
-		IPresentablePart part = getCurrentPart();
-		if (part == null) {
-			return null;
-		}
-
-		return part.getMenu();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#dispose()
-	 */
-	public void dispose() {
-		if (isDisposed()) {
-			return;
-		}
-
-		// remove shell listener
-		paneFolder.getControl().getShell().removeShellListener(shellListener);
-
-		PresentationUtil.removeDragListener(paneFolder.getControl(),
-				dragListener);
-		PresentationUtil.removeDragListener(titleLabel, dragListener);
-
-		systemMenuManager.dispose();
-		systemMenuManager.removeAll();
-		paneFolder.getControl().dispose();
-		paneFolder = null;
-
-		titleLabel.dispose();
-		titleLabel = null;
-
-		viewToolBar.dispose();
-	}
-
-	/**
-	 * @param isActive
-	 */
-	public void setActive(boolean isActive) {
-		activeState = isActive;
-		updateGradient();
-	}
-
-	/**
-	 * Return whether the window's shell is activated
-	 */
-	/* package */boolean getShellActivated() {
-		return shellActive;
-	}
-
-	/**
-	 * Returns the top level window.
-	 * @return the window
-	 */
-	public Window getWindow() {
-		Control ctrl = getControl();
-		if (ctrl != null) {
-			Object data = ctrl.getShell().getData();
-			if (data instanceof Window) {
-				return (Window) data;
-			}
-		}
-		return null;
-	}
-
-	private CTabItem createPartTab(IPresentablePart part, int tabIndex) {
-		CTabItem tabItem;
-
-		int style = SWT.NONE;
-
-		if (getSite().isCloseable(part)) {
-			style |= SWT.CLOSE;
-		}
-
-		tabItem = paneFolder.createItem(style, tabIndex);
-
-		tabItem.setData(TAB_DATA, part);
-
-		part.addPropertyListener(childPropertyChangeListener);
-		tabItem.addDisposeListener(tabDisposeListener);
-
-		initTab(tabItem, part);
-
-		return tabItem;
-	}
-
-	// Create a close button in the title bar for the argument part (if needed).
-	private void updateCloseButton() {
-		// remove the close button if needed
-		if (current == null || !getSite().isCloseable(current)) {
-			if (closeButton != null) {
-				closeButton.dispose();
-				closeButton = null;
-
-				paneFolder.flush();
-			}
-			return;
-		}
-
-		// a close button is needed, so if its already there, we're done
-		if (closeButton != null) {
-			return;
-		}
-
-		// otherwise create it
-		closeButton = new ToolItem(viewToolBar, SWT.PUSH);
-		closeButton.setDisabledImage(null);
-		closeButton.setImage(WorkbenchImages
-				.getImage(IWorkbenchGraphicConstants.IMG_LCL_CLOSE_VIEW));
-		closeButton.setToolTipText(R21PresentationMessages
-				.getString("BasicStackPresentation.close.tooltip")); //$NON-NLS-1$
-		closeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				close(getCurrent());
-			}
-		});
-
-		paneFolder.flush();
-	}
-
-	/**
-	 * Initializes a tab for the given part. Sets the text, icon, tool tip, etc.
-	 * This will also be called whenever a relevant property changes in the part
-	 * to reflect those changes in the tab. Subclasses may override to change
-	 * the appearance of tabs for a particular part.
-	 * 
-	 * @param tabItem
-	 *            tab for the part
-	 * @param part
-	 *            the part being displayed
-	 */
-	protected void initTab(CTabItem tabItem, IPresentablePart part) {
-		tabItem.setText(part.getName());
-
-		// tabItem.setImage(part.getTitleImage());
-
-		// String toolTipText = part.getTitleToolTip();
-		// if (!toolTipText.equals(Util.ZERO_LENGTH_STRING)) {
-		// tabItem.setToolTipText(toolTipText);
-		// }
-
-		// FontRegistry registry =
-		// PlatformUI.getWorkbench().
-		// getThemeManager().getCurrentTheme().
-		// getFontRegistry();
-		//		
-		// if(part.isBusy())
-		// tabItem.setFont(registry.getItalic(IWorkbenchThemeConstants.TAB_TEXT_FONT));
-		// else{
-		// tabItem.setFont(registry.get(IWorkbenchThemeConstants.TAB_TEXT_FONT));
-		// }
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#addPart(org.eclipse.ui.internal.skins.IPresentablePart,
-	 *      org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void addPart(IPresentablePart newPart, Object cookie) {
-
-		int idx;
-
-		if (cookie instanceof Integer) {
-			idx = ((Integer) cookie).intValue();
-		} else {
-			// Select a location for newly inserted parts
-			idx = paneFolder.getItemCount();
-		}
-
-		addPart(newPart, idx);
-	}
-
-	/**
-	 * Adds the given presentable part to this presentation at the given index.
-	 * Does nothing if a tab already exists for the given part.
-	 * 
-	 * @param newPart
-	 * @param index
-	 */
-	public void addPart(IPresentablePart newPart, int index) {
-		// If we already have a tab for this part, do nothing
-		if (getTab(newPart) != null) {
-			return;
-		}
-		createPartTab(newPart, index);
-
-		setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#removePart(org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void removePart(IPresentablePart oldPart) {
-		if (current == oldPart) {
-			titleLabel.setImage(null);
-			current = null;
-		}
-
-		CTabItem item = getTab(oldPart);
-		if (item == null) {
-			return;
-		}
-		oldPart.setVisible(false);
-
-		item.dispose();
-
-		// Layout the folder again in case there is only one item
-		setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#selectPart(org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void selectPart(IPresentablePart toSelect) {
-		if (toSelect == current) {
-			return;
-		}
-
-		IPresentablePart oldPart = current;
-
-		current = toSelect;
-
-		if (current != null) {
-			paneFolder.setSelection(indexOf(current));
-			current.setVisible(true);
-			updateCloseButton();
-			setControlSize();
-		}
-
-		if (oldPart != null) {
-			oldPart.setVisible(false);
-		}
-	}
-
-	/**
-	 * @return the current part
-	 */
-	public IPresentablePart getCurrentPart() {
-		return current;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setBounds(org.eclipse.swt.graphics.Rectangle)
-	 */
-	public void setBounds(Rectangle bounds) {
-		if (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) {
-			bounds = Geometry.copy(bounds);
-			bounds.height = computePreferredSize(false, Integer.MAX_VALUE,
-					bounds.width, Integer.MAX_VALUE);
-		}
-
-		paneFolder.getControl().setBounds(bounds);
-		setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#computeMinimumSize()
-	 */
-	public Point computeMinimumSize() {
-		Point result = Geometry.getSize(paneFolder.computeTrim(0, 0, 0, 0));
-
-		result.x += 100;
-
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setVisible(boolean)
-	 */
-	public void setVisible(boolean isVisible) {
-		if (current != null) {
-			current.setVisible(isVisible);
-		}
-		paneFolder.getControl().setVisible(isVisible);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setState(int)
-	 */
-	public void setState(int state) {
-		// tabFolder.setState(state);
-	}
-
-	/**
-	 * @return the menu manager
-	 */
-	public IMenuManager getSystemMenuManager() {
-		return systemMenuManager;
-	}
-
-	/**
-	 * @param point
-	 */
-	protected void showSystemMenu(Point point) {
-		Menu aMenu = systemMenuManager.createContextMenu(paneFolder
-				.getControl().getParent());
-		systemMenuManager.update(true);
-		aMenu.setLocation(point.x, point.y);
-		aMenu.setVisible(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#getControl()
-	 */
-	public Control getControl() {
-		return paneFolder.getControl();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#dragOver(org.eclipse.swt.widgets.Control,
-	 *      org.eclipse.swt.graphics.Point)
-	 */
-	public StackDropResult dragOver(Control currentControl, Point location) {
-
-		// Determine which tab we're currently dragging over
-		Point localPos = paneFolder.getControl().toControl(location);
-		final CTabItem tabUnderPointer = paneFolder.getItem(localPos);
-
-		// This drop target only deals with tabs... if we're not dragging over
-		// a tab, exit.
-		if (tabUnderPointer == null) {
-			return null;
-		}
-
-		// workaround when left tab is dragged over next
-		int dragOverIndex = paneFolder.indexOf(tabUnderPointer);
-
-		return new StackDropResult(Geometry.toDisplay(paneFolder.getControl(),
-				tabUnderPointer.getBounds()), new Integer(dragOverIndex));
-	}
-
-	/**
-	 * Returns the toolbar control for the currently selected part, or null if
-	 * none (not all parts have a toolbar).
-	 * 
-	 * @return the current toolbar or null if none
-	 */
-	protected Control getCurrentToolbar() {
-		IPresentablePart part = getCurrentPart();
-		if (part == null) {
-			return null;
-		}
-
-		return part.getToolBar();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#showSystemMenu()
-	 */
-	public void showSystemMenu() {
-		IPresentablePart part = getCurrentPart();
-		if (part != null) {
-			Rectangle bounds = DragUtil.getDisplayBounds(paneFolder
-					.getControl());
-
-			int idx = paneFolder.getSelectionIndex();
-			if (idx > -1) {
-				CTabItem item = paneFolder.getItem(idx);
-				Rectangle itemBounds = item.getBounds();
-
-				bounds.x += itemBounds.x;
-				bounds.y += itemBounds.y;
-			}
-
-			Point location = new Point(bounds.x, bounds.y
-					+ paneFolder.getTabHeight());
-			showSystemMenu(location);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#getTabList(IPresentablePart)
-	 */
-	public Control[] getTabList(IPresentablePart part) {
-		ArrayList list = new ArrayList();
-		if (paneFolder.getTabPosition() == SWT.BOTTOM) {
-			if (part.getToolBar() != null) {
-				list.add(part.getToolBar());
-			}
-			if (part.getControl() != null) {
-				list.add(part.getControl());
-			}
-			if (getPaneFolder() != null) {
-				list.add(getPaneFolder().getControl());
-			}
-		} else {
-			if (getPaneFolder() != null) {
-				list.add(getPaneFolder().getControl());
-			}
-			if (part.getToolBar() != null) {
-				list.add(part.getToolBar());
-			}
-			if (part.getControl() != null) {
-				list.add(part.getControl());
-			}
-		}
-		return (Control[]) list.toArray(new Control[list.size()]);
-	}
-
-	/**
-	 * @param parentShell 
-	 * @param x 
-	 * @param y 
-	 */
-	protected void showList(Shell parentShell, int x, int y) {
-		// final R21PaneFolder tabFolder = getTabFolder();
-		//
-		// int shellStyle = SWT.RESIZE | SWT.ON_TOP | SWT.NO_TRIM;
-		// int tableStyle = SWT.V_SCROLL | SWT.H_SCROLL;
-		// final BasicStackList editorList = new
-		// BasicStackList(tabFolder.getControl().getShell(),
-		// shellStyle, tableStyle);
-		// editorList.setInput(this);
-		// Point size = editorList.computeSizeHint();
-		//        
-		// Rectangle bounds = Display.getCurrent().getBounds();
-		// if (x + size.x > bounds.width) x = bounds.width - size.x;
-		// if (y + size.y > bounds.height) y = bounds.height - size.y;
-		// editorList.setLocation(new Point(x, y));
-		// editorList.setVisible(true);
-		// editorList.setFocus();
-		// editorList.getTableViewer().getTable().getShell().addListener(
-		// SWT.Deactivate, new Listener() {
-		//
-		// public void handleEvent(Event event) {
-		// editorList.setVisible(false);
-		// }
-		// });
-	}
-
-	/*
-	 * Shows the list of tabs at the top left corner of the editor
-	 */
-	protected void showListDefaultLocation() {
-		R21PaneFolder tabFolder = getPaneFolder();
-		Shell shell = tabFolder.getControl().getShell();
-		Rectangle clientArea = tabFolder.getClientArea();
-		Point location = tabFolder.getControl().getDisplay().map(
-				tabFolder.getControl(), null, clientArea.x, clientArea.y);
-		showList(shell, location.x, location.y);
-	}
-
-	void setSelection(CTabItem tabItem) {
-		getSite().selectPart(getPartForTab(tabItem));
-	}
-
-	void close(IPresentablePart presentablePart) {
-		getSite().close(new IPresentablePart[] { presentablePart });
-	}
-
-	Image getLabelImage(IPresentablePart presentablePart) {
-		return presentablePart.getTitleImage();
-	}
-
-	/**
-	 * @param presentablePart
-	 * @param includePath  
-	 */
-	String getLabelText(IPresentablePart presentablePart, boolean includePath) {
-		String title = presentablePart.getTitle().trim();
-		return title;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#setActive(int)
-	 */
-	public void setActive(int newState) {
-		setActive(newState == AS_ACTIVE_FOCUS);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#restoreState(org.eclipse.ui.presentations.IPresentationSerializer,
-	 *      org.eclipse.ui.IMemento)
-	 */
-	public void restoreState(IPresentationSerializer serializer,
-			IMemento savedState) {
-		IMemento[] parts = savedState.getChildren(IWorkbenchConstants.TAG_PART);
-
-		for (int idx = 0; idx < parts.length; idx++) {
-			String id = parts[idx].getString(IWorkbenchConstants.TAG_ID);
-
-			if (id != null) {
-				IPresentablePart part = serializer.getPart(id);
-
-				if (part != null) {
-					addPart(part, getPaneFolder().getItemCount());
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#saveState(org.eclipse.ui.presentations.IPresentationSerializer,
-	 *      org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IPresentationSerializer context, IMemento memento) {
-		super.saveState(context, memento);
-
-		List parts = getPresentableParts();
-
-		Iterator iter = parts.iterator();
-		while (iter.hasNext()) {
-			IPresentablePart next = (IPresentablePart) iter.next();
-
-			IMemento childMem = memento
-					.createChild(IWorkbenchConstants.TAG_PART);
-			childMem.putString(IWorkbenchConstants.TAG_ID, context.getId(next));
-		}
-	}
-
-	/**
-	 * Returns the List of IPresentablePart currently in this presentation
-	 */
-	private List getPresentableParts() {
-		Assert.isTrue(!isDisposed());
-
-		CTabItem[] items = getPaneFolder().getItems();
-		List result = new ArrayList(items.length);
-
-		for (int idx = 0; idx < getPaneFolder().getItemCount(); idx++) {
-			result.add(getPartForTab(items[idx]));
-		}
-
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21EditorStackPresentation.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21EditorStackPresentation.java
deleted file mode 100644
index c50a355..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21EditorStackPresentation.java
+++ /dev/null
@@ -1,1007 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.IPreferenceConstants;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.presentations.r21.R21Colors;
-import org.eclipse.ui.internal.presentations.r21.R21PresentationMessages;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabFolder;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabFolderEvent;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabFolderListener;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabItem;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IPresentationSerializer;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.PresentationUtil;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * A stack presentation for editors using a widget set that is close to what was
- * provided in 2.1.
- * <p>
- * EXPERIMENTAL
- * </p>
- * 
- * @since 3.0
- */
-public class R21EditorStackPresentation extends StackPresentation {
-
-	/** the tab folder */
-	private CTabFolder tabFolder;
-
-	/** the drag listener */
-	private Listener dragListener = new Listener() {
-
-		public void handleEvent(Event event) {
-			Point localPos = new Point(event.x, event.y);
-			CTabItem tabUnderPointer = tabFolder.getItem(localPos);
-
-			if (tabUnderPointer == null) {
-				// drag the entire stack
-				if (getSite().isStackMoveable()) {
-					getSite().dragStart(tabFolder.toDisplay(localPos), false);
-				}
-				return;
-			}
-
-			IPresentablePart part = getPartForTab(tabUnderPointer);
-
-			if (getSite().isPartMoveable(part)) {
-				// drag the part
-				getSite().dragStart(part, tabFolder.toDisplay(localPos), false);
-			}
-		}
-	};
-
-	/** the listener that will close the tab */
-	private CTabFolderListener closeListener = new CTabFolderListener() {
-
-		public void itemClosed(CTabFolderEvent e) {
-			CTabItem item = (CTabItem) e.item;
-			if (null != item) {
-				e.doit = false; // otherwise tab is auto disposed on return
-				getSite().close(new IPresentablePart[] { getPartForTab(item) });
-			}
-		}
-	};
-
-	/** the current part */
-	private IPresentablePart current;
-
-	/** the system menu */
-	private MenuManager systemMenuManager = new MenuManager();
-
-	/** the shared preference store */
-	private static IPreferenceStore preferenceStore = WorkbenchPlugin
-			.getDefault().getPreferenceStore();
-
-	// don't reset this dynamically, so just keep the information static.
-	// see bug:
-	// 75422 [Presentations] Switching presentation to R21 switches immediately,
-	// but only partially
-	private static int tabPos = PlatformUI.getPreferenceStore()
-			.getInt(IWorkbenchPreferenceConstants.EDITOR_TAB_POSITION);
-
-	/** the tab item property holding the part */
-	private final static String TAB_DATA = R21EditorStackPresentation.class
-			.getName()
-			+ ".partId"; //$NON-NLS-1$
-
-	/** the mouse listener for setting focus */
-	private MouseListener mouseListener = new MouseAdapter() {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseDown(MouseEvent e) {
-			if (e.widget instanceof Control) {
-				Control ctrl = (Control) e.widget;
-
-				Point globalPos = ctrl.toDisplay(new Point(e.x, e.y));
-
-				CTabItem newItem = tabFolder.getItem(tabFolder
-						.toControl(globalPos));
-				if (newItem != null) {
-
-					// show menu over icon
-					if ((e.button == 1) && overImage(newItem, e.x)) {
-						getSite().selectPart(getPartForTab(newItem));
-						showSystemMenu();
-					}
-
-					// PR#1GDEZ25 - If selection will change in mouse up ignore
-					// mouse down.
-					CTabItem oldItem = tabFolder.getSelection();
-					if (newItem != oldItem) {
-						return;
-					}
-				}
-
-				// set focus
-				if (current != null) {
-					current.setFocus();
-				}
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.events.MouseAdapter#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseDoubleClick(MouseEvent e) {
-			if (getSite().getState() == IStackPresentationSite.STATE_MAXIMIZED) {
-				getSite().setState(IStackPresentationSite.STATE_RESTORED);
-			} else {
-				getSite().setState(IStackPresentationSite.STATE_MAXIMIZED);
-			}
-		}
-	};
-
-	/**
-	 * Return true if <code>x</code> is over the tab item image.
-	 * 
-	 * @return true if <code>x</code> is over the tab item image
-	 */
-	static boolean overImage(CTabItem item, int x) {
-		Rectangle imageBounds = item.getImage().getBounds();
-		return x < (item.getBounds().x + imageBounds.x + imageBounds.width);
-	}
-
-	/** the menu listener for showing the menu */
-	private Listener menuListener = new Listener() {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		 */
-		public void handleEvent(Event event) {
-			Point pos = new Point(event.x, event.y);
-			showSystemMenu(pos);
-		}
-	};
-
-	/** the selection listener */
-	private Listener selectionListener = new Listener() {
-
-		public void handleEvent(Event e) {
-			IPresentablePart item = getPartForTab((CTabItem) e.item);
-			if (item != null) {
-				getSite().selectPart(item);
-			}
-		}
-	};
-
-	private Listener resizeListener = new Listener() {
-
-		public void handleEvent(Event e) {
-			setControlSize();
-		}
-	};
-
-	/** a property change listener for the parts */
-	private IPropertyListener childPropertyChangeListener = new IPropertyListener() {
-
-		public void propertyChanged(Object source, int property) {
-			if (source instanceof IPresentablePart) {
-				IPresentablePart part = (IPresentablePart) source;
-				childPropertyChanged(part, property);
-			}
-		}
-	};
-
-	/** a dispose listener to do some cleanups when a tab is disposed */
-	private DisposeListener tabDisposeListener = new DisposeListener() {
-
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget instanceof CTabItem) {
-				CTabItem item = (CTabItem) e.widget;
-				IPresentablePart part = getPartForTab(item);
-				part.removePropertyListener(childPropertyChangeListener);
-			}
-		}
-	};
-
-	/** the shell listener for upgrading the gradient */
-	private ShellAdapter shellListener = new ShellAdapter() {
-
-		public void shellActivated(ShellEvent event) {
-			updateGradient();
-		}
-
-		public void shellDeactivated(ShellEvent event) {
-			updateGradient();
-		}
-	};
-
-	/**
-	 * Create a new presentation stack.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 * @param stackSite
-	 *            the site
-	 */
-	public R21EditorStackPresentation(Composite parent,
-			IStackPresentationSite stackSite) {
-		super(stackSite);
-
-		// create the tab folder
-		tabFolder = new CTabFolder(parent, tabPos | SWT.BORDER);
-
-		// minimum tab width
-		tabFolder.MIN_TAB_WIDTH = preferenceStore
-				.getInt(IPreferenceConstants.EDITOR_TAB_WIDTH);
-
-		// prevent close button and scroll buttons from taking focus
-		tabFolder.setTabList(new Control[0]);
-
-		// enable close button in tab folder
-		tabFolder.addCTabFolderListener(closeListener);
-
-		// listener to switch between visible tabItems
-		tabFolder.addListener(SWT.Selection, selectionListener);
-
-		// listener to resize visible components
-		tabFolder.addListener(SWT.Resize, resizeListener);
-
-		// listen for mouse down on tab to set focus, show system menu and
-		// maximize/restore.
-		tabFolder.addMouseListener(mouseListener);
-
-		// the menu
-		tabFolder.addListener(SWT.MenuDetect, menuListener);
-
-		// register drag listener
-		PresentationUtil.addDragListener(tabFolder, dragListener);
-
-		// add the shell listener to track shell activations
-		// TODO: check if workaround can be removed (see bug 55458)
-		tabFolder.getShell().addShellListener(shellListener);
-
-		// initialize system menu
-		populateSystemMenu(systemMenuManager);
-	}
-
-	/**
-	 * Initializes the specified menu manager.
-	 * 
-	 * @param menuManager
-	 */
-	private void populateSystemMenu(IMenuManager menuManager) {
-
-		menuManager.add(new GroupMarker("misc")); //$NON-NLS-1$
-		menuManager.add(new GroupMarker("restore")); //$NON-NLS-1$
-		menuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuRestore(getSite())));
-		menuManager.add(new SystemMenuMove(getSite(), getPaneName()));
-		menuManager.add(new GroupMarker("size")); //$NON-NLS-1$
-		menuManager.add(new GroupMarker("state")); //$NON-NLS-1$
-		// systemMenuManager.add(new UpdatingActionContributionItem(new
-		// SystemMenuMinimize(getSite())));
-		menuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuMaximize(getSite())));
-		menuManager.add(new Separator("close")); //$NON-NLS-1$
-		menuManager.add(new UpdatingActionContributionItem(new SystemMenuClose(
-				getSite())));
-
-		getSite().addSystemActions(menuManager);
-	}
-
-	/**
-	 * Returns the index of the tab for the given part, or returns
-	 * tabFolder.getItemCount() if there is no such tab.
-	 * 
-	 * @param part
-	 *            part being searched for
-	 * @return the index of the tab for the given part, or the number of tabs if
-	 *         there is no such tab
-	 */
-	private final int indexOf(IPresentablePart part) {
-		if (part == null) {
-			return tabFolder.getItemCount();
-		}
-
-		CTabItem[] items = tabFolder.getItems();
-		for (int idx = 0; idx < items.length; idx++) {
-			if (part == getPartForTab(items[idx])) {
-				return idx;
-			}
-		}
-
-		return items.length;
-	}
-
-	/**
-	 * Returns the tab for the given part, or null if there is no such tab
-	 * 
-	 * @param part
-	 *            the part being searched for
-	 * @return the tab for the given part, or null if there is no such tab
-	 */
-	protected final CTabItem getTab(IPresentablePart part) {
-		CTabItem[] items = tabFolder.getItems();
-		int idx = indexOf(part);
-		return idx < items.length ? items[idx] : null;
-	}
-
-	/**
-	 * @param part
-	 * @param property
-	 */
-	protected void childPropertyChanged(IPresentablePart part, int property) {
-		initTab(getTab(part), part);
-	}
-
-	protected final IPresentablePart getPartForTab(CTabItem item) {
-		return (IPresentablePart) item.getData(TAB_DATA);
-	}
-
-	protected CTabFolder getTabFolder() {
-		return tabFolder;
-	}
-
-	/**
-	 * Answer whether the receiver is disposed.
-	 * 
-	 * @return boolean <code>true</code> if disposed
-	 */
-	public boolean isDisposed() {
-		return tabFolder == null || tabFolder.isDisposed();
-	}
-
-	/**
-	 * Set the size of a page in the folder.
-	 */
-	private void setControlSize() {
-		if (current != null && tabFolder != null) {
-			current.setBounds(calculatePageBounds(tabFolder));
-		}
-	}
-
-	/**
-	 * Calculate the bounds of the client area inside the folder
-	 * 
-	 * @param folder
-	 * @return Rectangle the bounds of the client
-	 */
-	public static Rectangle calculatePageBounds(CTabFolder folder) {
-		if (folder == null) {
-			return new Rectangle(0, 0, 0, 0);
-		}
-
-		Rectangle bounds = folder.getBounds();
-		Rectangle offset = folder.getClientArea();
-		bounds.x += offset.x;
-		bounds.y += offset.y;
-		bounds.width = offset.width;
-		bounds.height = offset.height;
-		return bounds;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#dispose()
-	 */
-	public void dispose() {
-		if (isDisposed()) {
-			return;
-		}
-
-		// remove shell listener
-		tabFolder.getShell().removeShellListener(shellListener);
-
-		// remove close listener
-		tabFolder.removeCTabFolderListener(closeListener);
-
-		// remove drag listener
-		PresentationUtil.removeDragListener(tabFolder, dragListener);
-
-		// dispose system menu manager
-		systemMenuManager.dispose();
-		systemMenuManager.removeAll();
-
-		// dispose tab folder
-		tabFolder.dispose();
-		tabFolder = null;
-	}
-
-	/** the active state */
-	private int activeState = AS_INACTIVE;
-
-	/**
-	 * Update the tab folder's colours to match the current theme settings and
-	 * active state
-	 */
-	private void updateGradient() {
-
-		if (isDisposed()) {
-			return;
-		}
-
-		Color fgColor;
-		Color[] bgColors;
-		int[] bgPercents;
-		boolean vertical = false;
-		if (activeState == AS_ACTIVE_FOCUS) {
-			if (getShellActivated()) {
-				fgColor = R21Colors.getSystemColor(SWT.COLOR_TITLE_FOREGROUND);
-				bgColors = R21Colors.getActiveEditorGradient();
-				bgPercents = R21Colors.getActiveEditorGradientPercents();
-			} else {
-				fgColor = R21Colors
-						.getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND);
-				bgColors = R21Colors.getDeactivatedEditorGradient();
-				bgPercents = R21Colors.getDeactivatedEditorGradientPercents();
-			}
-
-		} else if (activeState == AS_ACTIVE_NOFOCUS) {
-			fgColor = R21Colors.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-			bgColors = R21Colors.getActiveNoFocusEditorGradient();
-			bgPercents = R21Colors.getActiveNoFocusEditorGradientPercents();
-		} else {
-			fgColor = null;
-			bgColors = null;
-			bgPercents = null;
-		}
-
-		drawGradient(fgColor, bgColors, bgPercents, vertical);
-	}
-
-	/**
-	 * Sets the gradient for the selected tab
-	 * 
-	 * @param fgColor
-	 * @param bgColors
-	 * @param percentages
-	 * @param vertical
-	 */
-	protected void drawGradient(Color fgColor, Color[] bgColors,
-			int[] percentages, boolean vertical) {
-		tabFolder.setSelectionForeground(fgColor);
-		tabFolder.setSelectionBackground(bgColors, percentages);
-		tabFolder.update();
-	}
-
-	/**
-	 * Return whether the window's shell is activated
-	 */
-	/* package */boolean getShellActivated() {
-		Window window = getWindow();
-		if (window instanceof WorkbenchWindow) {
-			return ((WorkbenchWindow) window).getShellActivated();
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the top level window.
-	 * 
-	 * @return Window the window for the receiver
-	 */
-	public Window getWindow() {
-		Control ctrl = getControl();
-		if (ctrl != null) {
-			Object data = ctrl.getShell().getData();
-			if (data instanceof Window) {
-				return (Window) data;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Creates the tab item for the specified part.
-	 * 
-	 * @param part
-	 * @param tabIndex
-	 * @return the tab item for the part
-	 */
-	private CTabItem createPartTab(IPresentablePart part, int tabIndex) {
-		CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE, tabIndex);
-		tabItem.setData(TAB_DATA, part);
-		part.addPropertyListener(childPropertyChangeListener);
-		tabItem.addDisposeListener(tabDisposeListener);
-		initTab(tabItem, part);
-		return tabItem;
-	}
-
-	/**
-	 * Initializes a tab for the given part. Sets the text, icon, tool tip, etc.
-	 * This will also be called whenever a relevant property changes in the part
-	 * to reflect those changes in the tab. Subclasses may override to change
-	 * the appearance of tabs for a particular part.
-	 * 
-	 * @param tabItem
-	 *            tab for the part
-	 * @param part
-	 *            the part being displayed
-	 */
-	protected void initTab(CTabItem tabItem, IPresentablePart part) {
-
-		// set tab text and tooltip
-		tabItem.setText(getLabelText(part, true, false));
-		tabItem.setToolTipText(getLabelToolTipText(part));
-
-		// set tab image
-		tabItem.setImage(getLabelImage(part));
-
-		// following code allows a disabled image
-		// but the result was distracting: didn't see any disabled image
-
-		// Image image = getLabelImage(part);
-		// boolean useColorIcons = false; // should we use a preference setting?
-		//
-		// if (image == null || image.isDisposed()) {
-		// // normal image
-		// tabItem.setImage(null);
-		// // disabled image
-		// if (!useColorIcons) {
-		// Image disableImage = tabItem.getDisabledImage();
-		// if (disableImage != null) {
-		// disableImage.dispose();
-		// tabItem.setDisabledImage(null);
-		// }
-		// }
-		// } else if (!image.equals(tabItem.getImage())) {
-		// // normal image
-		// tabItem.setImage(image);
-		// // disabled image
-		// if (!useColorIcons) {
-		// Image disableImage = tabItem.getDisabledImage();
-		// if (disableImage != null)
-		// disableImage.dispose();
-		// Display display = tabItem.getDisplay();
-		// disableImage = new Image(display, image, SWT.IMAGE_DISABLE);
-		// tabItem.setDisabledImage(disableImage);
-		// }
-		// }
-
-	}
-
-	/**
-	 * Returns the label text that should be used for the tab item for the
-	 * specified part
-	 * 
-	 * @param presentablePart
-	 * @param dirtyLeft
-	 * @param includePath
-	 * @return a formated label text
-	 */
-	String getLabelText(IPresentablePart presentablePart, boolean dirtyLeft,
-			boolean includePath) {
-		String title = presentablePart.getName().trim();
-		String text = title;
-
-		if (includePath) {
-			String titleTooltip = presentablePart.getTitleToolTip().trim();
-
-			if (titleTooltip.endsWith(title)) {
-				titleTooltip = titleTooltip.substring(0,
-						titleTooltip.lastIndexOf(title)).trim();
-			}
-
-			if (titleTooltip.endsWith("\\")) { //$NON-NLS-1$
-				titleTooltip = titleTooltip.substring(0,
-						titleTooltip.lastIndexOf("\\")).trim(); //$NON-NLS-1$
-			}
-
-			if (titleTooltip.endsWith("/")) { //$NON-NLS-1$
-				titleTooltip = titleTooltip.substring(0,
-						titleTooltip.lastIndexOf("/")).trim(); //$NON-NLS-1$
-			}
-
-			if (titleTooltip.length() >= 1) {
-				text += " - " + titleTooltip; //$NON-NLS-1$
-			}
-		}
-
-		if (presentablePart.isDirty()) {
-			if (dirtyLeft) {
-				text = "* " + text; //$NON-NLS-1$
-			} else {
-				text = text + " *"; //$NON-NLS-1$
-			}
-		}
-
-		return text;
-	}
-
-	/**
-	 * Returns the image used for the tab item
-	 * 
-	 * @param presentablePart
-	 * @return an image
-	 */
-	Image getLabelImage(IPresentablePart presentablePart) {
-		return presentablePart.getTitleImage();
-	}
-
-	/**
-	 * Returns the tool tip text used for the tab item
-	 * 
-	 * @param presentablePart
-	 * @return a tool tip text
-	 */
-	String getLabelToolTipText(IPresentablePart presentablePart) {
-		return presentablePart.getTitleToolTip();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#addPart(org.eclipse.ui.internal.skins.IPresentablePart,
-	 *      org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void addPart(IPresentablePart newPart, Object cookie) {
-
-		int idx;
-
-		if (cookie instanceof Integer) {
-			idx = ((Integer) cookie).intValue();
-		} else {
-			// Select a location for newly inserted parts
-			idx = tabFolder.getItemCount();
-		}
-
-		addPart(newPart, idx);
-	}
-
-	/**
-	 * Adds the given presentable part to this presentation at the given index.
-	 * Does nothing if a tab already exists for the given part.
-	 * 
-	 * @param newPart
-	 * @param index
-	 */
-	public void addPart(IPresentablePart newPart, int index) {
-		// If we already have a tab for this part, do nothing
-		if (getTab(newPart) != null) {
-			return;
-		}
-		createPartTab(newPart, index);
-
-		// setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#removePart(org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void removePart(IPresentablePart oldPart) {
-		if (current == oldPart) {
-			current = null;
-		}
-
-		CTabItem item = getTab(oldPart);
-		if (item == null) {
-			return;
-		}
-		oldPart.setVisible(false);
-
-		item.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#selectPart(org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void selectPart(IPresentablePart toSelect) {
-		if (toSelect == current) {
-			return;
-		}
-		
-		IPresentablePart oldPart = current;
-
-		current = toSelect;
-		
-		if (current != null) {
-			tabFolder.setSelection(indexOf(current));
-			current.setVisible(true);
-			setControlSize();
-
-		}
-
-		if (oldPart != null) {
-			oldPart.setVisible(false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setBounds(org.eclipse.swt.graphics.Rectangle)
-	 */
-	public void setBounds(Rectangle bounds) {
-		tabFolder.setBounds(bounds);
-		setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#computeMinimumSize()
-	 */
-	public Point computeMinimumSize() {
-		return Geometry.getSize(tabFolder.computeTrim(0, 0, 0, 0));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setVisible(boolean)
-	 */
-	public void setVisible(boolean isVisible) {
-		if (current != null) {
-			current.setVisible(isVisible);
-		}
-
-		getTabFolder().setVisible(isVisible);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setState(int)
-	 */
-	public void setState(int state) {
-		// tabFolder.setMinimized(state == IPresentationSite.STATE_MINIMIZED);
-		// tabFolder.setMaximized(state == IPresentationSite.STATE_MAXIMIZED);
-	}
-
-	/**
-	 * Returns the system menu manager.
-	 * 
-	 * @return the system menu manager
-	 */
-	public IMenuManager getSystemMenuManager() {
-		return systemMenuManager;
-	}
-
-	/**
-	 * Shows the system context menu at the specified location
-	 * 
-	 * @param point
-	 */
-	protected void showSystemMenu(Point point) {
-		Menu aMenu = systemMenuManager.createContextMenu(tabFolder.getParent());
-		systemMenuManager.update(true);
-		aMenu.setLocation(point.x, point.y);
-		aMenu.setVisible(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#getControl()
-	 */
-	public Control getControl() {
-		return tabFolder;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#dragOver(org.eclipse.swt.widgets.Control,
-	 *      org.eclipse.swt.graphics.Point)
-	 */
-	public StackDropResult dragOver(Control currentControl, Point location) {
-
-		// Determine which tab we're currently dragging over
-		Point localPos = tabFolder.toControl(location);
-		final CTabItem tabUnderPointer = tabFolder.getItem(localPos);
-
-		// This drop target only deals with tabs... if we're not dragging over
-		// a tab, exit.
-		if (tabUnderPointer == null) {
-			return null;
-		}
-
-		// workaround when left tab is dragged over next
-		int dragOverIndex = tabFolder.indexOf(tabUnderPointer);
-
-		return new StackDropResult(Geometry.toDisplay(tabFolder,
-				tabUnderPointer.getBounds()), new Integer(dragOverIndex));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#showSystemMenu()
-	 */
-	public void showSystemMenu() {
-		if (null != current) {
-			// switch to the editor
-			CTabItem item = getTab(current);
-			getSite().selectPart(getCurrentPart());
-			Rectangle bounds = item.getBounds();
-			int y = bounds.height;
-			if (getTabFolder().getTabPosition() == SWT.BOTTOM) {
-				y += bounds.y;
-			}
-			showSystemMenu(getTabFolder().toDisplay(bounds.x, y));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#showPaneMenu()
-	 */
-	public void showPaneMenu() {
-		IPartMenu menu = getPartMenu();
-
-		if (null != menu) {
-			CTabItem tab = getTab(getCurrentPart());
-
-			if (null != tab && null != tab.getControl()) {
-				Rectangle bounds = DragUtil.getDisplayBounds(tab.getControl());
-				menu.showMenu(new Point(bounds.x, bounds.y + bounds.height));
-			}
-		}
-	}
-
-	/**
-	 * Returns the IPartMenu for the currently selected part, or null if the
-	 * current part does not have a menu.
-	 * 
-	 * @return the IPartMenu for the currently selected part or null if none
-	 */
-	protected IPartMenu getPartMenu() {
-		IPresentablePart part = getCurrentPart();
-		if (part == null) {
-			return null;
-		}
-
-		return part.getMenu();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#getTabList(IPresentablePart)
-	 */
-	public Control[] getTabList(IPresentablePart part) {
-		ArrayList list = new ArrayList();
-		if (getControl() != null) {
-			list.add(getControl());
-		}
-		if (part.getToolBar() != null) {
-			list.add(part.getToolBar());
-		}
-		if (part.getControl() != null) {
-			list.add(part.getControl());
-		}
-		return (Control[]) list.toArray(new Control[list.size()]);
-	}
-
-	/**
-	 * @return the current part
-	 */
-	public IPresentablePart getCurrentPart() {
-		return current;
-	}
-
-	protected String getPaneName() {
-		return R21PresentationMessages.getString("EditorPane.moveEditor"); //$NON-NLS-1$ 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#setActive(int)
-	 */
-	public void setActive(int newState) {
-		activeState = newState;
-		updateGradient();
-	}
-	
-    /**
-     * Restores a presentation from a previously stored state
-     * 
-     * @param serializer (not null)
-     * @param savedState (not null)
-     */
-    public void restoreState(IPresentationSerializer serializer, IMemento savedState) {
-        IMemento[] parts = savedState.getChildren(IWorkbenchConstants.TAG_PART);
-        
-        for (int idx = 0; idx < parts.length; idx++) {
-            String id = parts[idx].getString(IWorkbenchConstants.TAG_ID);
-            
-            if (id != null) {
-                IPresentablePart part = serializer.getPart(id);
-                
-                if (part != null) {
-                    addPart(part, tabFolder.getItemCount());
-                }
-            } 
-        }
-    }
-    
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.presentations.StackPresentation#saveState(org.eclipse.ui.presentations.IPresentationSerializer, org.eclipse.ui.IMemento)
-     */
-    public void saveState(IPresentationSerializer context, IMemento memento) {
-        super.saveState(context, memento);
-        
-        List parts = getPresentableParts();
-        
-        Iterator iter = parts.iterator();
-        while (iter.hasNext()) {
-            IPresentablePart next = (IPresentablePart)iter.next();
-            
-            IMemento childMem = memento.createChild(IWorkbenchConstants.TAG_PART);
-            childMem.putString(IWorkbenchConstants.TAG_ID, context.getId(next));
-        }
-    }
-    
-    /**
-     * Returns the List of IPresentablePart currently in this presentation
-     */
-    private List getPresentableParts() {
-        Assert.isTrue(!isDisposed());
-        
-        CTabItem[] items = tabFolder.getItems();
-        List result = new ArrayList(items.length);
-        
-        for (int idx = 0; idx < tabFolder.getItemCount(); idx++) {
-            result.add(getPartForTab(items[idx]));
-        }
-        
-        return result;
-    }
-    }
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21PresentationFactory.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21PresentationFactory.java
deleted file mode 100644
index 04f2b83..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21PresentationFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackPresentation;
-import org.eclipse.ui.presentations.WorkbenchPresentationFactory;
-
-/**
- * A presentation factory that creates a look similar to previous verisons of eclipse.
- */
-public class R21PresentationFactory extends WorkbenchPresentationFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.presentations.AbstractPresentationFactory
-     */
-    public StackPresentation createEditorPresentation(Composite parent,
-            IStackPresentationSite site) {
-        return new R21EditorStackPresentation(parent, site);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.presentations.AbstractPresentationFactory
-     */
-    public StackPresentation createViewPresentation(Composite parent,
-            IStackPresentationSite site) {
-        return new R21ViewStackPresentation(parent, site);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.presentations.AbstractPresentationFactory
-     */
-    public StackPresentation createStandaloneViewPresentation(Composite parent,
-            IStackPresentationSite site, boolean showTitle) {
-        // TODO: honour showTitle
-        return new R21ViewStackPresentation(parent, site);
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21ViewStackPresentation.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21ViewStackPresentation.java
deleted file mode 100644
index 348bc92..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21ViewStackPresentation.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.presentations.r21.R21PresentationMessages;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabFolderEvent;
-import org.eclipse.ui.internal.presentations.r21.widgets.R21PaneFolder;
-import org.eclipse.ui.internal.presentations.r21.widgets.R21PaneFolderButtonListener;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-
-/**
- * Controls the appearance of views stacked into the workbench.
- * 
- * @since 3.0
- */
-public class R21ViewStackPresentation extends R21BasicStackPresentation {
-
-   	// don't reset this dynamically, so just keep the information static.
-	// see bug:
-	//   75422 [Presentations] Switching presentation to R21 switches immediately, but only partially
-    private static int tabPos = PlatformUI.getPreferenceStore().getInt(IWorkbenchPreferenceConstants.VIEW_TAB_POSITION);
-  
-    private R21PaneFolderButtonListener showListListener = new R21PaneFolderButtonListener() {
-
-        public void showList(CTabFolderEvent event) {
-            event.doit = false;
-            showListDefaultLocation();
-        }
-    };
-
-    /**
-	 * Create a new view stack presentation.
-	 *
-     * @param parent
-     * @param newSite
-     */
-    public R21ViewStackPresentation(Composite parent,
-            IStackPresentationSite newSite) {
-
-        super(new R21PaneFolder(parent, SWT.BORDER), newSite);
-        R21PaneFolder tabFolder = getPaneFolder();
-
-        tabFolder.addButtonListener(showListListener);
-
-        tabFolder.setTabPosition(tabPos);
-        updateGradient();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.skins.Presentation#setActive(boolean)
-     */
-    public void setActive(boolean isActive) {
-        super.setActive(isActive);
-
-        updateGradient();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.presentations.DefaultPartPresentation#getPartMenu()
-     */
-    protected String getPaneName() {
-        return R21PresentationMessages.getString("ViewPane.moveView"); //$NON-NLS-1$ 
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21Colors.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21Colors.java
deleted file mode 100644
index 157c602..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21Colors.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * This class manages the R21 workbench colors (they are fixed).
- */
-public class R21Colors {
-
-    static private boolean init = false;
-
-    static private HashMap colorMap;
-
-    static private HashMap systemColorMap;
-
-    static private Color workbenchColors[];
-
-    static private Color[] activeViewGradient;
-
-    static private Color[] deactivatedViewGradient;
-
-    static private Color[] activeEditorGradient;
-
-    static private Color[] activeNoFocusEditorGradient;
-
-    static private Color[] deactivatedEditorGradient;
-
-    static private int[] activeViewPercentages;
-
-    static private int[] deactivatedViewPercentages;
-
-    static private int[] activeEditorPercentages;
-
-    static private int[] activeNoFocusEditorPercentages;
-
-    static private int[] deactivatedEditorPercentages;
-
-    static private final String CLR_VIEW_GRAD_START = "clrViewGradStart";//$NON-NLS-1$
-
-    static private final String CLR_VIEW_GRAD_END = "clrViewGradEnd";//$NON-NLS-1$
-
-    static private final String CLR_EDITOR_GRAD_START = "clrEditorGradStart";//$NON-NLS-1$
-
-    static private final String CLR_EDITOR_GRAD_END = "clrEditorGradEnd";//$NON-NLS-1$
-
-    /**
-     * Dispose all color pre-allocated by the workbench.
-     */
-    private static void disposeWorkbenchColors() {
-        for (int i = 0; i < workbenchColors.length; i++) {
-            workbenchColors[i].dispose();
-        }
-    }
-
-    /**
-     * Returns the active editor gradient.
-     * @return an array of colors
-     */
-    static public Color[] getActiveEditorGradient() {
-        return activeEditorGradient;
-    }
-
-    /**
-     * Returns the active editor gradient end color.
-     * @return the color
-     */
-    static public Color getActiveEditorGradientEnd() {
-        Color clr = (Color) systemColorMap.get(CLR_EDITOR_GRAD_END);
-        Assert.isNotNull(clr);
-        return clr;
-    }
-
-    /**
-     * Returns the active editor gradient percents.
-     * @return an array of ints
-     */
-    static public int[] getActiveEditorGradientPercents() {
-        return activeEditorPercentages;
-    }
-
-    /**
-     * Returns the active editor gradient start color.
-     * @return the color
-     */
-    static public Color getActiveEditorGradientStart() {
-        Color clr = (Color) systemColorMap.get(CLR_EDITOR_GRAD_START);
-        Assert.isNotNull(clr);
-        return clr;
-    }
-
-    /**
-     * Returns the active no focus editor gradient.
-     * @return an array of colors
-     */
-    static public Color[] getActiveNoFocusEditorGradient() {
-        return activeNoFocusEditorGradient;
-    }
-
-    /**
-     * Returns the active no focus editor gradient percents.
-     * @return an array of ints
-     */
-    static public int[] getActiveNoFocusEditorGradientPercents() {
-        return activeNoFocusEditorPercentages;
-    }
-
-    /**
-     * Returns the active gradient for views.
-     * @return an arry of colors
-     */
-    static public Color[] getActiveViewGradient() {
-        return activeViewGradient;
-    }
-
-    /**
-     * Returns the active view gradient end color.
-     * @return the color
-     */
-    static public Color getActiveViewGradientEnd() {
-        Color clr = (Color) systemColorMap.get(CLR_VIEW_GRAD_END);
-        Assert.isNotNull(clr);
-        return clr;
-    }
-
-    /**
-     * Returns the active view gradient percents.
-     * @return an arry of ints
-     */
-    static public int[] getActiveViewGradientPercents() {
-        return activeViewPercentages;
-    }
-
-    /**
-     * Returns the active view gradient start color.
-     * @return the color
-     */
-    static public Color getActiveViewGradientStart() {
-        Color clr = (Color) systemColorMap.get(CLR_VIEW_GRAD_START);
-        Assert.isNotNull(clr);
-        return clr;
-    }
-
-    /**
-     * Returns the gradient for editors when the window is deactivated.
-     * @return an array of colors
-     */
-    static public Color[] getDeactivatedEditorGradient() {
-        return deactivatedEditorGradient;
-    }
-
-    /**
-     * Returns the editor gradient percents when the window is deactivated.
-     * @return an array of ints
-     */
-    static public int[] getDeactivatedEditorGradientPercents() {
-        return deactivatedEditorPercentages;
-    }
-
-    /**
-     * Returns the gradient for views when the window is deactivated.
-     * @return an array of colors
-     */
-    static public Color[] getDeactivatedViewGradient() {
-        return deactivatedViewGradient;
-    }
-
-    /**
-     * Returns the view gradient percents when the window is deactivated.
-     * @return an array of ints
-     */
-    static public int[] getDeactivatedViewGradientPercents() {
-        return deactivatedViewPercentages;
-    }
-
-    /**
-     * Returns a color identified by an RGB value.
-     * @param rgbValue 
-     * @return the color 
-     */
-    static public Color getColor(RGB rgbValue) {
-        Color clr = (Color) colorMap.get(rgbValue);
-        if (clr == null) {
-            Display disp = Display.getDefault();
-            clr = new Color(disp, rgbValue);
-            colorMap.put(rgbValue, clr);
-        }
-        return clr;
-    }
-
-    /**
-     * Returns a system color identified by a SWT constant.
-     * @param swtId 
-     * @return the color
-     */
-    static public Color getSystemColor(int swtId) {
-        Integer bigInt = new Integer(swtId);
-        Color clr = (Color) systemColorMap.get(bigInt);
-        if (clr == null) {
-            Display disp = Display.getDefault();
-            clr = disp.getSystemColor(swtId);
-            systemColorMap.put(bigInt, clr);
-        }
-        return clr;
-    }
-
-    /**
-     * Initialize all colors used in the workbench in case the OS is using a 256
-     * color palette making sure the workbench colors are allocated.
-     * 
-     * This list comes from the designers.
-     */
-    private static void initWorkbenchColors(Display d) {
-        if (workbenchColors != null) {
-			return;
-		}
-
-        workbenchColors = new Color[] {
-        //Product pallet
-                new Color(d, 255, 255, 255), new Color(d, 255, 251, 240),
-                new Color(d, 223, 223, 191), new Color(d, 223, 191, 191),
-                new Color(d, 192, 220, 192), new Color(d, 192, 192, 192),
-                new Color(d, 191, 191, 191), new Color(d, 191, 191, 159),
-                new Color(d, 191, 159, 191), new Color(d, 160, 160, 164),
-                new Color(d, 159, 159, 191), new Color(d, 159, 159, 159),
-                new Color(d, 159, 159, 127), new Color(d, 159, 127, 159),
-                new Color(d, 159, 127, 127), new Color(d, 128, 128, 128),
-                new Color(d, 127, 159, 159), new Color(d, 127, 159, 127),
-                new Color(d, 127, 127, 159), new Color(d, 127, 127, 127),
-                new Color(d, 127, 127, 95), new Color(d, 127, 95, 127),
-                new Color(d, 127, 95, 95), new Color(d, 95, 127, 127),
-                new Color(d, 95, 127, 95), new Color(d, 95, 95, 127),
-                new Color(d, 95, 95, 95), new Color(d, 95, 95, 63),
-                new Color(d, 95, 63, 95), new Color(d, 95, 63, 63),
-                new Color(d, 63, 95, 95), new Color(d, 63, 95, 63),
-                new Color(d, 63, 63, 95), new Color(d, 0, 0, 0),
-                //wizban pallet
-                new Color(d, 195, 204, 224), new Color(d, 214, 221, 235),
-                new Color(d, 149, 168, 199), new Color(d, 128, 148, 178),
-                new Color(d, 106, 128, 158), new Color(d, 255, 255, 255),
-                new Color(d, 0, 0, 0), new Color(d, 0, 0, 0),
-                //Perspective
-                new Color(d, 132, 130, 132), new Color(d, 143, 141, 138),
-                new Color(d, 171, 168, 165),
-                //PreferenceDialog and TitleAreaDialog
-                new Color(d, 230, 226, 221) };
-    }
-
-    /**
-     * Disposes of the colors. Ignore all system colors as they do not need to
-     * be disposed.
-     */
-    static public void shutdown() {
-        if (!init) {
-			return;
-		}
-
-        disposeWorkbenchColors();
-
-        Iterator iter = colorMap.values().iterator();
-        while (iter.hasNext()) {
-            Color clr = (Color) iter.next();
-            if (clr != null) {
-                clr.dispose();
-            }
-        }
-
-        colorMap.clear();
-        systemColorMap.clear();
-        init = false;
-    }
-
-    /**
-     * Initializes the colors.
-     */
-    static public void startup() {
-        if (init) {
-			return;
-		}
-
-        // Initialize the caches first.
-        init = true;
-        colorMap = new HashMap(10);
-        systemColorMap = new HashMap(10);
-
-        initWorkbenchColors(Display.getDefault());
-        // Define active view gradient using same OS title gradient colors.
-        Color clr1 = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-        Color clr2 = getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
-        Color clr3 = getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-        systemColorMap.put(CLR_VIEW_GRAD_START, clr1);
-        systemColorMap.put(CLR_VIEW_GRAD_END, clr3);
-        activeViewGradient = new Color[] { clr1, clr2, clr3 };
-        activeViewPercentages = new int[] { 50, 100 };
-
-        // Define active editor gradient using same OS title gradient colors.
-        systemColorMap.put(CLR_EDITOR_GRAD_START, clr1);
-        systemColorMap.put(CLR_EDITOR_GRAD_END, null); // use widget default
-        // background
-        activeEditorGradient = new Color[] { clr1, clr2, null, null };
-        activeEditorPercentages = new int[] { 50, 90, 100 };
-
-        // Define active no focus editor gradient
-        activeNoFocusEditorGradient = new Color[] { getSystemColor(SWT.COLOR_LIST_BACKGROUND) };
-        activeNoFocusEditorPercentages = new int[0];
-
-        // Define view gradient for deactivated window using same OS title
-        // gradient colors.
-        clr1 = getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND);
-        clr2 = getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
-        clr3 = getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-        deactivatedViewGradient = new Color[] { clr1, clr2, clr3 };
-        deactivatedViewPercentages = new int[] { 70, 100 };
-
-        // Define editor gradient for deactivated window using same OS title
-        // gradient colors.
-        deactivatedEditorGradient = new Color[] { clr1, clr2, null, null };
-        deactivatedEditorPercentages = new int[] { 70, 95, 100 };
-
-        // Preload.
-        getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
-        getSystemColor(SWT.COLOR_BLACK);
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationMessages.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationMessages.java
deleted file mode 100644
index 9ef639c..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationMessages.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps managing messages
- */
-public abstract class R21PresentationMessages {
-
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.internal.presentations.r21.messages"; //$NON-NLS-1$
-
-    private static ResourceBundle bundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    /**
-     * Returns the formatted message for the given key in the resource bundle.
-     * 
-     * @param key
-     *            the resource name
-     * @param args
-     *            the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in the resource bundle. If
-     * there isn't any value under the given key, the key is returned.
-     * 
-     * @param key
-     *            the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return key;
-        }
-    }
-
-    /**
-     * Returns the resource object with the given key in the resource bundle. If
-     * there isn't any value under the given key, the default value is returned.
-     * 
-     * @param key
-     *            the resource name
-     * @param def
-     *            the default value
-     * @return the string
-     */
-    public static String getString(String key, String def) {
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return def;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationPlugin.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationPlugin.java
deleted file mode 100644
index 4217209..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationPlugin.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class R21PresentationPlugin extends AbstractUIPlugin {
-    //The shared instance.
-    private static R21PresentationPlugin plugin;
-
-    //Resource bundle.
-    private ResourceBundle resourceBundle;
-
-    /**
-     * The constructor.
-     */
-    public R21PresentationPlugin() {
-        super();
-        plugin = this;
-        try {
-            resourceBundle = ResourceBundle
-                    .getBundle("org.eclipse.ui.internal.r21presentation.R21lookPluginResources"); //$NON-NLS-1$
-        } catch (MissingResourceException x) {
-            resourceBundle = null;
-        }
-    }
-
-    /**
-     * Returns the shared instance.
-     * @return the plug-in
-     */
-    public static R21PresentationPlugin getDefault() {
-        return plugin;
-    }
-
-    /**
-     * Returns the string from the plugin's resource bundle,
-     * or 'key' if not found.
-     * @param key 
-     * @return the string
-     */
-    public static String getResourceString(String key) {
-        ResourceBundle bundle = R21PresentationPlugin.getDefault()
-                .getResourceBundle();
-        try {
-            return (bundle != null) ? bundle.getString(key) : key;
-        } catch (MissingResourceException e) {
-            return key;
-        }
-    }
-
-    /**
-     * Returns the plugin's resource bundle,
-     * @return the resource bundle
-     */
-    public ResourceBundle getResourceBundle() {
-        return resourceBundle;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-     */
-    public void start(BundleContext context) throws Exception {
-        super.start(context);
-        R21Colors.startup();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-     */
-    public void stop(BundleContext context) throws Exception {
-        super.stop(context);
-        R21Colors.shutdown();
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/messages.properties b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/messages.properties
deleted file mode 100644
index db4b916..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/messages.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# package: org.eclipse.ui.internal.r21presentation
-
-BasicStackPresentation.menu.tooltip=Menu
-BasicStackPresentation.close.tooltip=Close
-BasicStackPresentation.pane=&Pane
-
-ViewPane.moveView=&View
-EditorPane.moveEditor=&Editor
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolder.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolder.java
deleted file mode 100644
index 3d94031..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolder.java
+++ /dev/null
@@ -1,2575 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.Accessible;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.TypedListener;
-
-/**
- * Instances of this class implement the notebook user interface
- * metaphor.  It allows the user to select a notebook page from
- * set of pages.
- * <p>
- * The item children that may be added to instances of this class
- * must be of type <code>CTabItem</code>.
- * <code>Control</code> children are created and then set into a
- * tab item using <code>CTabItem#setControl</code>.
- * </p><p>
- * Note that although this class is a subclass of <code>Composite</code>,
- * it does not make sense to set a layout on it.
- * </p><p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>TOP, BOTTOM, FLAT</dd>
- * <dt><b>Events:</b></dt>
- * <dd>Selection</dd>
- * <dd>"CTabFolder"</dd>
- * </dl>
- * <p>
- * Note: Only one of the styles TOP and BOTTOM 
- * may be specified.
- * </p><p>
- * IMPORTANT: This class is <em>not</em> intended to be subclassed.
- * </p>
- */
-
-public class CTabFolder extends Composite {
-
-    /**
-     * marginWidth specifies the number of pixels of horizontal margin
-     * that will be placed along the left and right edges of the form.
-     *
-     * The default value is 0.
-     */
-    public int marginWidth = 0;
-
-    /**
-     * marginHeight specifies the number of pixels of vertical margin
-     * that will be placed along the top and bottom edges of the form.
-     *
-     * The default value is 0.
-     */
-    public int marginHeight = 0;
-
-    /**
-     * Color of innermost line of drop shadow border.
-     */
-    public static RGB borderInsideRGB = new RGB(132, 130, 132);
-
-    /**
-     * Color of middle line of drop shadow border.
-     */
-    public static RGB borderMiddleRGB = new RGB(143, 141, 138);
-
-    /**
-     * Color of outermost line of drop shadow border.
-     */
-    public static RGB borderOutsideRGB = new RGB(171, 168, 165);
-
-    /**
-     * A multiple of the tab height that specifies the minimum width to which a tab 
-     * will be compressed before scrolling arrows are used to navigate the tabs.
-     */
-    public int MIN_TAB_WIDTH = 3;
-
-    /* sizing, positioning */
-    int xClient, yClient;
-
-    boolean onBottom = false;
-
-    boolean fixedTabHeight;
-
-    int tabHeight;
-
-    /* item management */
-    private CTabItem items[] = new CTabItem[0];
-
-    private int selectedIndex = -1;
-
-    int topTabIndex = -1; // index of the left most visible tab.
-
-    /* External Listener management */
-    private CTabFolderListener[] tabListeners = new CTabFolderListener[0];
-
-    /* Color appearance */
-    Image backgroundImage;
-
-    Color[] gradientColors;
-
-    int[] gradientPercents;
-
-    Color selectionForeground;
-
-    Color background;
-
-    // internal constants
-    private static final int DEFAULT_WIDTH = 64;
-
-    private static final int DEFAULT_HEIGHT = 64;
-
-    // scrolling arrows
-    private ToolBar arrowBar;
-
-    private Image arrowLeftImage;
-
-    private Image arrowRightImage;
-
-    private Control topRight;
-
-    // close button
-    boolean showClose = false;
-
-    private Image closeImage;
-
-    ToolBar closeBar;
-
-    private ToolBar inactiveCloseBar;
-
-    private CTabItem inactiveItem;
-
-    // borders
-    boolean showBorders = false;
-
-    private int borderBottom = 0;
-
-    private int borderLeft = 0;
-
-    private int borderRight = 0;
-
-    private int borderTop = 0;
-
-    private Color borderColor1;
-
-    private Color borderColor2;
-
-    private Color borderColor3;
-
-    // when disposing CTabFolder, don't try to layout the items or 
-    // change the selection as each child is destroyed.
-    private boolean inDispose = false;
-
-    // keep track of size changes in order to redraw only affected area
-    // on Resize
-    private Point oldSize;
-
-    private Font oldFont;
-
-    // insertion marker
-    int insertionIndex = -2; // Index of insert marker.  Marker always shown after index.
-
-    // -2 means no insert marker
-
-    // tool tip
-    private Shell tip;
-
-    private Label label;
-
-    private boolean showToolTip = false;
-
-    private CTabItem toolTipItem;
-
-    /**
-     * Constructs a new instance of this class given its parent
-     * and a style value describing its behavior and appearance.
-     * <p>
-     * The style value is either one of the style constants defined in
-     * class <code>SWT</code> which is applicable to instances of this
-     * class, or must be built by <em>bitwise OR</em>'ing together 
-     * (that is, using the <code>int</code> "|" operator) two or more
-     * of those <code>SWT</code> style constants. The class description
-     * lists the style constants that are applicable to the class.
-     * Style bits are also inherited from superclasses.
-     * </p>
-     *
-     * @param parent a widget which will be the parent of the new instance (cannot be null)
-     * @param style the style of widget to construct
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-     * </ul>
-     *
-     * @see SWT#TOP
-     * @see SWT#BOTTOM
-     * @see SWT#FLAT
-     * @see #getStyle()
-     */
-    public CTabFolder(Composite parent, int style) {
-        super(parent, checkStyle(style));
-
-        onBottom = (getStyle() & SWT.BOTTOM) != 0;
-
-        borderColor1 = new Color(getDisplay(), borderInsideRGB);
-        borderColor2 = new Color(getDisplay(), borderMiddleRGB);
-        borderColor3 = new Color(getDisplay(), borderOutsideRGB);
-
-        // tool tip support
-        tip = new Shell(getShell(), SWT.ON_TOP);
-        label = new Label(tip, SWT.CENTER);
-
-        // Add all listeners
-        Listener listener = new Listener() {
-            public void handleEvent(Event event) {
-                switch (event.type) {
-                case SWT.Dispose:
-                    onDispose();
-                    break;
-                case SWT.Paint:
-                    onPaint(event);
-                    break;
-                case SWT.Resize:
-                    onResize();
-                    break;
-                case SWT.MouseDoubleClick:
-                    onMouseDoubleClick(event);
-                    break;
-                case SWT.MouseDown:
-                    onMouseDown(event);
-                    break;
-                case SWT.MouseExit:
-                    onMouseExit(event);
-                    break;
-                case SWT.MouseHover:
-                    onMouseHover(event);
-                    break;
-                case SWT.MouseMove:
-                    onMouseMove(event);
-                    break;
-                case SWT.FocusIn:
-                    onFocus(event);
-                    break;
-                case SWT.FocusOut:
-                    onFocus(event);
-                    break;
-                case SWT.KeyDown:
-                    onKeyDown(event);
-                    break;
-                case SWT.Traverse:
-                    onTraverse(event);
-                    break;
-                }
-            }
-        };
-
-        int[] folderEvents = new int[] { SWT.Dispose, SWT.Paint, SWT.Resize,
-                SWT.MouseDoubleClick, SWT.MouseDown, SWT.MouseExit,
-                SWT.MouseHover, SWT.MouseMove, SWT.FocusIn, SWT.FocusOut,
-                SWT.KeyDown, SWT.Traverse, };
-        for (int i = 0; i < folderEvents.length; i++) {
-            addListener(folderEvents[i], listener);
-        }
-
-        createArrowBar();
-        createCloseBar();
-
-        setBorderVisible((style & SWT.BORDER) != 0);
-
-        initAccessible();
-
-    }
-
-    private static int checkStyle(int style) {
-        int mask = SWT.TOP | SWT.BOTTOM | SWT.FLAT | SWT.LEFT_TO_RIGHT
-                | SWT.RIGHT_TO_LEFT;
-        style = style & mask;
-        // TOP and BOTTOM are mutually exlusive.
-        // TOP is the default
-        if ((style & SWT.TOP) != 0) {
-			style = style & ~(SWT.TOP | SWT.BOTTOM) | SWT.TOP;
-		}
-        // reduce the flash by not redrawing the entire area on a Resize event
-        style |= SWT.NO_REDRAW_RESIZE;
-        return style;
-    }
-
-    /**	 
-     * Adds the listener to receive events.
-     * <p>
-     *
-     * @param listener the listener
-     *
-     * @exception SWTError <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     * 		<li>ERROR_NULL_ARGUMENT when listener is null</li>
-     *	</ul>
-     */
-    public void addSelectionListener(SelectionListener listener) {
-        checkWidget();
-        if (listener == null) {
-            SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        }
-        TypedListener typedListener = new TypedListener(listener);
-        addListener(SWT.Selection, typedListener);
-        addListener(SWT.DefaultSelection, typedListener);
-    }
-
-    /**
-     * Adds the listener to the collection of listeners who will
-     * be notified when a tab item is closed.
-     *
-     * @param listener the listener which should be notified
-     *
-     * @exception IllegalArgumentException <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     *      <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
-     * </ul>
-     *
-     * @see CTabFolderListener
-     * @see #removeCTabFolderListener
-     */
-    public void addCTabFolderListener(CTabFolderListener listener) {
-        checkWidget();
-        if (listener == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-        // add to array
-        CTabFolderListener[] newTabListeners = new CTabFolderListener[tabListeners.length + 1];
-        System.arraycopy(tabListeners, 0, newTabListeners, 0,
-                tabListeners.length);
-        tabListeners = newTabListeners;
-        tabListeners[tabListeners.length - 1] = listener;
-        showClose = true;
-        setButtonBounds();
-    }
-
-    private void closeNotify(CTabItem item, int time) {
-        if (item == null) {
-			return;
-		}
-
-        CTabFolderEvent event = new CTabFolderEvent(this);
-        event.widget = this;
-        event.time = time;
-        event.item = item;
-        event.doit = true;
-        if (tabListeners != null) {
-            for (int i = 0; i < tabListeners.length; i++) {
-                tabListeners[i].itemClosed(event);
-            }
-        }
-        if (event.doit) {
-            item.dispose();
-        }
-    }
-
-    public Point computeSize(int wHint, int hHint, boolean changed) {
-        checkWidget();
-        int minWidth = 0;
-        int minHeight = 0;
-
-        // preferred width of tab area to show all tabs
-        GC gc = new GC(this);
-        for (int i = 0; i < items.length; i++) {
-            minWidth += items[i].preferredWidth(gc);
-        }
-        gc.dispose();
-
-        // preferred size of controls in tab items
-        for (int i = 0; i < items.length; i++) {
-            Control control = items[i].getControl();
-            if (control != null && !control.isDisposed()) {
-                Point size = control.computeSize(wHint, hHint);
-                minWidth = Math.max(minWidth, size.x);
-                minHeight = Math.max(minHeight, size.y);
-            }
-        }
-        if (minWidth == 0) {
-			minWidth = DEFAULT_WIDTH;
-		}
-        if (minHeight == 0) {
-			minHeight = DEFAULT_HEIGHT;
-		}
-
-        if (wHint != SWT.DEFAULT) {
-			minWidth = wHint;
-		}
-        if (hHint != SWT.DEFAULT) {
-			minHeight = hHint;
-		}
-
-        Rectangle trim = computeTrim(0, 0, minWidth, minHeight);
-        return new Point(trim.width, trim.height);
-    }
-
-    public Rectangle computeTrim(int x, int y, int width, int height) {
-        checkWidget();
-        if (items.length == 0) {
-            if (!showBorders) {
-				return new Rectangle(x, y, width, height);
-			}
-            int trimX = x - borderRight - 1;
-            int trimY = y - borderBottom - 1;
-            int trimWidth = width + borderRight + 2;
-            int trimHeight = height + borderBottom + 2;
-            return new Rectangle(trimX, trimY, trimWidth, trimHeight);
-        }
-		int trimX = x - marginWidth - borderLeft;
-		int trimY = y - marginHeight - tabHeight - borderTop - 1;
-		// -1 is for the line at the bottom of the tabs
-		if (onBottom) {
-		    trimY = y - marginHeight - borderTop;
-		}
-		int trimWidth = width + borderLeft + borderRight + 2 * marginWidth;
-		int trimHeight = height + borderTop + borderBottom + 2
-		        * marginHeight + tabHeight + 1;
-		return new Rectangle(trimX, trimY, trimWidth, trimHeight);
-    }
-
-    /**
-     * Create the specified item at 'index'.
-     */
-    void createItem(CTabItem item, int index) {
-        if (0 > index || index > getItemCount()) {
-            SWT.error(SWT.ERROR_INVALID_RANGE);
-        }
-        // grow by one and rearrange the array.
-        CTabItem[] newItems = new CTabItem[items.length + 1];
-        System.arraycopy(items, 0, newItems, 0, index);
-        newItems[index] = item;
-        System.arraycopy(items, index, newItems, index + 1, items.length
-                - index);
-        items = newItems;
-
-        item.parent = this;
-
-        if (selectedIndex >= index) {
-            selectedIndex++;
-        }
-        if (items.length == 1) {
-            topTabIndex = 0;
-            resetTabSize(true);
-        } else {
-            setItemBounds();
-            showItem(item);
-        }
-
-        if (items.length == 1) {
-            redraw();
-        } else {
-            redrawTabArea(-1);
-        }
-    }
-
-    private void createArrowBar() {
-        // create arrow buttons for scrolling 
-        arrowBar = new ToolBar(this, SWT.FLAT);
-        arrowBar.setVisible(false);
-        arrowBar.setBackground(background);
-        ToolItem scrollLeft = new ToolItem(arrowBar, SWT.PUSH);
-        scrollLeft.setEnabled(false);
-        ToolItem scrollRight = new ToolItem(arrowBar, SWT.PUSH);
-        scrollRight.setEnabled(false);
-
-        scrollLeft.addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                scroll_scrollLeft();
-            }
-        });
-        scrollRight.addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                scroll_scrollRight();
-            }
-        });
-
-    }
-
-    private void createCloseBar() {
-        closeBar = new ToolBar(this, SWT.FLAT);
-        closeBar.setVisible(false);
-        if (gradientColors != null && gradientColors.length > 0) {
-            closeBar.setBackground(gradientColors[gradientColors.length - 1]);
-        } else {
-            closeBar.setBackground(background);
-        }
-        ToolItem closeItem = new ToolItem(closeBar, SWT.PUSH);
-
-        inactiveCloseBar = new ToolBar(this, SWT.FLAT);
-        inactiveCloseBar.setVisible(false);
-        inactiveCloseBar.setBackground(background);
-        ToolItem inactiveCloseItem = new ToolItem(inactiveCloseBar, SWT.PUSH);
-
-        closeItem.addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                closeNotify(getSelection(), event.time);
-            }
-        });
-        inactiveCloseItem.addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                closeNotify(inactiveItem, event.time);
-                inactiveCloseBar.setVisible(false);
-                inactiveItem = null;
-            }
-        });
-        inactiveCloseBar.addListener(SWT.MouseExit, new Listener() {
-            public void handleEvent(Event event) {
-                if (inactiveItem != null) {
-                    Rectangle itemBounds = inactiveItem.getBounds();
-                    if (itemBounds.contains(event.x, event.y)) {
-						return;
-					}
-                }
-                inactiveCloseBar.setVisible(false);
-                inactiveItem = null;
-            }
-        });
-
-    }
-
-    /**
-     * Destroy the specified item.
-     */
-    void destroyItem(CTabItem item) {
-        if (inDispose) {
-			return;
-		}
-
-        int index = indexOf(item);
-        if (index == -1) {
-			return; // should this trigger an error?
-		}
-
-        insertionIndex = -2;
-
-        if (items.length == 1) {
-            items = new CTabItem[0];
-            selectedIndex = -1;
-            topTabIndex = 0;
-
-            Control control = item.getControl();
-            if (control != null && !control.isDisposed()) {
-                control.setVisible(false);
-            }
-            closeBar.setVisible(false);
-            if (!fixedTabHeight) {
-				tabHeight = 0;
-			}
-            redraw();
-            return;
-        }
-
-        // shrink by one and rearrange the array.
-        CTabItem[] newItems = new CTabItem[items.length - 1];
-        System.arraycopy(items, 0, newItems, 0, index);
-        System.arraycopy(items, index + 1, newItems, index, items.length
-                - index - 1);
-        items = newItems;
-
-        if (topTabIndex == items.length) {
-            --topTabIndex;
-        }
-
-        // move the selection if this item is selected
-        if (selectedIndex == index) {
-            Control control = item.getControl();
-            if (control != null && !control.isDisposed()) {
-                control.setVisible(false);
-            }
-            selectedIndex = -1;
-            setSelection(Math.max(0, index - 1), true);
-        } else if (selectedIndex > index) {
-            selectedIndex--;
-        }
-
-        setItemBounds();
-        redrawTabArea(-1);
-    }
-
-    private void onKeyDown(Event e) {
-        if (e.keyCode != SWT.ARROW_LEFT && e.keyCode != SWT.ARROW_RIGHT) {
-			return;
-		}
-        int leadKey = (getStyle() & SWT.MIRRORED) != 0 ? SWT.ARROW_RIGHT
-                : SWT.ARROW_LEFT;
-        if (e.keyCode == leadKey) {
-            if (selectedIndex > 0) {
-                setSelection(selectedIndex - 1, true);
-            }
-        } else {
-            if (selectedIndex < items.length - 1) {
-                setSelection(selectedIndex + 1, true);
-            }
-        }
-    }
-
-    /**
-     * Dispose the items of the receiver
-     */
-    private void onDispose() {
-        /*
-         * Usually when an item is disposed, destroyItem will change the size of the items array, 
-         * reset the bounds of all the tabs and manage the widget associated with the tab.
-         * Since the whole folder is being disposed, this is not necessary.  For speed
-         * the inDispose flag is used to skip over this part of the item dispose.
-         */
-        inDispose = true;
-
-        int length = items.length;
-        for (int i = 0; i < length; i++) {
-            if (items[i] != null) {
-                items[i].dispose();
-            }
-        }
-
-        // clean up resources
-        if (tip != null && !tip.isDisposed()) {
-            tip.dispose();
-            tip = null;
-            label = null;
-        }
-
-        if (arrowLeftImage != null) {
-			arrowLeftImage.dispose();
-		}
-        arrowLeftImage = null;
-        if (arrowRightImage != null) {
-			arrowRightImage.dispose();
-		}
-        arrowRightImage = null;
-        if (closeImage != null) {
-			closeImage.dispose();
-		}
-        closeImage = null;
-
-        gradientColors = null;
-        gradientPercents = null;
-        backgroundImage = null;
-
-        if (borderColor1 != null) {
-			borderColor1.dispose();
-		}
-        borderColor1 = null;
-
-        if (borderColor2 != null) {
-			borderColor2.dispose();
-		}
-        borderColor2 = null;
-
-        if (borderColor3 != null) {
-			borderColor3.dispose();
-		}
-        borderColor3 = null;
-    }
-
-    /**
-	 * @param e  
-	 */
-    private void onFocus(Event e) {
-        checkWidget();
-        if (selectedIndex >= 0) {
-            redrawTabArea(selectedIndex);
-        } else {
-            setSelection(0, true);
-        }
-    }
-
-    /** 
-     * Draw a border around the receiver.
-     */
-    private void drawBorder(GC gc) {
-
-        Rectangle d = super.getClientArea();
-
-        if (showBorders) {
-            if ((getStyle() & SWT.FLAT) != 0) {
-                gc.setForeground(borderColor1);
-                gc.drawRectangle(d.x, d.y, d.x + d.width - 1, d.y + d.height
-                        - 1);
-            } else {
-                gc.setForeground(borderColor1);
-                gc.drawRectangle(d.x, d.y, d.x + d.width - 3, d.y + d.height
-                        - 3);
-
-                gc.setForeground(borderColor2);
-                gc.drawLine(d.x + 1, d.y + d.height - 2, d.x + d.width - 1, d.y
-                        + d.height - 2);
-                gc.drawLine(d.x + d.width - 2, d.y + 1, d.x + d.width - 2, d.y
-                        + d.height - 1);
-
-                gc.setForeground(borderColor3);
-                gc.drawLine(d.x + 2, d.y + d.height - 1, d.x + d.width - 2, d.y
-                        + d.height - 1);
-                gc.drawLine(d.x + d.width - 1, d.y + 2, d.x + d.width - 1, d.y
-                        + d.height - 2);
-
-                // fill in corners with parent's background
-                gc.setForeground(getParent().getBackground());
-                gc.drawLine(d.x + d.width - 2, d.y, d.x + d.width - 1, d.y);
-                gc.drawLine(d.x + d.width - 1, d.y + 1, d.x + d.width - 1,
-                        d.y + 1);
-
-                gc.drawLine(d.x, d.y + d.height - 2, d.x, d.y + d.height - 2);
-                gc.drawLine(d.x, d.y + d.height - 1, d.x + 1, d.y + d.height
-                        - 1);
-
-                gc.drawLine(d.x + d.width - 1, d.y + d.height - 1, d.x
-                        + d.width - 1, d.y + d.height - 1);
-            }
-
-        }
-
-        // draw a separator line
-        if (items.length > 0) {
-            int lineY = d.y + borderTop + tabHeight;
-            if (onBottom) {
-                lineY = d.y + d.height - borderBottom - tabHeight - 1;
-            }
-            gc.setForeground(borderColor1);
-            gc.drawLine(d.x + borderLeft, lineY, d.x + d.width - borderRight,
-                    lineY);
-        }
-
-        gc.setForeground(getForeground());
-    }
-
-    public Rectangle getClientArea() {
-        checkWidget();
-        Point size = getSize();
-        if (items.length == 0) {
-            if (!showBorders) {
-				return super.getClientArea();
-			}
-            int width = size.x - borderRight - 2;
-            int height = size.y - borderBottom - 2;
-            return new Rectangle(borderRight + 1, borderBottom + 1, width,
-                    height);
-        }
-		int width = size.x - 2 * marginWidth - borderLeft - borderRight;
-		int height = size.y - 2 * marginHeight - borderTop - borderBottom
-		        - tabHeight - 1;
-		return new Rectangle(xClient, yClient, width, height);
-    }
-
-    /**
-     * Returns the height of the tab
-     * 
-     * @return the height of the tab
-     * 
-     * @exception SWTError <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     *	</ul>
-     */
-    public int getTabHeight() {
-        checkWidget();
-        return tabHeight;
-    }
-
-    /**
-     * Return the tab that is located at the specified index.
-     * @param index 
-     * 
-     * @return the item at the specified index
-     */
-    public CTabItem getItem(int index) {
-        //checkWidget();
-        if (index < 0 || index >= items.length) {
-			SWT.error(SWT.ERROR_INVALID_RANGE);
-		}
-        return items[index];
-    }
-
-    /**
-     * Gets the item at a point in the widget.
-     * <p>
-     * @param pt 
-     *
-     * @return the item at a point
-     */
-    public CTabItem getItem(Point pt) {
-        //checkWidget();
-        if (items.length == 0) {
-			return null;
-		}
-        int lastItem = getLastItem();
-        lastItem = Math.min(items.length - 1, lastItem + 1);
-        for (int i = topTabIndex; i <= lastItem; i++) {
-            Rectangle bounds = items[i].getBounds();
-            if (bounds.contains(pt)) {
-				return items[i];
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Return the number of tabs in the folder.
-     * 
-     * @return the number of tabs in the folder
-     */
-    public int getItemCount() {
-        //checkWidget();
-        return items.length;
-    }
-
-    /**
-     * Return the tab items.
-     * 
-     * @return the tab items
-     */
-    public CTabItem[] getItems() {
-        //checkWidget();
-        CTabItem[] tabItems = new CTabItem[items.length];
-        System.arraycopy(items, 0, tabItems, 0, items.length);
-        return tabItems;
-    }
-
-    private int getLastItem() {
-        if (items.length == 0) {
-			return -1;
-		}
-        Rectangle area = getClientArea();
-        if (area.width <= 0) {
-			return 0;
-		}
-        Rectangle toolspace = getToolSpace();
-        if (toolspace.width == 0) {
-			return items.length - 1;
-		}
-        int width = area.width - toolspace.width;
-        int index = topTabIndex;
-        int tabWidth = items[index].width;
-        while (index < items.length - 1) {
-            tabWidth += items[index + 1].width;
-            if (tabWidth > width) {
-				break;
-			}
-            index++;
-        }
-        return index;
-    }
-
-    /**
-     * Return the selected tab item, or an empty array if there
-     * is no selection.
-     * 
-     * @return the selected tab item
-     */
-    public CTabItem getSelection() {
-        //checkWidget();
-        if (selectedIndex == -1) {
-			return null;
-		}
-        return items[selectedIndex];
-    }
-
-    /**
-     * Return the index of the selected tab item, or -1 if there
-     * is no selection.
-     * 
-     * @return the index of the selected tab item or -1
-     */
-    public int getSelectionIndex() {
-        //checkWidget();
-        return selectedIndex;
-    }
-
-    private Rectangle getToolSpace() {
-        boolean showArrows = scroll_leftVisible() || scroll_rightVisible();
-        if (!showArrows && topRight == null) {
-			return new Rectangle(0, 0, 0, 0);
-		}
-        Rectangle toolspace;
-        if (showArrows) {
-            toolspace = arrowBar.getBounds();
-            toolspace.width += borderRight;
-            if (topRight != null) {
-				toolspace.width += topRight.getSize().x;
-			}
-        } else {
-            toolspace = topRight.getBounds();
-            toolspace.width += borderRight;
-        }
-        return toolspace;
-    }
-
-    /**
-     * Returns the control in the top right corner of the tab folder. 
-     * Typically this is a close button or a composite with a menu and close button.
-     *
-     * @since 2.1
-     *
-     * @return the control in the top right corner of the tab folder or null
-     * 
-     * @exception  SWTError <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     *	</ul>
-     */
-    public Control getTopRight() {
-        checkWidget();
-        return topRight;
-    }
-
-    /**
-     * Return the index of the specified tab or -1 if the tab is not 
-     * in the receiver.
-     * @param item 
-     * 
-     * @return the index of the specified tab item or -1
-     * 
-     * @exception SWTError <ul>
-     *      <li>ERROR_NULL_ARGUMENT when the item is null</li>
-     *	</ul>
-     */
-    public int indexOf(CTabItem item) {
-        //checkWidget();
-        if (item == null) {
-            SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        }
-        for (int i = 0; i < items.length; i++) {
-            if (items[i] == item) {
-				return i;
-			}
-        }
-        return -1;
-    }
-
-    private void initAccessible() {
-        final Accessible accessible = getAccessible();
-        accessible.addAccessibleListener(new AccessibleAdapter() {
-            public void getName(AccessibleEvent e) {
-                String name = null;
-                int childID = e.childID;
-                if (childID >= 0 && childID < items.length) {
-                    name = items[childID].getText();
-                    int index = name.indexOf('&');
-                    if (index > 0) {
-                        name = name.substring(0, index)
-                                + name.substring(index + 1);
-                    }
-                }
-                e.result = name;
-            }
-
-            public void getHelp(AccessibleEvent e) {
-                String help = null;
-                int childID = e.childID;
-                if (childID == ACC.CHILDID_SELF) {
-                    help = getToolTipText();
-                } else if (childID >= 0 && childID < items.length) {
-                    help = items[childID].getToolTipText();
-                }
-                e.result = help;
-            }
-
-            public void getKeyboardShortcut(AccessibleEvent e) {
-                String shortcut = null;
-                int childID = e.childID;
-                if (childID >= 0 && childID < items.length) {
-                    String text = items[childID].getText();
-                    if (text != null) {
-                        char mnemonic = getMnemonic(text);
-                        if (mnemonic != '\0') {
-                            shortcut = "Alt+" + mnemonic; //$NON-NLS-1$
-                        }
-                    }
-                }
-                e.result = shortcut;
-            }
-        });
-
-        accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-            public void getChildAtPoint(AccessibleControlEvent e) {
-                Point testPoint = toControl(new Point(e.x, e.y));
-                int childID = ACC.CHILDID_NONE;
-                for (int i = 0; i < items.length; i++) {
-                    if (items[i].getBounds().contains(testPoint)) {
-                        childID = i;
-                        break;
-                    }
-                }
-                if (childID == ACC.CHILDID_NONE) {
-                    Rectangle location = getBounds();
-                    location.height = location.height - getClientArea().height;
-                    if (location.contains(testPoint)) {
-                        childID = ACC.CHILDID_SELF;
-                    }
-                }
-                e.childID = childID;
-            }
-
-            public void getLocation(AccessibleControlEvent e) {
-                Rectangle location = null;
-                int childID = e.childID;
-                if (childID == ACC.CHILDID_SELF) {
-                    location = getBounds();
-                }
-                if (childID >= 0 && childID < items.length) {
-                    location = items[childID].getBounds();
-                }
-                if (location != null) {
-                    Point pt = toDisplay(new Point(location.x, location.y));
-                    e.x = pt.x;
-                    e.y = pt.y;
-                    e.width = location.width;
-                    e.height = location.height;
-                }
-            }
-
-            public void getChildCount(AccessibleControlEvent e) {
-                e.detail = items.length;
-            }
-
-            public void getDefaultAction(AccessibleControlEvent e) {
-                String action = null;
-                int childID = e.childID;
-                if (childID >= 0 && childID < items.length) {
-                    action = "Switch"; //$NON-NLS-1$
-                }
-                e.result = action;
-            }
-
-            public void getFocus(AccessibleControlEvent e) {
-                int childID = ACC.CHILDID_NONE;
-                if (isFocusControl()) {
-                    if (selectedIndex == -1) {
-                        childID = ACC.CHILDID_SELF;
-                    } else {
-                        childID = selectedIndex;
-                    }
-                }
-                e.childID = childID;
-            }
-
-            public void getRole(AccessibleControlEvent e) {
-                int role = 0;
-                int childID = e.childID;
-                if (childID == ACC.CHILDID_SELF) {
-                    role = ACC.ROLE_TABFOLDER;
-                } else if (childID >= 0 && childID < items.length) {
-                    role = ACC.ROLE_TABITEM;
-                }
-                e.detail = role;
-            }
-
-            public void getSelection(AccessibleControlEvent e) {
-                e.childID = (selectedIndex == -1) ? ACC.CHILDID_NONE
-                        : selectedIndex;
-            }
-
-            public void getState(AccessibleControlEvent e) {
-                int state = 0;
-                int childID = e.childID;
-                if (childID == ACC.CHILDID_SELF) {
-                    state = ACC.STATE_NORMAL;
-                } else if (childID >= 0 && childID < items.length) {
-                    state = ACC.STATE_SELECTABLE;
-                    if (isFocusControl()) {
-                        state |= ACC.STATE_FOCUSABLE;
-                    }
-                    if (selectedIndex == childID) {
-                        state |= ACC.STATE_SELECTED;
-                        if (isFocusControl()) {
-                            state |= ACC.STATE_FOCUSED;
-                        }
-                    }
-                }
-                e.detail = state;
-            }
-
-            public void getChildren(AccessibleControlEvent e) {
-                Object[] children = new Object[items.length];
-                for (int i = 0; i < items.length; i++) {
-                    children[i] = new Integer(i);
-                }
-                e.children = children;
-            }
-        });
-
-        addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                if (isFocusControl()) {
-                    if (selectedIndex == -1) {
-                        accessible.setFocus(ACC.CHILDID_SELF);
-                    } else {
-                        accessible.setFocus(selectedIndex);
-                    }
-                }
-            }
-        });
-
-        addListener(SWT.FocusIn, new Listener() {
-            public void handleEvent(Event event) {
-                if (selectedIndex == -1) {
-                    accessible.setFocus(ACC.CHILDID_SELF);
-                } else {
-                    accessible.setFocus(selectedIndex);
-                }
-            }
-        });
-    }
-
-    private void setButtonBounds() {
-
-        updateArrowBar();
-        updateCloseBar();
-
-        Rectangle area = super.getClientArea();
-
-        int offset = 0;
-        if (topRight != null) {
-            Point size = topRight.computeSize(SWT.DEFAULT, tabHeight);
-            int x = area.x + area.width - borderRight - size.x;
-            int y = onBottom ? area.y + area.height - borderBottom - size.y
-                    : area.y + borderTop;
-            topRight.setBounds(x, y, size.x, size.y);
-            offset = size.x;
-        }
-        boolean leftVisible = scroll_leftVisible();
-        boolean rightVisible = scroll_rightVisible();
-        if (leftVisible || rightVisible) {
-            Point size = arrowBar.computeSize(SWT.DEFAULT, tabHeight);
-            int x = area.x + area.width - borderRight - size.x - offset;
-            int y = (onBottom) ? area.y + area.height - borderBottom - size.y
-                    : area.y + borderTop;
-
-            arrowBar.setBounds(x, y, size.x, size.y);
-            ToolItem[] items = arrowBar.getItems();
-            items[0].setEnabled(leftVisible);
-            items[1].setEnabled(rightVisible);
-            arrowBar.setVisible(true);
-        } else {
-            arrowBar.setVisible(false);
-        }
-
-        // When the close button is right at the edge of the Tab folder, hide it because
-        // otherwise it may block off a part of the border on the right
-        if (showClose) {
-            inactiveCloseBar.setVisible(false);
-            CTabItem item = getSelection();
-            if (item == null) {
-                closeBar.setVisible(false);
-            } else {
-                int toolbarHeight = tabHeight - CTabItem.TOP_MARGIN
-                        - CTabItem.BOTTOM_MARGIN + 2; // +2 to ignore gap between focus rectangle
-                Point size = closeBar.computeSize(SWT.DEFAULT, toolbarHeight);
-                int x = item.x + item.width - size.x - 2; // -2 to not overlap focus rectangle and trim
-                int y = item.y + Math.max(0, (item.height - toolbarHeight) / 2);
-                closeBar.setBounds(x, y, size.x, toolbarHeight);
-                Rectangle toolspace = getToolSpace();
-                Point folderSize = getSize();
-                boolean visible = (toolspace.width == 0 || x < toolspace.x)
-                        && x + size.x < folderSize.x - borderRight;
-                closeBar.setVisible(visible);
-            }
-        }
-    }
-
-    private boolean setItemLocation() {
-        if (items.length == 0) {
-			return false;
-		}
-        Rectangle area = super.getClientArea();
-        int x = area.x;
-        int y = area.y + borderTop;
-        if (onBottom) {
-			y = Math.max(0, area.y + area.height - borderBottom - tabHeight);
-		}
-
-        boolean changed = false;
-        for (int i = topTabIndex - 1; i >= 0; i--) {
-            // if the first visible tab is not the first tab
-            CTabItem tab = items[i];
-            x -= tab.width;
-            if (!changed && (tab.x != x || tab.y != y)) {
-				changed = true;
-			}
-            // layout tab items from right to left thus making them invisible
-            tab.x = x;
-            tab.y = y;
-        }
-
-        x = area.x + borderLeft;
-        for (int i = topTabIndex; i < items.length; i++) {
-            // continue laying out remaining, visible items left to right 
-            CTabItem tab = items[i];
-            tab.x = x;
-            tab.y = y;
-            x = x + tab.width;
-        }
-        setButtonBounds();
-        return changed;
-    }
-
-    private void setLastItem(int index) {
-        if (index < 0 || index > items.length - 1) {
-			return;
-		}
-        Rectangle area = getClientArea();
-        if (area.width <= 0) {
-			return;
-		}
-        int maxWidth = area.width;
-        Rectangle toolspace = getToolSpace();
-        if (toolspace.width > 0) {
-            maxWidth -= toolspace.width;
-        }
-        int tabWidth = items[index].width;
-        while (index > 0) {
-            tabWidth += items[index - 1].width;
-            if (tabWidth > maxWidth) {
-				break;
-			}
-            index--;
-        }
-        topTabIndex = index;
-        setItemLocation();
-        redrawTabArea(-1);
-    }
-
-    /**
-     * Layout the items and store the client area size.
-     */
-    boolean setItemBounds() {
-        boolean changed = false;
-        if (isDisposed()) {
-			return changed;
-		}
-        Rectangle area = super.getClientArea();
-
-        xClient = area.x + borderLeft + marginWidth;
-        if (onBottom) {
-            yClient = area.y + borderTop + marginHeight;
-        } else {
-            yClient = area.y + borderTop + tabHeight + 1 + marginHeight;
-            // +1 is for the line at the bottom of the tabs
-        }
-
-        if (area.width <= 0 || area.height <= 0 || items.length == 0) {
-			return changed;
-		}
-
-        int[] widths = new int[items.length];
-        GC gc = new GC(this);
-        for (int i = 0; i < items.length; i++) {
-            widths[i] = items[i].preferredWidth(gc);
-        }
-        gc.dispose();
-
-        int oldAverageWidth = 0;
-        int averageWidth = (area.width - borderLeft - borderRight)
-                / items.length;
-        while (averageWidth > oldAverageWidth) {
-            int width = area.width - borderLeft - borderRight;
-            int count = items.length;
-            for (int i = 0; i < items.length; i++) {
-                if (widths[i] < averageWidth) {
-                    width -= widths[i];
-                    count--;
-                }
-            }
-            oldAverageWidth = averageWidth;
-            if (count > 0) {
-                averageWidth = width / count;
-            }
-        }
-        averageWidth = Math.max(averageWidth, MIN_TAB_WIDTH * tabHeight);
-        for (int i = 0; i < items.length; i++) {
-            if (widths[i] > averageWidth) {
-                widths[i] = averageWidth;
-            }
-        }
-
-        int totalWidth = 0;
-        for (int i = 0; i < items.length; i++) {
-            CTabItem tab = items[i];
-            if (tab.height != tabHeight || tab.width != widths[i]) {
-				changed = true;
-			}
-            tab.height = tabHeight;
-            tab.width = widths[i];
-            totalWidth += widths[i];
-        }
-
-        int areaWidth = area.x + area.width - borderRight;
-        if (totalWidth <= areaWidth) {
-            topTabIndex = 0;
-        }
-        if (setItemLocation()) {
-			changed = true;
-		}
-
-        // Is there a gap after last item showing
-        if (correctLastItem()) {
-			changed = true;
-		}
-        return changed;
-    }
-
-    private boolean onMnemonic(Event event) {
-        char key = event.character;
-        for (int i = 0; i < items.length; i++) {
-            if (items[i] != null) {
-                char mnemonic = getMnemonic(items[i].getText());
-                if (mnemonic != '\0') {
-                    if (Character.toUpperCase(key) == Character
-                            .toUpperCase(mnemonic)) {
-                        setSelection(i, true);
-                        return true;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    /** 
-     * Paint the receiver.
-     */
-    private void onPaint(Event event) {
-        Font font = getFont();
-        if (oldFont == null || !oldFont.equals(font)) {
-            oldFont = font;
-            resetTabSize(true);
-        }
-        GC gc = event.gc;
-        Rectangle rect = super.getClientArea();
-        if (items.length == 0) {
-            if (showBorders) {
-                if ((getStyle() & SWT.FLAT) != 0) {
-                    gc.setForeground(borderColor1);
-                    gc.drawRectangle(rect.x, rect.y, rect.x + rect.width - 1,
-                            rect.y + rect.height - 1);
-                } else {
-                    gc.setForeground(borderColor1);
-                    gc.drawRectangle(rect.x, rect.y, rect.x + rect.width - 3,
-                            rect.y + rect.height - 3);
-
-                    // fill in right and bottom edges with parent's background
-                    gc.setBackground(getParent().getBackground());
-                    gc.fillRectangle(rect.x + rect.width - 2, rect.y, 2,
-                            rect.height);
-                    gc.fillRectangle(rect.x, rect.y + rect.height - 2,
-                            rect.width, 2);
-                }
-                gc.setForeground(getForeground());
-            }
-            return;
-        }
-
-        // redraw the Border
-        drawBorder(gc);
-
-        rect.x += borderLeft;
-        rect.y += borderTop;
-        rect.width -= borderLeft + borderRight;
-        rect.height -= borderTop + borderBottom;
-        Rectangle clip = gc.getClipping();
-        gc.setClipping(clip.intersection(rect));
-
-        // Draw the unselected tabs first.
-        for (int i = 0; i < items.length; i++) {
-            if (i != selectedIndex
-                    && event.getBounds().intersects(items[i].getBounds())) {
-                items[i].onPaint(gc, false);
-            }
-        }
-        // Selected tab comes last
-        if (selectedIndex != -1) {
-            items[selectedIndex].onPaint(gc, true);
-        }
-
-        // draw insertion mark
-        if (insertionIndex > -2) {
-            gc.setForeground(getDisplay().getSystemColor(
-                    SWT.COLOR_LIST_SELECTION));
-            if (insertionIndex == -1) {
-                Rectangle bounds = items[0].getBounds();
-                gc.drawLine(bounds.x, bounds.y, bounds.x, bounds.y
-                        + bounds.height - 1);
-                gc.drawLine(bounds.x - 2, bounds.y, bounds.x + 2, bounds.y);
-                gc.drawLine(bounds.x - 1, bounds.y + 1, bounds.x + 1,
-                        bounds.y + 1);
-                gc.drawLine(bounds.x - 1, bounds.y + bounds.height - 2,
-                        bounds.x + 1, bounds.y + bounds.height - 2);
-                gc.drawLine(bounds.x - 2, bounds.y + bounds.height - 1,
-                        bounds.x + 2, bounds.y + bounds.height - 1);
-
-            } else {
-                Rectangle bounds = items[insertionIndex].getBounds();
-                gc.drawLine(bounds.x + bounds.width, bounds.y, bounds.x
-                        + bounds.width, bounds.y + bounds.height - 1);
-                gc.drawLine(bounds.x + bounds.width - 2, bounds.y, bounds.x
-                        + bounds.width + 2, bounds.y);
-                gc.drawLine(bounds.x + bounds.width - 1, bounds.y + 1, bounds.x
-                        + bounds.width + 1, bounds.y + 1);
-                gc.drawLine(bounds.x + bounds.width - 1, bounds.y
-                        + bounds.height - 2, bounds.x + bounds.width + 1,
-                        bounds.y + bounds.height - 2);
-                gc.drawLine(bounds.x + bounds.width - 2, bounds.y
-                        + bounds.height - 1, bounds.x + bounds.width + 2,
-                        bounds.y + bounds.height - 1);
-            }
-        }
-
-        gc.setForeground(getForeground());
-        gc.setBackground(getBackground());
-    }
-
-    private void redrawTabArea(int index) {
-        int x = 0, y = 0, width = 0, height = 0;
-        if (index == -1) {
-            Rectangle area = super.getClientArea();
-            if (area.width == 0 || area.height == 0) {
-				return;
-			}
-            width = area.x + area.width - borderLeft - borderRight;
-            height = tabHeight + 1; // +1 causes top line between content and tabs to be redrawn
-            x = area.x + borderLeft;
-            y = area.y + borderTop;
-            if (onBottom) {
-                y = Math.max(0, area.y + area.height - borderBottom - height);
-            }
-        } else {
-            CTabItem item = items[index];
-            x = item.x;
-            y = item.y;
-            Rectangle area = super.getClientArea();
-            width = area.x + area.width - x;
-            height = item.height;
-        }
-        redraw(x, y, width, height, false);
-    }
-
-    /**	 
-     * Removes the listener.
-     *
-     * @param listener the listener
-     *
-     * @exception SWTError
-     *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>
-     * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
-     */
-    public void removeSelectionListener(SelectionListener listener) {
-        checkWidget();
-        if (listener == null) {
-            SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        }
-        removeListener(SWT.Selection, listener);
-        removeListener(SWT.DefaultSelection, listener);
-    }
-
-    /**	 
-     * Removes the listener.
-     *
-     * @param listener the listener
-     *
-     * @exception SWTError
-     *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>
-     * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
-     */
-    public void removeCTabFolderListener(CTabFolderListener listener) {
-        checkWidget();
-        if (listener == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-        if (tabListeners.length == 0) {
-			return;
-		}
-        int index = -1;
-        for (int i = 0; i < tabListeners.length; i++) {
-            if (listener == tabListeners[i]) {
-                index = i;
-                break;
-            }
-        }
-        if (index == -1) {
-			return;
-		}
-        if (tabListeners.length == 1) {
-            tabListeners = new CTabFolderListener[0];
-            showClose = false;
-            setButtonBounds();
-            return;
-        }
-        CTabFolderListener[] newTabListeners = new CTabFolderListener[tabListeners.length - 1];
-        System.arraycopy(tabListeners, 0, newTabListeners, 0, index);
-        System.arraycopy(tabListeners, index + 1, newTabListeners, index,
-                tabListeners.length - index - 1);
-        tabListeners = newTabListeners;
-    }
-
-    /**
-     * The widget was resized. Adjust the size of the currently selected page.
-     */
-    private void onResize() {
-
-        if (items.length == 0) {
-            redraw();
-            return;
-        }
-
-        if (setItemBounds()) {
-            redrawTabArea(-1);
-        }
-
-        Point size = getSize();
-        if (oldSize == null) {
-            redraw();
-        } else {
-            if (onBottom && size.y != oldSize.y) {
-                redraw();
-            } else {
-                int x1 = Math.min(size.x, oldSize.x);
-                if (size.x != oldSize.x) {
-					x1 -= 10;
-				}
-                int y1 = Math.min(size.y, oldSize.y);
-                if (size.y != oldSize.y) {
-					y1 -= 10;
-				}
-                int x2 = Math.max(size.x, oldSize.x);
-                int y2 = Math.max(size.y, oldSize.y);
-                redraw(0, y1, x2 + 10, y2 - y1, false);
-                redraw(x1, 0, x2 - x1, y2, false);
-            }
-        }
-        oldSize = size;
-
-        // resize content
-        if (selectedIndex != -1) {
-            Control control = items[selectedIndex].getControl();
-            if (control != null && !control.isDisposed()) {
-                control.setBounds(getClientArea());
-            }
-        }
-    }
-
-    public void setBackground(Color color) {
-        super.setBackground(color);
-        background = color;
-        // init inactive close button
-        inactiveCloseBar.setBackground(color);
-
-        // init scroll buttons
-        arrowBar.setBackground(color);
-
-        //init topRight control
-        if (topRight != null) {
-			topRight.setBackground(color);
-		}
-
-        // init close button
-        if (gradientColors == null) {
-            closeBar.setBackground(color);
-        }
-    }
-
-    /**
-     * Specify a gradient of colours to be draw in the background of the selected tab.
-     * For example to draw a gradient that varies from dark blue to blue and then to
-     * white, use the following call to setBackground:
-     * <pre>
-     *	cfolder.setBackground(new Color[]{display.getSystemColor(SWT.COLOR_DARK_BLUE), 
-     *		                           display.getSystemColor(SWT.COLOR_BLUE),
-     *		                           display.getSystemColor(SWT.COLOR_WHITE), 
-     *		                           display.getSystemColor(SWT.COLOR_WHITE)},
-     *		               new int[] {25, 50, 100});
-     * </pre>
-     *
-     * @param colors an array of Color that specifies the colors to appear in the gradient 
-     *               in order of appearance left to right.  The value <code>null</code> clears the
-     *               background gradient. The value <code>null</code> can be used inside the array of 
-     *               Color to specify the background color.
-     * @param percents an array of integers between 0 and 100 specifying the percent of the width 
-     *                 of the widget at which the color should change.  The size of the percents array must be one 
-     *                 less than the size of the colors array.
-     * 
-     * @exception SWTError <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     *	</ul>
-     */
-
-    public void setSelectionBackground(Color[] colors, int[] percents) {
-        checkWidget();
-        if (colors != null) {
-            if (percents == null || percents.length != colors.length - 1) {
-                SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-            }
-            if (getDisplay().getDepth() < 15) {
-                // Don't use gradients on low color displays
-                colors = new Color[] { colors[0] };
-                percents = new int[] {};
-            }
-            for (int i = 0; i < percents.length; i++) {
-                if (percents[i] < 0 || percents[i] > 100) {
-                    SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-                }
-                if (i > 0 && percents[i] < percents[i - 1]) {
-                    SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-                }
-            }
-        }
-
-        // Are these settings the same as before?
-        if (backgroundImage == null) {
-            if ((gradientColors != null) && (colors != null)
-                    && (gradientColors.length == colors.length)) {
-                boolean same = false;
-                for (int i = 0; i < gradientColors.length; i++) {
-                    if (gradientColors[i] == null) {
-                        same = colors[i] == null;
-                    } else {
-                        same = gradientColors[i].equals(colors[i]);
-                    }
-                    if (!same) {
-						break;
-					}
-                }
-                if (same) {
-                    for (int i = 0; i < gradientPercents.length; i++) {
-                        same = gradientPercents[i] == percents[i];
-                        if (!same) {
-							break;
-						}
-                    }
-                }
-                if (same) {
-					return;
-				}
-            }
-        } else {
-            backgroundImage = null;
-        }
-        // Store the new settings
-        if (colors == null) {
-            gradientColors = null;
-            gradientPercents = null;
-            closeBar.setBackground(background);
-        } else {
-            gradientColors = new Color[colors.length];
-            for (int i = 0; i < colors.length; ++i) {
-				gradientColors[i] = colors[i];
-			}
-            gradientPercents = new int[percents.length];
-            for (int i = 0; i < percents.length; ++i) {
-				gradientPercents[i] = percents[i];
-			}
-            if (getDisplay().getDepth() < 15) {
-				closeBar.setBackground(background);
-			} else {
-				closeBar
-                        .setBackground(gradientColors[gradientColors.length - 1]);
-			}
-        }
-
-        // Refresh with the new settings
-        if (selectedIndex > -1) {
-			redrawTabArea(selectedIndex);
-		}
-    }
-
-    /**
-     * Set the image to be drawn in the background of the selected tab.
-     * 
-     * @param image the image to be drawn in the background
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setSelectionBackground(Image image) {
-        checkWidget();
-        if (image == backgroundImage) {
-			return;
-		}
-        if (image != null) {
-            gradientColors = null;
-            gradientPercents = null;
-        }
-        backgroundImage = image;
-        redrawTabArea(selectedIndex);
-    }
-
-    /**
-     * Toggle the visibility of the border
-     * 
-     * @param show true if the border should be displayed
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setBorderVisible(boolean show) {
-        checkWidget();
-        //	if (showBorders == show) return;
-
-        showBorders = show;
-        if (showBorders) {
-            if ((getStyle() & SWT.FLAT) != 0) {
-                borderBottom = borderTop = borderLeft = borderRight = 1;
-            } else {
-                borderLeft = borderTop = 1;
-                borderRight = borderBottom = 3;
-            }
-        } else {
-            borderBottom = borderTop = borderLeft = borderRight = 0;
-        }
-        oldSize = null;
-        notifyListeners(SWT.Resize, new Event());
-    }
-
-    public void setFont(Font font) {
-        checkWidget();
-        if (font != null && font.equals(getFont())) {
-			return;
-		}
-        super.setFont(font);
-        oldFont = getFont();
-        resetTabSize(true);
-    }
-
-    /**
-     * Set the foreground color of the selected tab.
-     * 
-     * @param color the color of the text displayed in the selected tab
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setSelectionForeground(Color color) {
-        checkWidget();
-        if (selectionForeground == color) {
-			return;
-		}
-        if (color == null) {
-			color = getForeground();
-		}
-        selectionForeground = color;
-        if (selectedIndex > -1) {
-            redrawTabArea(selectedIndex);
-        }
-    }
-
-    /**
-     * Display an insert marker before or after the specified tab item. 
-     * 
-     * A value of null will clear the mark.
-     * 
-     * @param item the item with which the mark is associated or null
-     * 
-     * @param after true if the mark should be displayed after the specified item
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setInsertMark(CTabItem item, boolean after) {
-        checkWidget();
-        int index = -1;
-        if (item != null) {
-            index = indexOf(item);
-        }
-        setInsertMark(index, after);
-    }
-
-    /**
-     * Display an insert marker before or after the specified tab item.
-     * 
-     * A value of -1 will clear the mark.
-     * 
-     * @param index the index of the item with which the mark is associated or null
-     * 
-     * @param after true if the mark should be displayed after the specified item
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setInsertMark(int index, boolean after) {
-        checkWidget();
-        if (index < -1 || index >= getItemCount()) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-
-        if (index == -1) {
-            index = -2;
-        } else {
-            index = after ? index : --index;
-        }
-
-        if (insertionIndex == index) {
-			return;
-		}
-        int oldIndex = insertionIndex;
-        insertionIndex = index;
-        if (index > -1) {
-			redrawTabArea(index);
-		}
-        if (oldIndex > 1) {
-			redrawTabArea(oldIndex);
-		}
-    }
-
-    /**
-     * Set the selection to the tab at the specified index.
-     * 
-     * @param index the index of the tab item to be selected
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setSelection(int index) {
-        checkWidget();
-        if (index < 0 || index >= items.length) {
-			return;
-		}
-        if (selectedIndex == index) {
-			return;
-		}
-
-        int oldIndex = selectedIndex;
-        selectedIndex = index;
-
-        Control control = items[index].control;
-        if (control != null && !control.isDisposed()) {
-            control.setBounds(getClientArea());
-            control.setVisible(true);
-        }
-
-        if (oldIndex != -1) {
-            control = items[oldIndex].control;
-            if (control != null && !control.isDisposed()) {
-                control.setVisible(false);
-            }
-        }
-        showItem(items[selectedIndex]);
-        setButtonBounds();
-        redrawTabArea(-1);
-    }
-
-    /**
-     * Set the control that appears in the top right corner of the tab folder.
-     * Typically this is a close button or a composite with a Menu and close button. 
-     * The topRight control is optional.  Setting the top right control to null will remove it from the tab folder.
-     *
-     * @since 2.1
-     * 
-     * @param control the control to be displayed in the top right corner or null
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if the control is not a child of this CTabFolder</li>
-     * </ul>
-     */
-    public void setTopRight(Control control) {
-        checkWidget();
-        if (control != null && control.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        topRight = control;
-        resetTabSize(true);
-    }
-
-    /**
-     * Shows the item.  If the item is already showing in the receiver,
-     * this method simply returns.  Otherwise, the items are scrolled until
-     * the item is visible.
-     *
-     * @param item the item to be shown
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the item is null</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if the item has been disposed</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     *
-     * @see CTabFolder#showSelection()
-     * 
-     * @since 2.0
-     */
-    public void showItem(CTabItem item) {
-        checkWidget();
-        if (item == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-        if (item.isDisposed()) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-		}
-
-        int index = indexOf(item);
-        if (index < topTabIndex) {
-            topTabIndex = index;
-            setItemLocation();
-            redrawTabArea(-1);
-            return;
-        }
-        Rectangle area = getClientArea();
-        if (area.width <= 0) {
-            topTabIndex = index;
-            return;
-        }
-        int rightEdge = area.x + area.width;
-        Rectangle rect = getToolSpace();
-        if (rect.width > 0) {
-            rightEdge -= rect.width;
-        }
-        if (item.x + item.width < rightEdge) {
-			return;
-		}
-        setLastItem(index);
-    }
-
-    /**
-     * Shows the selection.  If the selection is already showing in the receiver,
-     * this method simply returns.  Otherwise, the items are scrolled until
-     * the selection is visible.
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     *
-     * @see CTabFolder#showItem(CTabItem)
-     * 
-     * @since 2.0
-     * 
-     */
-    public void showSelection() {
-        checkWidget();
-        if (selectedIndex != -1) {
-            showItem(getSelection());
-        }
-    }
-
-    char getMnemonic(String string) {
-        int index = 0;
-        int length = string.length();
-        do {
-            while ((index < length) && (string.charAt(index) != '&')) {
-				index++;
-			}
-            if (++index >= length) {
-				return '\0';
-			}
-            if (string.charAt(index) != '&') {
-				return string.charAt(index);
-			}
-            index++;
-        } while (index < length);
-        return '\0';
-    }
-
-    /**
-     * Set the selection to the tab at the specified item.
-     * 
-     * @param item the tab item to be selected
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_NULL_ARGUMENT - if argument is null</li>
-     * </ul>
-     */
-    public void setSelection(CTabItem item) {
-        checkWidget();
-        if (item == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-        int index = indexOf(item);
-        setSelection(index);
-    }
-
-    /**
-     * Set the selection to the tab at the specified index.
-     */
-    private void setSelection(int index, boolean notify) {
-        int oldSelectedIndex = selectedIndex;
-        setSelection(index);
-        if (notify && selectedIndex != oldSelectedIndex && selectedIndex != -1) {
-            Event event = new Event();
-            event.item = getItem(selectedIndex);
-            notifyListeners(SWT.Selection, event);
-        }
-    }
-
-    private Image scaleImage(Image image, int oldSize, int newSize) {
-        Display display = getDisplay();
-        Color foreground = getForeground();
-        Color black = display.getSystemColor(SWT.COLOR_BLACK);
-        Color background = getBackground();
-        PaletteData palette = new PaletteData(new RGB[] { foreground.getRGB(),
-                background.getRGB(), black.getRGB() });
-        ImageData imageData = new ImageData(newSize, newSize, 4, palette);
-        imageData.transparentPixel = 1;
-        Image temp = new Image(display, imageData);
-        GC gc = new GC(temp);
-        gc.setBackground(background);
-        gc.fillRectangle(0, 0, newSize, newSize);
-        gc.drawImage(image, 0, 0, oldSize, oldSize, 0, 0, newSize, newSize);
-        gc.dispose();
-        return temp;
-    }
-
-    private void updateCloseBar() {
-        //Temporary code - need a better way to determine toolBar trim
-        int toolbarTrim = 4;
-        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();
-        }
-    }
-
-    /**
-     * 
-     * @param position 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if the position value is not either SWT.TOP or SWT.BOTTOM</li>
-     * </ul>
-     * 
-     * UNDER CONSTRUCTION
-     * @since 3.0
-     */
-    public void setTabPosition(int position) {
-        checkWidget();
-        if (position != SWT.TOP && position != SWT.BOTTOM) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (onBottom != (position == SWT.BOTTOM)) {
-            onBottom = position == SWT.BOTTOM;
-            setBorderVisible(showBorders);
-            resetTabSize(true);
-            //		updateTabHeight(true);
-            //		Rectangle rectBefore = getClientArea();
-            //		updateItems();
-            //		Rectangle rectAfter = getClientArea();
-            //		if (!rectBefore.equals(rectAfter)) {
-            //			notifyListeners(SWT.Resize, new Event());
-            //		}
-            //		setItemBounds();
-            //		redrawTabArea(-1);
-            //		redraw();
-        }
-    }
-
-    /**
-     * @return one of {@link SWT#TOP} or {@link SWT#BOTTOM}
-     */
-    public int getTabPosition() {
-        if (onBottom) {
-			return SWT.BOTTOM;
-		}
-        return SWT.TOP;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderEvent.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderEvent.java
deleted file mode 100644
index 7b4a880..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderEvent.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21.widgets;
-
-import org.eclipse.swt.events.TypedEvent;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- *
- */
-public class CTabFolderEvent extends TypedEvent {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3258688793199719730L;
-
-    /**
-     * 
-     */
-    public Widget item;
-
-    /**
-     * 
-     */
-    public boolean doit;
-
-    CTabFolderEvent(Widget w) {
-        super(w);
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderListener.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderListener.java
deleted file mode 100644
index 4d07e63..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderListener.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21.widgets;
-
-/**
- */
-public interface CTabFolderListener {
-    /**
-     * @param event
-     */
-    public void itemClosed(CTabFolderEvent event);
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabItem.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabItem.java
deleted file mode 100644
index 594e014..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabItem.java
+++ /dev/null
@@ -1,623 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- */
-public class CTabItem extends Item {
-    CTabFolder parent;
-
-    int x, y, width, height = 0;
-
-    String toolTipText;
-
-    Control control; // the tab page
-
-    private Image disabledImage;
-
-    // internal constants
-    static final int LEFT_MARGIN = 4;
-
-    static final int RIGHT_MARGIN = 4;
-
-    static final int TOP_MARGIN = 3;
-
-    static final int BOTTOM_MARGIN = 3;
-
-    private static final int INTERNAL_SPACING = 2;
-
-    private static final String ellipsis = "..."; //$NON-NLS-1$
-
-    String shortenedText;
-
-    int shortenedTextWidth;
-
-    /**
-     * Constructs a new instance of this class given its parent
-     * (which must be a <code>CTabFolder</code>) and a style value
-     * describing its behavior and appearance. The item is added
-     * to the end of the items maintained by its parent.
-     * <p>
-     * The style value is either one of the style constants defined in
-     * class <code>SWT</code> which is applicable to instances of this
-     * class, or must be built by <em>bitwise OR</em>'ing together 
-     * (that is, using the <code>int</code> "|" operator) two or more
-     * of those <code>SWT</code> style constants. The class description
-     * lists the style constants that are applicable to the class.
-     * Style bits are also inherited from superclasses.
-     * </p>
-     *
-     * @param parent a CTabFolder which will be the parent of the new instance (cannot be null)
-     * @param style the style of control to construct
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-     * </ul>
-     *
-     * @see SWT
-     * @see Widget#getStyle
-     */
-    public CTabItem(CTabFolder parent, int style) {
-        this(parent, style, parent.getItemCount());
-    }
-
-    /**
-     * Constructs a new instance of this class given its parent
-     * (which must be a <code>CTabFolder</code>), a style value
-     * describing its behavior and appearance, and the index
-     * at which to place it in the items maintained by its parent.
-     * <p>
-     * The style value is either one of the style constants defined in
-     * class <code>SWT</code> which is applicable to instances of this
-     * class, or must be built by <em>bitwise OR</em>'ing together 
-     * (that is, using the <code>int</code> "|" operator) two or more
-     * of those <code>SWT</code> style constants. The class description
-     * lists the style constants that are applicable to the class.
-     * Style bits are also inherited from superclasses.
-     * </p>
-     *
-     * @param parent a CTabFolder which will be the parent of the new instance (cannot be null)
-     * @param style the style of control to construct
-     * @param index the index to store the receiver in its parent
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-     * </ul>
-     *
-     * @see SWT
-     * @see Widget#getStyle
-     */
-    public CTabItem(CTabFolder parent, int style, int index) {
-        super(parent, checkStyle(style));
-        parent.createItem(this, index);
-    }
-
-    /**
-	 * @param style  
-	 */
-    private static int checkStyle(int style) {
-        return SWT.NONE;
-    }
-
-    public void dispose() {
-        if (isDisposed()) {
-			return;
-		}
-        parent.destroyItem(this);
-        super.dispose();
-        parent = null;
-        control = null;
-        toolTipText = null;
-    }
-
-    /**
-     * Returns a rectangle describing the receiver's size and location
-     * relative to its parent.
-     *
-     * @return the receiver's bounding column rectangle
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public Rectangle getBounds() {
-        //checkWidget();
-        return new Rectangle(x, y, width, height);
-    }
-
-    /**
-     * Gets the control that is displayed in the content are of the tab item.
-     *
-     * @return the control
-     *
-     * @exception SWTError(ERROR_THREAD_INVALID_ACCESS)
-     *	when called from the wrong thread
-     * @exception SWTError(ERROR_WIDGET_DISPOSED)
-     *	when the widget has been disposed
-     */
-    public Control getControl() {
-        checkWidget();
-        return control;
-    }
-
-    public Display getDisplay() {
-        if (parent == null) {
-			SWT.error(SWT.ERROR_WIDGET_DISPOSED);
-		}
-        return parent.getDisplay();
-    }
-
-    /**
-     * Get the image displayed in the tab if the tab is disabled.
-     * 
-     * @return the disabled image or null
-     */
-    public Image getDisabledImage() {
-        //checkWidget();
-        return disabledImage;
-    }
-
-    /**
-     * Returns the receiver's parent, which must be a <code>CTabFolder</code>.
-     *
-     * @return the receiver's parent
-     */
-    public CTabFolder getParent() {
-        //checkWidget();
-        return parent;
-    }
-
-    /**
-     * Returns the receiver's tool tip text, or null if it has
-     * not been set.
-     *
-     * @return the receiver's tool tip text
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public String getToolTipText() {
-        checkWidget();
-        return toolTipText;
-    }
-
-    /**
-     * Paint the receiver.
-     */
-    void onPaint(GC gc, boolean isSelected) {
-
-        if (width == 0 || height == 0) {
-			return;
-		}
-
-        Display display = getDisplay();
-        Color highlightShadow = display
-                .getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
-        Color normalShadow = display
-                .getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-
-        int index = parent.indexOf(this);
-
-        if (isSelected) {
-
-            Rectangle bounds = null;
-            if (!parent.onBottom) {
-                if (index == parent.topTabIndex) {
-                    bounds = new Rectangle(x + 1, y + 1, width - 2, height - 1);
-                } else {
-                    bounds = new Rectangle(x + 2, y + 1, width - 3, height - 1);
-                }
-            } else {
-                if (index == parent.topTabIndex) {
-                    bounds = new Rectangle(x + 1, y + 1, width - 2, height - 2);
-                } else {
-                    bounds = new Rectangle(x + 2, y + 1, width - 3, height - 2);
-                }
-            }
-            if (parent.backgroundImage != null) {
-                // draw a background image behind the text
-                Rectangle imageRect = parent.backgroundImage.getBounds();
-                gc.drawImage(parent.backgroundImage, 0, 0, imageRect.width,
-                        imageRect.height, bounds.x, bounds.y, bounds.width,
-                        bounds.height);
-            } else if (parent.gradientColors != null) {
-                // draw a gradient behind the text
-                Color oldBackground = gc.getBackground();
-                if (parent.gradientColors.length == 1) {
-                    if (parent.gradientColors[0] != null) {
-						gc.setBackground(parent.gradientColors[0]);
-					}
-                    gc.fillRectangle(bounds.x, bounds.y, bounds.width,
-                            bounds.height);
-                } else {
-                    Color oldForeground = gc.getForeground();
-                    Color lastColor = parent.gradientColors[0];
-                    if (lastColor == null) {
-						lastColor = oldBackground;
-					}
-                    for (int i = 0, pos = 0; i < parent.gradientPercents.length; ++i) {
-                        gc.setForeground(lastColor);
-                        lastColor = parent.gradientColors[i + 1];
-                        if (lastColor == null) {
-							lastColor = oldBackground;
-						}
-                        gc.setBackground(lastColor);
-                        int gradientWidth = (parent.gradientPercents[i]
-                                * bounds.width / 100)
-                                - pos;
-                        gc.fillGradientRectangle(bounds.x + pos, bounds.y,
-                                gradientWidth, bounds.height, false);
-                        pos += gradientWidth;
-                    }
-                    gc.setForeground(oldForeground);
-                }
-                gc.setBackground(oldBackground);
-            }
-
-            // draw tab lines
-            if (!parent.onBottom) {
-                gc.setForeground(normalShadow);
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 1, y, x + 1, y);
-                    gc.drawLine(x, y + 1, x, y + height - 2);
-                    gc.drawLine(x, y + height - 1, x, y + height - 1);
-                }
-                gc.drawLine(x + width - 1, y, x + width - 1, y);
-                gc.drawLine(x + width, y + 1, x + width, y + height - 2);
-                gc.drawLine(x + width, y + height - 1, x + width, y + height
-                        - 1);
-
-                gc.setForeground(highlightShadow);
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 2, y, x + 2, y);
-                    gc.drawLine(x + 1, y + 1, x + 1, y + height - 2);
-                    gc.drawLine(x + 1, y + height - 1, x + 1, y + height - 1);
-                } else {
-                    gc.drawLine(x, y, x, y + height - 1);
-                }
-
-                gc.drawLine(x + width - 2, y, x + width - 2, y);
-                gc
-                        .drawLine(x + width - 1, y + 1, x + width - 1, y
-                                + height - 2);
-                gc.drawLine(x + width - 1, y + height - 1, x + width - 1, y
-                        + height - 1);
-
-                // light line across top
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 3, y, x + width - 3, y);
-                } else {
-                    gc.drawLine(x + 1, y, x + width - 3, y);
-                }
-            } else {
-                gc.setForeground(normalShadow);
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x, y, x, y);
-                    gc.drawLine(x, y + 1, x, y + height - 2);
-                    gc.drawLine(x + 1, y + height - 1, x + 1, y + height - 1);
-                }
-                gc.drawLine(x + width, y, x + width, y);
-                gc.drawLine(x + width, y + 1, x + width, y + height - 2);
-                gc.drawLine(x + width - 1, y + height - 1, x + width - 1, y
-                        + height - 1);
-
-                gc.setForeground(highlightShadow);
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 1, y, x + 1, y);
-                    gc.drawLine(x + 1, y + 1, x + 1, y + height - 2);
-                    gc.drawLine(x + 2, y + height - 1, x + 2, y + height - 1);
-                } else {
-                    gc.drawLine(x, y, x, y + height - 1);
-                }
-
-                gc.drawLine(x + width - 1, y, x + width - 1, y);
-                gc
-                        .drawLine(x + width - 1, y + 1, x + width - 1, y
-                                + height - 2);
-                gc.drawLine(x + width - 2, y + height - 1, x + width - 2, y
-                        + height - 1);
-
-                // light line across top and bottom
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 1, y, x + width - 2, y);
-                    gc.drawLine(x + 2, y + height - 1, x + width - 3, y
-                            + height - 1);
-                } else {
-                    gc.drawLine(x + 1, y, x + width - 2, y);
-                    gc.drawLine(x + 1, y + height - 1, x + width - 3, y
-                            + height - 1);
-                }
-            }
-            if (parent.isFocusControl()) {
-                // draw a focus rectangle
-                int x1, y1, width1, height1;
-                if (!parent.onBottom) {
-                    if (index == parent.topTabIndex) {
-                        x1 = x + 1;
-                        y1 = y + 1;
-                        width1 = width - 2;
-                        height1 = height - 1;
-                    } else {
-                        x1 = x + 2;
-                        y1 = y + 1;
-                        width1 = width - 3;
-                        height1 = height - 1;
-                    }
-                } else {
-                    if (index == parent.topTabIndex) {
-                        x1 = x + 1;
-                        y1 = y + 1;
-                        width1 = width - 2;
-                        height1 = height - 2;
-                    } else {
-                        x1 = x + 2;
-                        y1 = y + 1;
-                        width1 = width - 3;
-                        height1 = height - 2;
-                    }
-                }
-                gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
-                gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
-                gc.drawFocus(x1, y1, width1, height1);
-            }
-        } else {
-            // draw tab lines for unselected items
-            gc.setForeground(normalShadow);
-            if (!parent.onBottom) {
-                if (index != parent.topTabIndex
-                        && index != parent.getSelectionIndex() + 1) {
-                    gc.drawLine(x, y, x, y + (height / 2));
-                }
-            } else {
-                if (index != parent.topTabIndex
-                        && index != parent.getSelectionIndex() + 1) {
-                    gc.drawLine(x, y + (height / 2), x, y + height - 1);
-                }
-            }
-
-        }
-
-        // draw Image
-        int xDraw = x + LEFT_MARGIN;
-
-        Image image = getImage();
-        if (!isSelected && image != null) {
-            Image temp = getDisabledImage();
-            if (temp != null) {
-                image = temp;
-            }
-        }
-        if (image != null) {
-            Rectangle imageBounds = image.getBounds();
-            int imageX = xDraw;
-            int imageHeight = Math.min(height - BOTTOM_MARGIN - TOP_MARGIN,
-                    imageBounds.height);
-            int imageY = y + (height - imageHeight) / 2;
-            int imageWidth = imageBounds.width * imageHeight
-                    / imageBounds.height;
-            gc.drawImage(image, imageBounds.x, imageBounds.y,
-                    imageBounds.width, imageBounds.height, imageX, imageY,
-                    imageWidth, imageHeight);
-            xDraw += imageWidth + INTERNAL_SPACING;
-        }
-
-        // draw Text
-        int textWidth = x + width - xDraw - RIGHT_MARGIN;
-        if (isSelected && parent.showClose) {
-            textWidth = x + width - xDraw - parent.closeBar.getSize().x
-                    - RIGHT_MARGIN;
-        }
-        if (shortenedText == null || shortenedTextWidth != textWidth) {
-            shortenedText = shortenText(gc, getText(), textWidth);
-            shortenedTextWidth = textWidth;
-        }
-        String text = shortenedText;
-
-        if (isSelected && parent.selectionForeground != null) {
-            gc.setForeground(parent.selectionForeground);
-        } else {
-            gc.setForeground(parent.getForeground());
-        }
-        int textY = y + (height - gc.textExtent(text, SWT.DRAW_MNEMONIC).y) / 2;
-        gc.drawText(text, xDraw, textY, SWT.DRAW_TRANSPARENT
-                | SWT.DRAW_MNEMONIC);
-
-        gc.setForeground(parent.getForeground());
-    }
-
-    private static String shortenText(GC gc, String text, int width) {
-        if (gc.textExtent(text, SWT.DRAW_MNEMONIC).x <= width) {
-			return text;
-		}
-
-        int ellipseWidth = gc.textExtent(ellipsis, SWT.DRAW_MNEMONIC).x;
-        int length = text.length();
-        int end = length - 1;
-        while (end > 0) {
-            text = text.substring(0, end);
-            int l1 = gc.textExtent(text, SWT.DRAW_MNEMONIC).x;
-            if (l1 + ellipseWidth <= width) {
-                return text + ellipsis;
-            }
-            end--;
-        }
-        return text + ellipsis;
-    }
-
-    /**
-     * Answer the preferred height of the receiver for the GC.
-     */
-    int preferredHeight(GC gc) {
-        Image image = getImage();
-        int height = 0;
-        if (image != null) {
-			height = image.getBounds().height;
-		}
-        String text = getText();
-        height = Math.max(height, gc.textExtent(text, SWT.DRAW_MNEMONIC).y);
-        return height + TOP_MARGIN + BOTTOM_MARGIN;
-    }
-
-    /**
-     * Answer the preferred width of the receiver for the GC.
-     */
-    int preferredWidth(GC gc) {
-        int width = 0;
-        Image image = getImage();
-        if (image != null) {
-			width += image.getBounds().width;
-		}
-        String text = getText();
-        if (text != null) {
-            if (image != null) {
-				width += INTERNAL_SPACING;
-			}
-            width += gc.textExtent(text, SWT.DRAW_MNEMONIC).x;
-        }
-        if (parent.showClose) {
-			width += INTERNAL_SPACING + preferredHeight(gc); // closebar will be square and will fill preferred height
-		}
-        return width + LEFT_MARGIN + RIGHT_MARGIN;
-    }
-
-    /**
-     * Sets the control that is used to fill the client area of
-     * the tab folder when the user selects the tab item.
-     * <p>
-     * @param control the new control (or null)
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_INVALID_ARGUMENT - if the control has been disposed</li> 
-     *    <li>ERROR_INVALID_PARENT - if the control is not in the same widget tree</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setControl(Control control) {
-        checkWidget();
-        if (control != null) {
-            if (control.isDisposed()) {
-				SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-			}
-            if (control.getParent() != parent) {
-				SWT.error(SWT.ERROR_INVALID_PARENT);
-			}
-        }
-        if (this.control != null && !this.control.isDisposed()) {
-            this.control.setVisible(false);
-        }
-        this.control = control;
-        if (this.control != null) {
-            int index = parent.indexOf(this);
-            if (index == parent.getSelectionIndex()) {
-                this.control.setBounds(parent.getClientArea());
-                this.control.setVisible(true);
-            } else {
-                this.control.setVisible(false);
-            }
-        }
-    }
-
-    public void setImage(Image image) {
-        checkWidget();
-        if (image != null && image.equals(getImage())) {
-			return;
-		}
-        super.setImage(image);
-        parent.resetTabSize(true);
-    }
-
-    /**
-     * Sets the image that is displayed if the tab item is disabled.
-     * Null will clear the image.
-     * 
-     * @param image the image to be displayed when the item is disabled or null
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setDisabledImage(Image image) {
-        checkWidget();
-        if (image != null && image.equals(getDisabledImage())) {
-			return;
-		}
-        disabledImage = image;
-        parent.redraw();
-    }
-
-    /**
-     * Set the widget text.
-     * <p>
-     * This method sets the widget label.  The label may include
-     * mnemonic characters but must not contain line delimiters.
-     *
-     * @param string the new label for the widget
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the text is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setText(String string) {
-        checkWidget();
-        if (string.equals(getText())) {
-			return;
-		}
-        super.setText(string);
-        shortenedText = null;
-        shortenedTextWidth = 0;
-        parent.resetTabSize(false);
-    }
-
-    /**
-     * Sets the receiver's tool tip text to the argument, which
-     * may be null indicating that no tool tip text should be shown.
-     *
-     * @param string the new tool tip text (or null)
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setToolTipText(String string) {
-        checkWidget();
-        toolTipText = string;
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolder.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolder.java
deleted file mode 100644
index 0a67928..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolder.java
+++ /dev/null
@@ -1,487 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21.widgets;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.internal.layout.SizeCache;
-import org.eclipse.ui.internal.presentations.util.ProxyControl;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-
-/**
- * This class implements the tab folders that contains can contain two toolbars and
- * status text. Wherever possible, the toolbars are aligned with the tabs. 
- * If there is not enough room beside the tabs, the toolbars are aligned with the status text. This
- * is the same tab folder that is used to arrange views and editors in Eclipse. 
- * <p>
- * This is closely related to DefaultPartPresentation, but they have different responsibilities. This
- * is essentially a CTabFolder that can manage a toolbar. It should not depend on 
- * data structures from the workbench, and its public interface should only use SWT objects or
- * listeners. DefaultPartPresentation uses a PaneFolder to arrange views or editors. Knowledge
- * of higher-level data structures should go there. 
- * </p>
- * <p>
- * Although it is not actually a control, the public interface is much like 
- * an SWT control. Implementation-wise, this is actually a combination of a CTabFolder and 
- * a ViewForm. It encapsulates the details of moving the toolbar between the CTabFolder and
- * the ViewForm, and provides a simpler interface to the ViewForm/CTabFolder. 
- * </p>
- * 
- * @since 3.0
- */
-public final class R21PaneFolder {
-    // Tab folder and associated proxy controls
-    private CTabFolder tabFolder;
-
-    //	private Control titleAreaProxy;	
-
-    // View form and associated proxy controls
-    private ViewForm viewForm;
-
-    private ProxyControl contentProxy;
-
-    private ProxyControl viewFormTopLeftProxy;
-
-    private ProxyControl viewFormTopRightProxy;
-
-    private ProxyControl viewFormTopCenterProxy;
-
-    // Cached sizes of the top-right and top-center controls
-    private SizeCache topRightCache = new SizeCache();
-
-    private SizeCache topCenterCache = new SizeCache();
-
-    private SizeCache topLeftCache = new SizeCache();
-
-    private int tabPos;
-
-    private boolean putTrimOnTop = false;
-
-    /**
-     * List of PaneFolderButtonListener
-     */
-    private List buttonListeners = new ArrayList(1);
-
-    private int state = IStackPresentationSite.STATE_RESTORED;
-
-    /**
-     * State of the folder at the last mousedown event. This is used to prevent
-     * a mouseup over the minimize or maximize buttons from undoing a state change 
-     * that was caused by the mousedown.
-     */
-    private int mousedownState = -1;
-
-    //	// CTabFolder listener
-    //	private CTabFolder2Adapter expandListener = new CTabFolder2Adapter() {
-    //		public void minimize(CTabFolderEvent event) {
-    //			event.doit = false;
-    //			notifyButtonListeners(IStackPresentationSite.STATE_MINIMIZED);
-    //		}
-    //		
-    //		public void restore(CTabFolderEvent event) {
-    //			event.doit = false;
-    //			notifyButtonListeners(IStackPresentationSite.STATE_RESTORED);
-    //		}
-    //		
-    //		public void maximize(CTabFolderEvent event) {
-    //			event.doit = false;
-    //			notifyButtonListeners(IStackPresentationSite.STATE_MAXIMIZED);
-    //		}
-    //		
-    //		/* (non-Javadoc)
-    //		 * @see org.eclipse.swt.custom.CTabFolder2Adapter#close(org.eclipse.swt.custom.CTabFolderEvent)
-    //		 */
-    //		public void close(CTabFolderEvent event) {
-    //			event.doit = false;
-    //			notifyCloseListeners((CTabItem)event.item);
-    //		}
-    //		
-    //		public void showList(CTabFolderEvent event) {
-    //			notifyShowListeners(event);
-    //		}
-    //		
-    //	};
-    //	
-    private MouseListener mouseListener = new MouseAdapter() {
-        public void mouseDown(MouseEvent e) {
-            mousedownState = getState();
-        }
-
-        public void mouseDoubleClick(MouseEvent e) {
-        }
-    };
-
-    /**
-     * Creates a pane folder. This will create exactly one child control in the
-     * given parent.
-     * 
-     * @param parent
-     * @param flags
-     */
-    public R21PaneFolder(Composite parent, int flags) {
-        // Initialize tab folder
-        {
-            tabFolder = new CTabFolder(parent, flags);
-
-            //			// Create a proxy control to measure the title area of the tab folder
-            //			titleAreaProxy = new Composite(tabFolder, SWT.NONE);
-            //			titleAreaProxy.setVisible(false);
-            //			tabFolder.setTopRight(titleAreaProxy, SWT.FILL);
-
-            //			tabFolder.addCTabFolder2Listener(expandListener);
-            //			
-            tabFolder.addMouseListener(mouseListener);
-        }
-
-        // Initialize view form
-        {
-            viewForm = new ViewForm(tabFolder, SWT.NONE);
-
-            // Only attach these to the viewForm when there's actuall a control to display
-            viewFormTopLeftProxy = new ProxyControl(viewForm);
-            viewFormTopCenterProxy = new ProxyControl(viewForm);
-            viewFormTopRightProxy = new ProxyControl(viewForm);
-
-            contentProxy = new ProxyControl(viewForm);
-            viewForm.setContent(contentProxy.getControl());
-        }
-    }
-
-    /**
-     * Return the main control for this pane folder
-     * 
-     * @return Composite the control
-     */
-    public Composite getControl() {
-        return tabFolder;
-    }
-
-    /**
-     * Sets the top-center control (usually a toolbar), or null if none.
-     * Note that the control can have any parent.
-     * 
-     * @param topCenter the top-center control or null if none
-     */
-    public void setTopCenter(Control topCenter) {
-        topCenterCache.setControl(topCenter);
-        if (topCenter != null) {
-            if (!putTrimOnTop) {
-                viewFormTopCenterProxy.setTarget(topCenterCache);
-                viewForm.setTopCenter(viewFormTopCenterProxy.getControl());
-            }
-        } else {
-            if (!putTrimOnTop) {
-                viewForm.setTopCenter(null);
-            }
-        }
-    }
-
-    /**
-     * Sets the top-right control (usually a dropdown), or null if none
-     * 
-     * @param topRight
-     */
-    public void setTopRight(Control topRight) {
-        topRightCache.setControl(topRight);
-        if (topRight != null) {
-            if (!putTrimOnTop) {
-                viewFormTopRightProxy.setTarget(topRightCache);
-                viewForm.setTopRight(viewFormTopRightProxy.getControl());
-            }
-        } else {
-            if (!putTrimOnTop) {
-                viewForm.setTopRight(null);
-            }
-        }
-    }
-
-    /**
-     * Sets the top-left control (usually a title label), or null if none
-     * 
-     * @param topLeft
-     */
-    public void setTopLeft(Control topLeft) {
-        if (topLeftCache.getControl() != topLeft) {
-            topLeftCache.setControl(topLeft);
-            // The top-left control always goes directly in the ViewForm
-            if (topLeft != null) {
-                viewFormTopLeftProxy.setTarget(topLeftCache);
-                viewForm.setTopLeft(viewFormTopLeftProxy.getControl());
-            } else {
-                viewFormTopLeftProxy.setTargetControl(null);
-                viewForm.setTopLeft(null);
-            }
-        }
-    }
-
-    /**
-     * Flush all of this folder's size caches to ensure they will be re-computed
-     * on the next layout.
-     */
-    public void flush() {
-        topLeftCache.flush();
-        topRightCache.flush();
-        topCenterCache.flush();
-    }
-
-    /**
-     * Layout the receiver, flusing the cache if needed.
-     * 
-     * @param flushCache
-     */
-    public void layout(boolean flushCache) {
-        // Flush the cached sizes if necessary
-        if (flushCache) {
-			flush();
-		}
-
-        Rectangle tabFolderClientArea = tabFolder.getClientArea();
-
-        // Hide tabs if there is only one
-        if (tabFolder.getItemCount() < 2) {
-            //Rectangle tabFolderBounds = tabFolder.getBounds();
-
-            int delta = getTabHeight() + 1;
-            tabFolderClientArea.height += delta;
-
-            if (getTabPosition() == SWT.TOP) {
-                tabFolderClientArea.y -= delta;
-            }
-        }
-
-        viewForm.setBounds(tabFolderClientArea);
-        viewFormTopRightProxy.layout();
-        viewFormTopLeftProxy.layout();
-        viewFormTopCenterProxy.layout();
-    }
-
-    /**
-     * Returns the client area for this PaneFolder, relative to the pane folder's control.
-     * 
-     * @return Rectangle the client area 
-     */
-    public Rectangle getClientArea() {
-        Rectangle bounds = contentProxy.getControl().getBounds();
-
-        Rectangle formArea = viewForm.getBounds();
-
-        bounds.x += formArea.x;
-        bounds.y += formArea.y;
-
-        return bounds;
-    }
-
-    /**
-     * Returns the current state of the folder (as shown on the button icons)
-     * 
-     * @return one of the IStackPresentationSite.STATE_* constants
-     */
-    public int getState() {
-        return state;
-    }
-
-    /**
-     * @param buttonId one of the IStackPresentationSite.STATE_* constants
-     */
-    protected void notifyButtonListeners(int buttonId) {
-        if (mousedownState == getState()) {
-            Iterator iter = buttonListeners.iterator();
-
-            while (iter.hasNext()) {
-                R21PaneFolderButtonListener listener = (R21PaneFolderButtonListener) iter
-                        .next();
-
-                listener.stateButtonPressed(buttonId);
-            }
-        }
-    }
-
-    /**
-     * Notifies all listeners that the user clicked on the chevron
-     * 
-     * @param event
-     */
-    protected void notifyShowListeners(CTabFolderEvent event) {
-        Iterator iter = buttonListeners.iterator();
-
-        while (iter.hasNext()) {
-            R21PaneFolderButtonListener listener = (R21PaneFolderButtonListener) iter
-                    .next();
-
-            listener.showList(event);
-        }
-    }
-
-    /**
-     * Notifies all listeners that the close button was pressed
-     * 
-     * @param tabItem
-     */
-    protected void notifyCloseListeners(CTabItem tabItem) {
-        Iterator iter = buttonListeners.iterator();
-
-        while (iter.hasNext()) {
-            R21PaneFolderButtonListener listener = (R21PaneFolderButtonListener) iter
-                    .next();
-
-            listener.closeButtonPressed(tabItem);
-        }
-    }
-
-    /**
-     * @param listener
-     */
-    public void addButtonListener(R21PaneFolderButtonListener listener) {
-        buttonListeners.add(listener);
-    }
-
-    /**
-     * @param listener
-     */
-    public void removeButtonListener(R21PaneFolderButtonListener listener) {
-        buttonListeners.remove(listener);
-    }
-
-    /**
-     * @param newTabPosition
-     */
-    public void setTabPosition(int newTabPosition) {
-        tabPos = newTabPosition;
-        tabFolder.setTabPosition(tabPos);
-    }
-
-    /**
-     * @return int the postion of the tab
-     */
-    public int getTabPosition() {
-        return tabPos;
-    }
-
-    /**
-     * @return boolean <code>true</code> if the receiver has been disposed
-     */
-    public boolean isDisposed() {
-        return tabFolder == null || tabFolder.isDisposed();
-    }
-
-    /**
-     * @param style
-     * @param index
-     * @return CTabItem the created item
-     */
-    public CTabItem createItem(int style, int index) {
-        return new CTabItem(tabFolder, style, index);
-    }
-
-    // The remainder of the methods in this class redirect directly to CTabFolder methods
-
-    /**
-     * @param selection
-     */
-    public void setSelection(int selection) {
-        tabFolder.setSelection(selection);
-    }
-
-    /**
-     * @param i
-     * @param j
-     * @param k
-     * @param l
-     * @return Rectangle the trim rectangle
-     */
-    public Rectangle computeTrim(int i, int j, int k, int l) {
-        return tabFolder.computeTrim(i, j, k, l);
-    }
-
-    /**
-     * @param fgColor
-     */
-    public void setSelectionForeground(Color fgColor) {
-        tabFolder.setSelectionForeground(fgColor);
-    }
-
-    /**
-     * @param idx
-     * @return CTabItem the indexed item
-     */
-    public CTabItem getItem(int idx) {
-        return tabFolder.getItem(idx);
-    }
-
-    /**
-     * @return int the selected items index
-     */
-    public int getSelectionIndex() {
-        return tabFolder.getSelectionIndex();
-    }
-
-    /**
-     * @return int the height of the tabs
-     */
-    public int getTabHeight() {
-        return tabFolder.getTabHeight();
-    }
-
-    /**
-     * @param toFind
-     * @return int the index of the item to find
-     */
-    public int indexOf(CTabItem toFind) {
-        return tabFolder.indexOf(toFind);
-    }
-
-    /**
-     * @param height
-     */
-    public void setTabHeight(int height) {
-        tabFolder.setTabHeight(height);
-    }
-
-    /**
-     * @return int the item count
-     */
-    public int getItemCount() {
-        return tabFolder.getItemCount();
-    }
-
-    /**
-     * @return CTabItem the items
-     */
-    public CTabItem[] getItems() {
-        return tabFolder.getItems();
-    }
-
-    /**
-     * @param toGet
-     * @return CTabItem the indexed item
-     */
-    public CTabItem getItem(Point toGet) {
-        return tabFolder.getItem(toGet);
-    }
-
-    /**
-     * @return CTabItem the selected item
-     */
-    public CTabItem getSelection() {
-        return tabFolder.getSelection();
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolderButtonListener.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolderButtonListener.java
deleted file mode 100644
index 5316e12..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolderButtonListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21.widgets;
-
-/**
- * This listener receives notifications when the user clicks on one of
- * the buttons (minimize, maximize, or restore) on a pane folder.  
- * 
- * @since 3.0
- */
-public abstract class R21PaneFolderButtonListener {
-
-    /**
-     * Called when the minimize, maximize, or restore buttons are pressed.
-     *   
-     * @param buttonId one of the IStackPresentationSite.STATE_* constants
-     */
-    public void stateButtonPressed(int buttonId) {
-    }
-
-    /**
-     * Called when a close button is pressed.
-     *   
-     * @param item the tab whose close button was pressed
-     */
-    public void closeButtonPressed(CTabItem item) {
-    }
-
-    /**
-     * 
-     * @param event 
-     * @since 3.0
-     */
-    public void showList(CTabFolderEvent event) {
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/ViewForm.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/ViewForm.java
deleted file mode 100644
index 21920da..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/ViewForm.java
+++ /dev/null
@@ -1,696 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations.r21.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * Instances of this class implement a Composite that lays out three
- * children horizontally and allows programmatic control of layout and
- * border parameters. ViewForm is used in the workbench to implement a
- * view's label/menu/toolbar local bar.
- * <p>
- * Note that although this class is a subclass of <code>Composite</code>,
- * it does not make sense to set a layout on it.
- * </p><p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>BORDER, FLAT</dd>
- * <dt><b>Events:</b></dt>
- * <dd>(None)</dd>
- * </dl>
- * <p>
- * IMPORTANT: This class is <em>not</em> intended to be subclassed.
- * </p>
- */
-
-public class ViewForm extends Composite {
-
-    /**
-     * marginWidth specifies the number of pixels of horizontal margin
-     * that will be placed along the left and right edges of the form.
-     *
-     * The default value is 0.
-     */
-    public int marginWidth = 0;
-
-    /**
-     * marginHeight specifies the number of pixels of vertical margin
-     * that will be placed along the top and bottom edges of the form.
-     *
-     * The default value is 0.
-     */
-    public int marginHeight = 0;
-
-    /**
-     * Color of innermost line of drop shadow border.
-     */
-    public static RGB borderInsideRGB = new RGB(132, 130, 132);
-
-    /**
-     * Color of middle line of drop shadow border.
-     */
-    public static RGB borderMiddleRGB = new RGB(143, 141, 138);
-
-    /**
-     * Color of outermost line of drop shadow border.
-     */
-    public static RGB borderOutsideRGB = new RGB(171, 168, 165);
-
-    // SWT widgets
-    private Control topLeft;
-
-    private Control topCenter;
-
-    private Control topRight;
-
-    private Control content;
-
-    // Configuration and state info
-    private boolean separateTopCenter = false;
-
-    private int drawLine1 = -1;
-
-    private int drawLine2 = -1;
-
-    private boolean showBorder = false;
-
-    private int BORDER_TOP = 0;
-
-    private int BORDER_BOTTOM = 0;
-
-    private int BORDER_LEFT = 0;
-
-    private int BORDER_RIGHT = 0;
-
-    private Color borderColor1;
-
-    private Color borderColor2;
-
-    private Color borderColor3;
-
-    private Rectangle oldArea;
-
-    private static final int OFFSCREEN = -200;
-
-    /**
-     * Constructs a new instance of this class given its parent
-     * and a style value describing its behavior and appearance.
-     * <p>
-     * The style value is either one of the style constants defined in
-     * class <code>SWT</code> which is applicable to instances of this
-     * class, or must be built by <em>bitwise OR</em>'ing together 
-     * (that is, using the <code>int</code> "|" operator) two or more
-     * of those <code>SWT</code> style constants. The class description
-     * lists the style constants that are applicable to the class.
-     * Style bits are also inherited from superclasses.
-     * </p>
-     *
-     * @param parent a widget which will be the parent of the new instance (cannot be null)
-     * @param style the style of widget to construct
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-     * </ul>
-     *
-     * @see SWT#BORDER
-     * @see SWT#FLAT
-     * @see #getStyle()
-     */
-    public ViewForm(Composite parent, int style) {
-        super(parent, checkStyle(style));
-
-        borderColor1 = new Color(getDisplay(), borderInsideRGB);
-        borderColor2 = new Color(getDisplay(), borderMiddleRGB);
-        borderColor3 = new Color(getDisplay(), borderOutsideRGB);
-        setBorderVisible((style & SWT.BORDER) != 0);
-
-        addPaintListener(new PaintListener() {
-            public void paintControl(PaintEvent event) {
-                onPaint(event.gc);
-            }
-        });
-        addControlListener(new ControlAdapter() {
-            public void controlResized(ControlEvent e) {
-                onResize();
-            }
-        });
-
-        addListener(SWT.Dispose, new Listener() {
-            public void handleEvent(Event e) {
-                onDispose();
-            }
-        });
-    }
-
-    /**
-     * Check the style bits to ensure that no invalid styles are applied.
-     * @private
-     */
-    private static int checkStyle(int style) {
-        int mask = SWT.FLAT | SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT;
-        return style & mask | SWT.NO_REDRAW_RESIZE;
-    }
-
-    public Point computeSize(int wHint, int hHint, boolean changed) {
-        checkWidget();
-        // size of title bar area
-        Point leftSize = new Point(0, 0);
-        if (topLeft != null) {
-            leftSize = topLeft.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-            leftSize.x += 1; // +1 for highlight line
-        }
-        Point centerSize = new Point(0, 0);
-        if (topCenter != null) {
-            centerSize = topCenter.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-        Point rightSize = new Point(0, 0);
-        if (topRight != null) {
-            rightSize = topRight.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-        Point size = new Point(0, 0);
-        // calculate width of title bar
-        if (separateTopCenter
-                || (wHint != SWT.DEFAULT && leftSize.x + centerSize.x
-                        + rightSize.x > wHint)) {
-            size.x = leftSize.x + rightSize.x;
-            size.x = Math.max(centerSize.x, size.x);
-            size.y = Math.max(leftSize.y, rightSize.y) + 1; // +1 for highlight line
-            if (topCenter != null) {
-                size.y += centerSize.y;
-            }
-        } else {
-            size.x = leftSize.x + centerSize.x + rightSize.x;
-            size.y = Math.max(leftSize.y, Math.max(centerSize.y, rightSize.y)) + 1; // +1 for highlight line
-        }
-
-        if (content != null) {
-            Point contentSize = new Point(0, 0);
-            contentSize = content.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-            size.x = Math.max(size.x, contentSize.x);
-            size.y += contentSize.y + 1; // +1 for line bewteen content and header
-        }
-
-        size.x += 2 * marginWidth;
-        size.y += 2 * marginHeight;
-
-        if (wHint != SWT.DEFAULT) {
-			size.x = wHint;
-		}
-        if (hHint != SWT.DEFAULT) {
-			size.y = hHint;
-		}
-
-        Rectangle trim = computeTrim(0, 0, size.x, size.y);
-        return new Point(trim.width, trim.height);
-    }
-
-    public Rectangle computeTrim(int x, int y, int width, int height) {
-        checkWidget();
-        int trimX = x - BORDER_LEFT;
-        int trimY = y - BORDER_TOP;
-        int trimWidth = width + BORDER_LEFT + BORDER_RIGHT;
-        int trimHeight = height + BORDER_TOP + BORDER_BOTTOM;
-        return new Rectangle(trimX, trimY, trimWidth, trimHeight);
-    }
-
-    public Rectangle getClientArea() {
-        checkWidget();
-        Rectangle clientArea = super.getClientArea();
-        clientArea.x += BORDER_LEFT;
-        clientArea.y += BORDER_TOP;
-        clientArea.width -= BORDER_LEFT + BORDER_RIGHT;
-        clientArea.height -= BORDER_TOP + BORDER_BOTTOM;
-        return clientArea;
-    }
-
-    /**
-     * Returns the content area.
-     * 
-     * @return the control in the content area of the pane or null
-     */
-    public Control getContent() {
-        //checkWidget();
-        return content;
-    }
-
-    /**
-     * Returns Control that appears in the top center of the pane.
-     * Typically this is a toolbar.
-     * 
-     * @return the control in the top center of the pane or null
-     */
-    public Control getTopCenter() {
-        //checkWidget();
-        return topCenter;
-    }
-
-    /**
-     * Returns the Control that appears in the top left corner of the pane.
-     * Typically this is a label such as CLabel.
-     * 
-     * @return the control in the top left corner of the pane or null
-     */
-    public Control getTopLeft() {
-        //checkWidget();
-        return topLeft;
-    }
-
-    /**
-     * Returns the control in the top right corner of the pane.
-     * Typically this is a Close button or a composite with a Menu and Close button.
-     * 
-     * @return the control in the top right corner of the pane or null
-     */
-    public Control getTopRight() {
-        //checkWidget();
-        return topRight;
-    }
-
-    public void layout(boolean changed) {
-        checkWidget();
-        Rectangle rect = getClientArea();
-
-        drawLine1 = -1;
-        drawLine2 = -1;
-
-        Point leftSize = new Point(0, 0);
-        if (topLeft != null && !topLeft.isDisposed()) {
-            leftSize = topLeft.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-        Point centerSize = new Point(0, 0);
-        if (topCenter != null && !topCenter.isDisposed()) {
-            centerSize = topCenter.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-        Point rightSize = new Point(0, 0);
-        if (topRight != null && !topRight.isDisposed()) {
-            rightSize = topRight.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-
-        int minTopWidth = leftSize.x + centerSize.x + rightSize.x + 2
-                * marginWidth + 1; // +1 for highlight line	
-        int height = rect.y + marginHeight;
-
-        boolean top = false;
-        if (separateTopCenter || minTopWidth > rect.width) {
-            int topHeight = Math.max(rightSize.y, leftSize.y);
-            if (topRight != null && !topRight.isDisposed()) {
-                top = true;
-                topRight.setBounds(rect.x + rect.width - marginWidth
-                        - rightSize.x, rect.y + 1 + marginHeight, rightSize.x,
-                        topHeight);
-                height += 1 + topHeight; // +1 for highlight line
-            }
-            if (topLeft != null && !topLeft.isDisposed()) {
-                top = true;
-                leftSize = topLeft.computeSize(rect.width - 2 * marginWidth
-                        - rightSize.x - 1, SWT.DEFAULT);
-                topLeft.setBounds(rect.x + 1 + marginWidth, rect.y + 1
-                        + marginHeight, leftSize.x, topHeight);
-                height = Math
-                        .max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line
-            }
-            if (topCenter != null && !topCenter.isDisposed()) {
-                top = true;
-                if (height > rect.y + marginHeight) {
-                    drawLine1 = height;
-                    height += 1; // +1 for divider line
-                }
-                centerSize = topCenter.computeSize(
-                        rect.width - 2 * marginWidth, SWT.DEFAULT);
-                topCenter.setBounds(rect.x + rect.width - marginWidth
-                        - centerSize.x, height, centerSize.x, centerSize.y);
-                height += centerSize.y;
-
-            }
-        } else {
-            int topHeight = Math.max(rightSize.y, Math.max(centerSize.y,
-                    leftSize.y));
-            if (topRight != null && !topRight.isDisposed()) {
-                top = true;
-                topRight.setBounds(rect.x + rect.width - marginWidth
-                        - rightSize.x, rect.y + marginHeight + 1, // +1 for highlight line
-                        rightSize.x, topHeight);
-                height += 1 + topHeight; // +1 for highlight line
-            }
-            if (topCenter != null && !topCenter.isDisposed()) {
-                top = true;
-                topCenter.setBounds(rect.x + rect.width - marginWidth
-                        - rightSize.x - centerSize.x,
-                        rect.y + marginHeight + 1, // +1 for highlight line
-                        centerSize.x, topHeight);
-                height = Math
-                        .max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line                    
-            }
-            if (topLeft != null && !topLeft.isDisposed()) {
-                top = true;
-                leftSize = topLeft.computeSize(rect.width - 2 * marginWidth
-                        - rightSize.x - centerSize.x - 1, topHeight);
-                topLeft.setBounds(rect.x + marginWidth + 1, // +1 for highlight line
-                        rect.y + marginHeight + 1, // +1 for highlight line
-                        leftSize.x, topHeight);
-                height = Math
-                        .max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line
-            }
-        }
-
-        if (content != null && !content.isDisposed()) {
-            if (top) {
-                drawLine2 = height;
-                height += 1; // +1 for divider line
-            }
-            content
-                    .setBounds(rect.x + marginWidth, height, rect.width - 2
-                            * marginWidth, rect.y + rect.height - height
-                            - marginHeight);
-        }
-    }
-
-    private void onDispose() {
-        if (borderColor1 != null) {
-            borderColor1.dispose();
-        }
-        borderColor1 = null;
-
-        if (borderColor2 != null) {
-            borderColor2.dispose();
-        }
-        borderColor2 = null;
-
-        if (borderColor3 != null) {
-            borderColor3.dispose();
-        }
-        borderColor3 = null;
-
-        topLeft = null;
-        topCenter = null;
-        topRight = null;
-        content = null;
-        oldArea = null;
-    }
-
-    /**
-     * Draws the focus border.
-     */
-    private void onPaint(GC gc) {
-        Rectangle d = super.getClientArea();
-
-        if (showBorder) {
-            if ((getStyle() & SWT.FLAT) != 0) {
-                gc.setForeground(borderColor1);
-                gc.drawRectangle(d.x, d.y, d.x + d.width - 1, d.y + d.height
-                        - 1);
-            } else {
-                gc.setForeground(borderColor1);
-                gc.drawRectangle(d.x, d.y, d.x + d.width - 3, d.y + d.height
-                        - 3);
-
-                gc.setForeground(borderColor2);
-                gc.drawLine(d.x + 1, d.y + d.height - 2, d.x + d.width - 1, d.y
-                        + d.height - 2);
-                gc.drawLine(d.x + d.width - 2, d.y + 1, d.x + d.width - 2, d.y
-                        + d.height - 1);
-
-                gc.setForeground(borderColor3);
-                gc.drawLine(d.x + 2, d.y + d.height - 1, d.x + d.width - 2, d.y
-                        + d.height - 1);
-                gc.drawLine(d.x + d.width - 1, d.y + 2, d.x + d.width - 1, d.y
-                        + d.height - 2);
-            }
-        }
-
-        if (drawLine1 != -1) {
-            // top seperator line
-            gc.setForeground(borderColor1);
-            gc.drawLine(d.x + BORDER_LEFT, drawLine1, d.x + d.width
-                    - BORDER_RIGHT, drawLine1);
-        }
-        if (drawLine2 != -1) {
-            // content separator line
-            gc.setForeground(borderColor1);
-            gc.drawLine(d.x + BORDER_LEFT, drawLine2, d.x + d.width
-                    - BORDER_RIGHT, drawLine2);
-        }
-        // highlight on top
-        int y = drawLine1;
-        if (y == -1) {
-            y = drawLine2;
-        }
-        if (y != -1) {
-            gc.setForeground(getDisplay().getSystemColor(
-                    SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));
-            gc.drawLine(d.x + BORDER_LEFT + marginWidth, d.y + BORDER_TOP
-                    + marginHeight, d.x + BORDER_LEFT + marginWidth, y - 1);
-            gc.drawLine(d.x + BORDER_LEFT + marginWidth, d.y + BORDER_TOP
-                    + marginHeight, d.x + d.width - BORDER_RIGHT - marginWidth
-                    - 1, d.y + BORDER_TOP + marginHeight);
-        }
-
-        gc.setForeground(getForeground());
-    }
-
-    private void onResize() {
-        layout();
-
-        Rectangle area = super.getClientArea();
-        if (oldArea == null || oldArea.width == 0 || oldArea.height == 0) {
-            redraw();
-        } else {
-            int width = 0;
-            if (oldArea.width < area.width) {
-                width = area.width - oldArea.width + BORDER_RIGHT;
-            } else if (oldArea.width > area.width) {
-                width = BORDER_RIGHT;
-            }
-            redraw(area.x + area.width - width, area.y, width, area.height,
-                    false);
-
-            int height = 0;
-            if (oldArea.height < area.height) {
-                height = area.height - oldArea.height + BORDER_BOTTOM;
-            }
-            if (oldArea.height > area.height) {
-                height = BORDER_BOTTOM;
-            }
-            redraw(area.x, area.y + area.height - height, area.width, height,
-                    false);
-        }
-        oldArea = area;
-    }
-
-    /**
-     * Sets the content.
-     * Setting the content to null will remove it from 
-     * the pane - however, the creator of the content must dispose of the content.
-     * 
-     * @param content the control to be displayed in the content area or null
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setContent(Control content) {
-        checkWidget();
-        if (content != null && content.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (this.content != null && !this.content.isDisposed()) {
-            this.content.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);
-        }
-        this.content = content;
-        layout();
-    }
-
-    /**
-     * Set the widget font.
-     * This will apply the font to the topLeft, topRight and topCenter widgets.
-     */
-    public void setFont(Font f) {
-        super.setFont(f);
-        if (topLeft != null && !topLeft.isDisposed()) {
-			topLeft.setFont(f);
-		}
-        if (topCenter != null && !topCenter.isDisposed()) {
-			topCenter.setFont(f);
-		}
-        if (topRight != null && !topRight.isDisposed()) {
-			topRight.setFont(f);
-		}
-
-        layout();
-    }
-
-    /**
-     * Sets the layout which is associated with the receiver to be
-     * the argument which may be null.
-     * <p>
-     * Note : ViewForm does not use a layout class to size and position its children.
-     * </p>
-     *
-     * @param layout the receiver's new layout or null
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setLayout(Layout layout) {
-        checkWidget();
-        return;
-    }
-
-    /**
-     * Set the control that appears in the top center of the pane.
-     * Typically this is a toolbar.
-     * The topCenter is optional.  Setting the topCenter to null will remove it from 
-     * the pane - however, the creator of the topCenter must dispose of the topCenter.
-     * 
-     * @param topCenter the control to be displayed in the top center or null
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setTopCenter(Control topCenter) {
-        checkWidget();
-        if (topCenter != null && topCenter.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (this.topCenter != null && !this.topCenter.isDisposed()) {
-            this.topCenter.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);
-        }
-        this.topCenter = topCenter;
-        layout();
-    }
-
-    /**
-     * Set the control that appears in the top left corner of the pane.
-     * Typically this is a label such as CLabel.
-     * The topLeft is optional.  Setting the top left control to null will remove it from 
-     * the pane - however, the creator of the control must dispose of the control.
-     * 
-     * @param c the control to be displayed in the top left corner or null
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setTopLeft(Control c) {
-        checkWidget();
-        if (c != null && c.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (this.topLeft != null && !this.topLeft.isDisposed()) {
-            this.topLeft.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);
-        }
-        this.topLeft = c;
-        layout();
-    }
-
-    /**
-     * Set the control that appears in the top right corner of the pane.
-     * Typically this is a Close button or a composite with a Menu and Close button.
-     * The topRight is optional.  Setting the top right control to null will remove it from 
-     * the pane - however, the creator of the control must dispose of the control.
-     * 
-     * @param c the control to be displayed in the top right corner or null
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if the control is not a child of this ViewForm</li>
-     * </ul>
-     */
-    public void setTopRight(Control c) {
-        checkWidget();
-        if (c != null && c.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (this.topRight != null && !this.topRight.isDisposed()) {
-            this.topRight.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);
-        }
-        this.topRight = c;
-        layout();
-    }
-
-    /**
-     * Specify whether the border should be displayed or not.
-     * 
-     * @param show true if the border should be displayed
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setBorderVisible(boolean show) {
-        checkWidget();
-        if (showBorder == show) {
-			return;
-		}
-
-        showBorder = show;
-        if (showBorder) {
-            if ((getStyle() & SWT.FLAT) != 0) {
-                BORDER_LEFT = BORDER_TOP = BORDER_RIGHT = BORDER_BOTTOM = 1;
-            } else {
-                BORDER_LEFT = BORDER_TOP = 1;
-                BORDER_RIGHT = BORDER_BOTTOM = 3;
-            }
-        } else {
-            BORDER_BOTTOM = BORDER_TOP = BORDER_LEFT = BORDER_RIGHT = 0;
-        }
-
-        layout();
-        redraw();
-    }
-
-    /**
-     * If true, the topCenter will always appear on a separate line by itself, otherwise the 
-     * topCenter will appear in the top row if there is room and will be moved to the second row if
-     * required.
-     * 
-     * @param show true if the topCenter will always appear on a separate line by itself
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setTopCenterSeparate(boolean show) {
-        checkWidget();
-        separateTopCenter = show;
-        layout();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/.classpath b/bundles/org.eclipse.ui.tutorials.rcp.part1/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/.cvsignore b/bundles/org.eclipse.ui.tutorials.rcp.part1/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/.project b/bundles/org.eclipse.ui.tutorials.rcp.part1/.project
deleted file mode 100644
index e6589e0..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tutorials.rcp.part1</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.tutorials.rcp.part1/META-INF/MANIFEST.MF
deleted file mode 100644
index 200e474..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Part1 Plug-in
-Bundle-SymbolicName: org.eclipse.ui.tutorials.rcp.part1; singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.ui.tutorials.rcp.part1.Part1Plugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/build.properties b/bundles/org.eclipse.ui.tutorials.rcp.part1/build.properties
deleted file mode 100644
index 2b0d95b..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/part1.product b/bundles/org.eclipse.ui.tutorials.rcp.part1/part1.product
deleted file mode 100644
index e8c972a..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/part1.product
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="RCP Tutorial 1" id="org.eclipse.ui.tutorials.rcp.part1.product" application="org.eclipse.ui.tutorials.rcp.part1.application" useFeatures="false">
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-   </launcherArgs>
-
-   <plugins>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.tutorials.rcp.part1"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/plugin.xml b/bundles/org.eclipse.ui.tutorials.rcp.part1/plugin.xml
deleted file mode 100644
index df1d470..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.tutorials.rcp.part1.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Part1 Perspective"
-            class="org.eclipse.ui.tutorials.rcp.part1.Perspective"
-            id="org.eclipse.ui.tutorials.rcp.part1.perspective">
-      </perspective>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.ui.tutorials.rcp.part1.application"
-            name="RCP Tutorial 1"/>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Application.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Application.java
deleted file mode 100644
index 4b7822e..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Application.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IPlatformRunnable {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
-	 */
-	public Object run(Object args) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IPlatformRunnable.EXIT_RESTART;
-			}
-			return IPlatformRunnable.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationActionBarAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 5da3f82..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-
-    protected void makeActions(IWorkbenchWindow window) {
-    }
-
-    protected void fillMenuBar(IMenuManager menuBar) {
-    }
-    
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index 58cd3e5..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String PERSPECTIVE_ID = "org.eclipse.ui.tutorials.rcp.part1.perspective";
-
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index e6d5b32..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(400, 300));
-        configurer.setShowCoolBar(false);
-        configurer.setShowStatusLine(false);
-        configurer.setTitle("Hello RCP");
-    }
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Part1Plugin.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Part1Plugin.java
deleted file mode 100644
index b2ed123..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Part1Plugin.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class Part1Plugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static Part1Plugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public Part1Plugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static Part1Plugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tutorials.rcp.part1", path);
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Perspective.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Perspective.java
deleted file mode 100644
index 0680b93..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Perspective.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/.classpath b/bundles/org.eclipse.ui.tutorials.rcp.part2/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/.cvsignore b/bundles/org.eclipse.ui.tutorials.rcp.part2/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/.project b/bundles/org.eclipse.ui.tutorials.rcp.part2/.project
deleted file mode 100644
index 240ce3a..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tutorials.rcp.part2</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.tutorials.rcp.part2/META-INF/MANIFEST.MF
deleted file mode 100644
index 54860e8..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Part2 Plug-in
-Bundle-SymbolicName: org.eclipse.ui.tutorials.rcp.part2; singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.ui.tutorials.rcp.part2.Part2Plugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/build.properties b/bundles/org.eclipse.ui.tutorials.rcp.part2/build.properties
deleted file mode 100644
index 2b0d95b..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/part2.product b/bundles/org.eclipse.ui.tutorials.rcp.part2/part2.product
deleted file mode 100644
index 8aa4fef..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/part2.product
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="RCP Tutorial 2" id="org.eclipse.ui.tutorials.rcp.part2.product" application="org.eclipse.ui.tutorials.rcp.part2.application" useFeatures="false">
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-   </launcherArgs>
-
-   <plugins>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.tutorials.rcp.part2"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/plugin.xml b/bundles/org.eclipse.ui.tutorials.rcp.part2/plugin.xml
deleted file mode 100644
index ea7415b..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.tutorials.rcp.part2.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Part2 Perspective"
-            class="org.eclipse.ui.tutorials.rcp.part2.Perspective"
-            id="org.eclipse.ui.tutorials.rcp.part2.perspective">
-      </perspective>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.ui.tutorials.rcp.part2.application"
-            name="RCP Tutorial 2"/>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Application.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Application.java
deleted file mode 100644
index 6292541..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Application.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IPlatformRunnable {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
-	 */
-	public Object run(Object args) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IPlatformRunnable.EXIT_RESTART;
-			}
-			return IPlatformRunnable.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationActionBarAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 351bc6d..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-
-    protected void makeActions(IWorkbenchWindow window) {
-    }
-
-    protected void fillMenuBar(IMenuManager menuBar) {
-    }
-    
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index a76ee8b..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String PERSPECTIVE_ID = "org.eclipse.ui.tutorials.rcp.part2.perspective";
-
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 2d9d918..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(400, 300));
-        configurer.setShowCoolBar(false);
-        configurer.setShowStatusLine(false);
-        configurer.setTitle("Hello RCP");
-    }
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Part2Plugin.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Part2Plugin.java
deleted file mode 100644
index aac1f4e..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Part2Plugin.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class Part2Plugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static Part2Plugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public Part2Plugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static Part2Plugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tutorials.rcp.part2", path);
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Perspective.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Perspective.java
deleted file mode 100644
index 913f0a4..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Perspective.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/.classpath b/bundles/org.eclipse.ui.tutorials.rcp.part3/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/.cvsignore b/bundles/org.eclipse.ui.tutorials.rcp.part3/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/.project b/bundles/org.eclipse.ui.tutorials.rcp.part3/.project
deleted file mode 100644
index 0f0612a..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tutorials.rcp.part3</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.tutorials.rcp.part3/META-INF/MANIFEST.MF
deleted file mode 100644
index 42daae3..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Part3 Plug-in
-Bundle-SymbolicName: org.eclipse.ui.tutorials.rcp.part3; singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.ui.tutorials.rcp.part3.Part3Plugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/build.properties b/bundles/org.eclipse.ui.tutorials.rcp.part3/build.properties
deleted file mode 100644
index 7493b25..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               plugin.properties,\
-               product_lg.gif,\
-               splash.bmp
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.gif b/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.icns b/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.icns
deleted file mode 100644
index 1e92ccc..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.icns
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample2.gif b/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample3.gif b/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample3.gif
deleted file mode 100644
index b949ac9..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/part3.product b/bundles/org.eclipse.ui.tutorials.rcp.part3/part3.product
deleted file mode 100644
index 0fcf82e..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/part3.product
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="RCP Tutorial 3" id="org.eclipse.ui.tutorials.rcp.part3.product" application="org.eclipse.ui.tutorials.rcp.part3.application" useFeatures="false">
-
-   <aboutInfo>
-      <image path="/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif"/>
-      <text>
-         RCP Tutorial 3
-Version 1.0.0
-by Ed Burnette
-
-For more information on Eclipse and the
-Rich Client Platform visit:
-http://www.eclipse.org
-
-Copyrights and other legal stuff goes here.
-      </text>
-   </aboutInfo>
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-   </launcherArgs>
-
-   <windowImages/>
-
-
-   <launcher>
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <plugins>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.tutorials.rcp.part3"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.properties b/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.properties
deleted file mode 100644
index 77a85f2..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-aboutText=This RCP Application was generated from\n\
-the PDE Plug-in Project wizard.\n\n\
-This sample shows how to:\n\
-- add a top-level menu and toolbar with actions\n\
-- add keybindings to actions\n\
-- create views that can't be closed and\n\
-  multiple instances of the same view\n\
-- perspectives with placeholders for new views\n\
-- use the default about dialog\n\
-- create a product definition\n
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.xml b/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.xml
deleted file mode 100644
index da19e7c..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.tutorials.rcp.part3.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Part3 Perspective"
-            class="org.eclipse.ui.tutorials.rcp.part3.Perspective"
-            id="org.eclipse.ui.tutorials.rcp.part3.perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="Message"
-            allowMultiple="true"
-            icon="icons/sample2.gif"
-            class="org.eclipse.ui.tutorials.rcp.part3.View"
-            id="org.eclipse.ui.tutorials.rcp.part3.view">
-      </view>
-      <view
-            name="Mailboxes"
-            allowMultiple="true"
-            icon="icons/sample3.gif"
-            class="org.eclipse.ui.tutorials.rcp.part3.NavigationView"
-            id="org.eclipse.ui.tutorials.rcp.part3.navigationView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Mail"
-            id="org.eclipse.ui.tutorials.rcp.part3.category">
-      </category>
-      <command
-            name="Open Mailbox"
-            description="Opens a mailbox"
-            categoryId="org.eclipse.ui.tutorials.rcp.part3.category"
-            id="org.eclipse.ui.tutorials.rcp.part3.open">
-      </command>
-      <command
-            name="Open Message Dialog"
-            description="Open a message dialog"
-            categoryId="org.eclipse.ui.tutorials.rcp.part3.category"
-            id="org.eclipse.ui.tutorials.rcp.part3.openMessage">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.ui.tutorials.rcp.part3.open"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+2">
-      </key>
-      <key
-            commandId="org.eclipse.ui.tutorials.rcp.part3.openMessage"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+3">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+X">
-      </key>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.ui.tutorials.rcp.part3.application"
-            name="RCP Tutorial 3">
-         <property
-               name="aboutImage"
-               value="product_lg.gif"/>
-         <property
-               name="aboutText"
-               value="RCP Tutorial 3&#x0A;Version 1.0.0&#x0A;by Ed Burnette&#x0A;&#x0A;For more information on Eclipse and the&#x0A;Rich Client Platform visit:&#x0A;http://www.eclipse.org&#x0A;&#x0A;Copyrights and other legal stuff goes here."/>
-      </product>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif b/bundles/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/splash.bmp b/bundles/org.eclipse.ui.tutorials.rcp.part3/splash.bmp
deleted file mode 100644
index 99ea60d..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Application.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Application.java
deleted file mode 100644
index 2e1c6eb..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Application.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IPlatformRunnable {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
-	 */
-	public Object run(Object args) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IPlatformRunnable.EXIT_RESTART;
-			}
-			return IPlatformRunnable.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationActionBarAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationActionBarAdvisor.java
deleted file mode 100644
index e500bf1..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * An action bar advisor is responsible for creating, adding, and disposing of the
- * actions added to a workbench window. Each window will be populated with
- * new actions.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    // Actions - important to allocate these only in makeActions, and then use them
-    // in the fill methods.  This ensures that the actions aren't recreated
-    // when fillActionBars is called with FILL_PROXY.
-    private IWorkbenchAction exitAction;
-    private IWorkbenchAction aboutAction;
-    private IWorkbenchAction newWindowAction;
-    private OpenViewAction openViewAction;
-    private Action messagePopupAction;
-    
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-    
-    protected void makeActions(final IWorkbenchWindow window) {
-        // Creates the actions and registers them.
-        // Registering is needed to ensure that key bindings work.
-        // The corresponding commands keybindings are defined in the plugin.xml file.
-        // Registering also provides automatic disposal of the actions when
-        // the window is closed.
-
-        exitAction = ActionFactory.QUIT.create(window);
-        register(exitAction);
-        
-        aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-        
-        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        register(newWindowAction);
-        
-        openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
-        register(openViewAction);
-        
-        messagePopupAction = new MessagePopupAction("Open Message", window);
-        register(messagePopupAction);
-    }
-    
-    protected void fillMenuBar(IMenuManager menuBar) {
-        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
-        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
-        
-        menuBar.add(fileMenu);
-        // Add a group marker indicating where action set menus will appear.
-        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuBar.add(helpMenu);
-        
-        // File
-        fileMenu.add(newWindowAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(messagePopupAction);
-        fileMenu.add(openViewAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(exitAction);
-        
-        // Help
-        helpMenu.add(aboutAction);
-    }
-    
-    protected void fillCoolBar(ICoolBarManager coolBar) {
-        IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-        coolBar.add(new ToolBarContributionItem(toolbar, "main"));   
-        toolbar.add(openViewAction);
-        toolbar.add(messagePopupAction);
-    }
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index fb51c0f..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * This workbench advisor creates the window advisor, and specifies
- * the perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-	
-	private static final String PERSPECTIVE_ID = "org.eclipse.ui.tutorials.rcp.part3.perspective";
-
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	} 
-	
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 432df34..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(600, 400));
-        configurer.setShowCoolBar(true);
-        configurer.setShowStatusLine(false);
-    }
-    
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ICommandIds.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ICommandIds.java
deleted file mode 100644
index 8e7ea30..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ICommandIds.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-/**
- * Interface defining the application's command IDs.
- * Key bindings can be defined for specific commands.
- * To associate an action with a command, use IAction.setActionDefinitionId(commandId).
- *
- * @see org.eclipse.jface.action.IAction#setActionDefinitionId(String)
- */
-public interface ICommandIds {
-
-    public static final String CMD_OPEN = "org.eclipse.ui.tutorials.rcp.part3.open";
-    public static final String CMD_OPEN_MESSAGE = "org.eclipse.ui.tutorials.rcp.part3.openMessage";
-    
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/MessagePopupAction.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/MessagePopupAction.java
deleted file mode 100644
index 7d011ae..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/MessagePopupAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-
-
-public class MessagePopupAction extends Action {
-
-    private final IWorkbenchWindow window;
-
-    MessagePopupAction(String text, IWorkbenchWindow window) {
-        super(text);
-        this.window = window;
-        // The id is used to refer to the action in a menu or toolbar
-        setId(ICommandIds.CMD_OPEN_MESSAGE);
-        // Associate the action with a pre-defined command, to allow key bindings.
-        setActionDefinitionId(ICommandIds.CMD_OPEN_MESSAGE);
-        setImageDescriptor(org.eclipse.ui.tutorials.rcp.part3.Part3Plugin.getImageDescriptor("/icons/sample3.gif"));
-    }
-
-    public void run() {
-        MessageDialog.openInformation(window.getShell(), "Open", "Open Message Dialog!");
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/NavigationView.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/NavigationView.java
deleted file mode 100644
index 1e72e1f..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/NavigationView.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-public class NavigationView extends ViewPart {
-	public static final String ID = "org.eclipse.ui.tutorials.rcp.part3.navigationView";
-	private TreeViewer viewer;
-	 
-	class TreeObject {
-		private String name;
-		private TreeParent parent;
-		
-		public TreeObject(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setParent(TreeParent parent) {
-			this.parent = parent;
-		}
-		public TreeParent getParent() {
-			return parent;
-		}
-		public String toString() {
-			return getName();
-		}
-	}
-	
-	class TreeParent extends TreeObject {
-		private ArrayList children;
-		public TreeParent(String name) {
-			super(name);
-			children = new ArrayList();
-		}
-		public void addChild(TreeObject child) {
-			children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeObject child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-		public TreeObject[] getChildren() {
-			return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
-		}
-		public boolean hasChildren() {
-			return children.size()>0;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-
-        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-        
-		public void dispose() {
-		}
-        
-		public Object[] getElements(Object parent) {
-			return getChildren(parent);
-		}
-        
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject)child).getParent();
-			}
-			return null;
-		}
-        
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof TreeParent) {
-				return ((TreeParent)parent).getChildren();
-			}
-			return new Object[0];
-		}
-
-        public boolean hasChildren(Object parent) {
-			if (parent instanceof TreeParent)
-				return ((TreeParent)parent).hasChildren();
-			return false;
-		}
-	}
-	
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof TreeParent)
-			   imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-    /**
-     * We will set up a dummy model to initialize tree heararchy. In real
-     * code, you will connect to a real model and expose its hierarchy.
-     */
-    private TreeObject createDummyModel() {
-        TreeObject to1 = new TreeObject("Inbox");
-        TreeObject to2 = new TreeObject("Drafts");
-        TreeObject to3 = new TreeObject("Sent");
-        TreeParent p1 = new TreeParent("me@this.com");
-        p1.addChild(to1);
-        p1.addChild(to2);
-        p1.addChild(to3);
-
-        TreeObject to4 = new TreeObject("Inbox");
-        TreeParent p2 = new TreeParent("other@aol.com");
-        p2.addChild(to4);
-
-        TreeParent root = new TreeParent("");
-        root.addChild(p1);
-        root.addChild(p2);
-        return root;
-    }
-
-	/**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(createDummyModel());
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/OpenViewAction.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/OpenViewAction.java
deleted file mode 100644
index 96fad50..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/OpenViewAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-public class OpenViewAction extends Action {
-	
-	private final IWorkbenchWindow window;
-	private int instanceNum = 0;
-	private final String viewId;
-	
-	public OpenViewAction(IWorkbenchWindow window, String label, String viewId) {
-		this.window = window;
-		this.viewId = viewId;
-        setText(label);
-        // The id is used to refer to the action in a menu or toolbar
-		setId(ICommandIds.CMD_OPEN);
-        // Associate the action with a pre-defined command, to allow key bindings.
-		setActionDefinitionId(ICommandIds.CMD_OPEN);
-		setImageDescriptor(org.eclipse.ui.tutorials.rcp.part3.Part3Plugin.getImageDescriptor("/icons/sample2.gif"));
-	}
-	
-	public void run() {
-		if(window != null) {	
-			try {
-				window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
-			} catch (PartInitException e) {
-				MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Part3Plugin.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Part3Plugin.java
deleted file mode 100644
index c8b7d98..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Part3Plugin.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class Part3Plugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static Part3Plugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public Part3Plugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static Part3Plugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tutorials.rcp.part3", path);
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Perspective.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Perspective.java
deleted file mode 100644
index 91c7171..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Perspective.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(false);
-		
-		layout.addStandaloneView(NavigationView.ID,  false, IPageLayout.LEFT, 0.25f, editorArea);
-		IFolderLayout folder = layout.createFolder("messages", IPageLayout.TOP, 0.5f, editorArea);
-		folder.addPlaceholder(View.ID + ":*");
-		folder.addView(View.ID);
-		
-		layout.getViewLayout(NavigationView.ID).setCloseable(false);
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/View.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/View.java
deleted file mode 100644
index 36fc658..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/View.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.ViewPart;
-
-public class View extends ViewPart {
-
-	public static final String ID = "org.eclipse.ui.tutorials.rcp.part3.view";
-	
-	public void createPartControl(Composite parent) {
-		Composite top = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		top.setLayout(layout);
-		// top banner
-		Composite banner = new Composite(top, SWT.NONE);
-		banner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL, GridData.VERTICAL_ALIGN_BEGINNING, true, false));
-		layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 10;
-		layout.numColumns = 2;
-		banner.setLayout(layout);
-		
-		// setup bold font
-		Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);    
-		
-		Label l = new Label(banner, SWT.WRAP);
-		l.setText("Subject:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("This is a message about the cool Eclipse RCP!");
-		
-		l = new Label(banner, SWT.WRAP);
-		l.setText("From:");
-		l.setFont(boldFont);
-    
-		final Link link = new Link(banner, SWT.NONE);
-		link.setText("<a>nicole@mail.org</a>");
-		link.addSelectionListener(new SelectionAdapter() {    
-			public void widgetSelected(SelectionEvent e) {
-				MessageDialog.openInformation(getSite().getShell(), "Not Implemented", "Imagine the address book or a new message being created now.");
-			}    
-		});
-    
-		l = new Label(banner, SWT.WRAP);
-		l.setText("Date:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("10:34 am");
-		// message contents
-		Text text = new Text(top, SWT.MULTI | SWT.WRAP);
-		text.setText("This RCP Application was generated from the PDE Plug-in Project wizard. This sample shows how to:\n"+
-						"- add a top-level menu and toolbar with actions\n"+
-						"- add keybindings to actions\n" +
-						"- create views that can't be closed and\n"+
-						"  multiple instances of the same view\n"+
-						"- perspectives with placeholders for new views\n"+
-						"- use the default about dialog\n"+
-						"- create a product definition\n");
-		text.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-
-	public void setFocus() {
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.classpath b/bundles/org.eclipse.ui.views.properties.tabbed/.classpath
deleted file mode 100644
index ce0c7a5..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.cvsignore b/bundles/org.eclipse.ui.views.properties.tabbed/.cvsignore
deleted file mode 100644
index f0a691e..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-doc
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.project b/bundles/org.eclipse.ui.views.properties.tabbed/.project
deleted file mode 100644
index a1d39d5..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.views.properties.tabbed</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/.api_filters b/bundles/org.eclipse.ui.views.properties.tabbed/.settings/.api_filters
deleted file mode 100644
index b591f7b..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/.api_filters
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component id="org.eclipse.ui.views.properties.tabbed" version="2">
-    <resource path="src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java" type="org.eclipse.ui.views.properties.tabbed.ITabSelectionListener">
-        <filter id="403804204">
-            <message_arguments>
-                <message_argument value="org.eclipse.ui.views.properties.tabbed.ITabSelectionListener"/>
-                <message_argument value="tabSelected(ITabDescriptor)"/>
-            </message_arguments>
-        </filter>
-        <filter id="405901410">
-            <message_arguments>
-                <message_argument value="org.eclipse.ui.views.properties.tabbed.ITabSelectionListener"/>
-                <message_argument value="tabSelected(TabDescriptor)"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java" type="org.eclipse.ui.views.properties.tabbed.ISectionDescriptor">
-        <filter id="403767336">
-            <message_arguments>
-                <message_argument value="org.eclipse.ui.views.properties.tabbed.ISectionDescriptor"/>
-                <message_argument value="TOP"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java" type="org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage">
-        <filter id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage"/>
-                <message_argument value="getCurrentTab()"/>
-            </message_arguments>
-        </filter>
-        <filter id="338792546">
-            <message_arguments>
-                <message_argument value="org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage"/>
-                <message_argument value="updateTabs(TabDescriptor[])"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9a50745..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Tue Sep 11 09:39:14 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d18f4fb..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.4\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="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 4fa4010..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.4.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.3.0,4.0.0)";visibility:=reexport,
- org.eclipse.ui.views;bundle-version="[3.2.0,4.0.0)";visibility:=reexport,
- org.eclipse.ui;bundle-version="[3.3.0,4.0.0)";visibility:=reexport,
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)"
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/about.html b/bundles/org.eclipse.ui.views.properties.tabbed/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/build.properties b/bundles/org.eclipse.ui.views.properties.tabbed/build.properties
deleted file mode 100644
index a4efc20..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               plugin.properties,\
-               .,\
-               META-INF/,\
-               about.html
-src.includes = about.html,\
-               schema/
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/plugin.properties b/bundles/org.eclipse.ui.views.properties.tabbed/plugin.properties
deleted file mode 100644
index be38cad..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Tabbed Properties View
-Plugin.providerName = Eclipse.org
-
-ExtPoint.propertyContributor = Property Contributor
-ExtPoint.propertyTabs = Property Tabs
-ExtPoint.propertySections = Property Sections
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/plugin.xml b/bundles/org.eclipse.ui.views.properties.tabbed/plugin.xml
deleted file mode 100644
index 848ec50..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/plugin.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension-point id="propertyContributor" name="%ExtPoint.propertyContributor" schema="schema/propertyContributor.exsd"/>
-   <extension-point id="propertyTabs" name="%ExtPoint.propertyTabs" schema="schema/propertyTabs.exsd"/>
-   <extension-point id="propertySections" name="%ExtPoint.propertySections" schema="schema/propertySections.exsd"/>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd b/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd
deleted file mode 100644
index 21166c6..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.views.properties.tabbed">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.views.properties.tabbed" id="propertyContributor" name="Property Contributor"/>
-      </appInfo>
-      <documentation>
-         Describes a workbench part that is a contributor of properties to be displayed within tabs in the tabbed property sheet page.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="propertyContributor"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertyContributor">
-      <complexType>
-         <sequence>
-            <element ref="propertyCategory" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="contributorId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique identifier of the property sheet page contributor.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="typeMapper" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the type mapper, i.e. implements &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.ITypeMapper&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.ITypeMapper"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="labelProvider" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the label provider for the title for the property sheet page, i.e. implements &lt;tt&gt;org.eclipse.jface.viewers.ILabelProvider&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ILabelProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="actionProvider" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the action provider for the property sheet page, i.e. implements &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.IActionProvider&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.IActionProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="sectionDescriptorProvider" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the section descriptor provider for the property sheet page, i.e. implements &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="tabDescriptorProvider" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the tab descriptor provider for the property sheet page, i.e. implements &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="overridableTabListContentProvider" type="boolean">
-            <annotation>
-               <documentation>
-                  If true then this contributor will override the list of tabs by using sections that extend &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.AbstractOverridableTabListPropertySection&lt;/tt&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertyCategory">
-      <complexType>
-         <attribute name="category" type="string">
-            <annotation>
-               <documentation>
-                  A category used to group tabs.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.views.properties.tabbed.propertyContributor&quot;&gt;
-      &lt;propertyContributor
-            contributorId=&quot;org.eclipse.ui.tests.views.properties.tabbed.views.TestsView&quot;
-            labelProvider=&quot;org.eclipse.ui.tests.views.properties.tabbed.views.LabelProvider&quot;
-            typeMapper=&quot;org.eclipse.ui.tests.views.properties.tabbed.views.TypeMapper&quot;&gt;
-         &lt;propertyCategory category=&quot;first&quot;&gt;
-         &lt;/propertyCategory&gt;
-         &lt;propertyCategory category=&quot;second&quot;&gt;
-         &lt;/propertyCategory&gt;
-      &lt;/propertyContributor&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005, 2006 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertySections.exsd b/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertySections.exsd
deleted file mode 100644
index bd77cfc..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertySections.exsd
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.views.properties.tabbed">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.views.properties.tabbed" id="propertySections" name="Property Sections"/>
-      </appInfo>
-      <documentation>
-         Describes a list of sections to be displayed within tabs that will be contributed to the tabbed property sheet page.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="propertySections"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertySections">
-      <complexType>
-         <sequence>
-            <element ref="propertySection" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="contributorId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique identifier of the property sheet page contributor.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertySection">
-      <complexType>
-         <sequence>
-            <element ref="input" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="tab" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The tab in which this section appears.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id for the section.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class that implements the section, i.e. extends &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.AbstractPropertySection&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.AbstractPropertySection"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="afterSection" type="string">
-            <annotation>
-               <documentation>
-                  When there is more than one section in a tab, sections are sorted by the afterSection attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filter" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements a section filter, i.e. implements &lt;tt&gt;org.eclipse.jface.viewers.IFilter&lt;/tt&gt;.
-A filter is used to override the type mapper and input for the selection. When a filter is specified, type mapper and input are ignored.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.IFilter"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="enablesFor" type="string">
-            <annotation>
-               <documentation>
-                  a value indicating the selection count which must be met to enable the section. If specified and the condition is not met, the section is not displayed. If omitted, the section enablement is not affected. The following attribute formats are currently supported: 
-    &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
-      &lt;tr&gt;
- &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
-        &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;n&lt;/b&gt;&lt;/td&gt;
-        &lt;td valign=&quot;top&quot;&gt;- a precise number of items selected.&amp;nbsp;
-          For example: enablesFor=&amp;quot; 1&amp;quot; enables the section only when 1
-          item is selected&lt;/td&gt;
-      &lt;/tr&gt;
-    &lt;/table&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="input">
-      <complexType>
-         <attribute name="type" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The selected class or interface that will enable the display on the section in the tab.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.tests.views.properties.tabbed.propertySections&quot;&gt;
-      &lt;propertySections contributorId=&quot;org.eclipse.ui.views.properties.tabbed.views.TestsView&quot;&gt;
-         &lt;propertySection
-               class=&quot;org.eclipse.ui.tests.views.properties.tabbed.sections.NameSection&quot;
-               enablesFor=&quot;1&quot;
-               id=&quot;propertySection1&quot;
-               tab=&quot;propertyTab1&quot;&gt;
-            &lt;input type=&quot;org.eclipse.ui.tests.views.properties.tabbed.model.Element&quot;&gt;
-            &lt;/input&gt;
-         &lt;/propertySection&gt;
-      &lt;/propertySections&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005, 2006 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyTabs.exsd b/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyTabs.exsd
deleted file mode 100644
index 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 e0af002..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.l10n;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Message Bundle class for the tabbed properties view plug-in.
- * 
- * @author Anthony Hunter
- * 
- */
-public final class TabbedPropertyMessages
-	extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages";//$NON-NLS-1$
-
-	/**
-	 * Constructor for TabbedPropertyMessages.
-	 */
-	private TabbedPropertyMessages() {
-		// private constructor
-	}
-
-    /**
-     * Message when a property section extension is in error.
-     */
-	public static String SectionDescriptor_Section_error;
-
-	/**
-     * Message when a property section extension causes a class not found exception.
-     */
-	public static String SectionDescriptor_class_not_found_error;
-	
-    /**
-     * Message when a property tab extension is in error.
-     */
-	public static String TabDescriptor_Tab_error;
-
-    /**
-     * Message when a property tab extension has an unknown category.
-     */
-	public static String TabDescriptor_Tab_unknown_category;
-
-    /**
-     * Message when a non existing tab is found in a property section extension.
-     */
-	public static String TabbedPropertyRegistry_Non_existing_tab;
-
-    /**
-     * Message when a property contributor extension is in error.
-     */
-	public static String TabbedPropertyRegistry_contributor_error;
-
-    /**
-     * No properties available message.
-     */
-	public static String TabbedPropertyList_properties_not_available;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, TabbedPropertyMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties
deleted file mode 100755
index 01c6477..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-SectionDescriptor_Section_error=Section in {0} must provide an id and a tab.
-SectionDescriptor_class_not_found_error=Section {0} declares non-existing filter or section class.
-TabDescriptor_Tab_error=Tab in {0} must provide an id, label and category.
-TabDescriptor_Tab_unknown_category=Tab in {0} declares non-existing category {1}.
-TabbedPropertyRegistry_Non_existing_tab=Section {0} declares non-existing tab {1}.
-TabbedPropertyRegistry_contributor_error=Contributor {0} cannot be created.
-TabbedPropertyList_properties_not_available=Properties are not available.
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/OverridableTabListContentProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/OverridableTabListContentProvider.java
deleted file mode 100644
index 84c70eb..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/OverridableTabListContentProvider.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.IContributedContentsView;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.AbstractOverridableTabListPropertySection;
-import org.eclipse.ui.views.properties.tabbed.IOverridableTabListContentProvider;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-import org.eclipse.ui.views.properties.tabbed.ITabSelectionListener;
-import org.eclipse.ui.views.properties.tabbed.TabContents;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An extended implementation of the content provider for the tabbed property
- * sheet page's list of tabs.
- * <p>
- * This implementation allows the section to override the list of what tabs are
- * displayed, rather than using the default list of tabs from the tabbed
- * property registry.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverridableTabListContentProvider extends TabListContentProvider
-		implements IOverridableTabListContentProvider, ITabSelectionListener {
-
-	/**
-	 * Constructor for OverrideTabListContentProvider.
-	 * 
-	 * @param registry
-	 *            the tabbed property registry.
-	 */
-	public OverridableTabListContentProvider(TabbedPropertyRegistry registry) {
-		super(registry);
-	}
-
-	private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-	private TabbedPropertyViewer tabbedPropertyViewer;
-
-	/**
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		if (tabbedPropertySheetPage.getCurrentTab() == null) {
-			/*
-			 * In this case, return the default list of tabs from the registry.
-			 * The contributor will not have had a chance to load and override
-			 * the tabs.
-			 */
-			return registry.getTabDescriptors(currentPart,
-					(ISelection) inputElement);
-		}
-		return getOverrideTabs(inputElement);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.views.properties.tabbed.view.TabListContentProvider#dispose()
-	 */
-	public void dispose() {
-		stopListening();
-		this.tabbedPropertyViewer = null;
-		this.currentPart = null;
-		this.tabbedPropertySheetPage = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.views.properties.tabbed.view.TabListContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (tabbedPropertyViewer == null) {
-			Assert.isTrue(viewer instanceof TabbedPropertyViewer);
-			init((TabbedPropertyViewer) viewer);
-		}
-	}
-
-	/**
-	 * Initialize the content provider for a tabbed property viewer.
-	 * 
-	 * @param newTabbedPropertyViewer
-	 *            a tabbed property viewer.
-	 */
-	private void init(TabbedPropertyViewer newTabbedPropertyViewer) {
-		this.tabbedPropertyViewer = newTabbedPropertyViewer;
-		currentPart = tabbedPropertyViewer.getWorkbenchPart();
-		if (currentPart.getAdapter(IPropertySheetPage.class) != null) {
-			tabbedPropertySheetPage = (TabbedPropertySheetPage) currentPart
-					.getAdapter(IPropertySheetPage.class);
-		} else {
-			/*
-			 * Is the part is a IContributedContentsView for the contributor,
-			 * for example, outline view.
-			 */
-			IContributedContentsView view = (IContributedContentsView) currentPart
-					.getAdapter(IContributedContentsView.class);
-			if (view != null) {
-				IWorkbenchPart part = view.getContributingPart();
-				if (part != null) {
-					tabbedPropertySheetPage = (TabbedPropertySheetPage) part
-							.getAdapter(IPropertySheetPage.class);
-				}
-			}
-		}
-		Assert
-				.isNotNull(
-						tabbedPropertySheetPage,
-						"DynamicTabListContentProvider could not find the TabbedPropertySheetPage for the active part");//$NON-NLS-1$
-		startListening();
-	}
-
-	/**
-	 * Start listening to tab selection change events.
-	 */
-	private void startListening() {
-		tabbedPropertySheetPage.addTabSelectionListener(this);
-	}
-
-	/**
-	 * Stop listening to tab selection change events.
-	 */
-	private void stopListening() {
-		tabbedPropertySheetPage.removeTabSelectionListener(this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabSelectionListener#tabSelected(org.eclipse.ui.views.properties.tabbed.ITabDescriptor)
-	 */
-	public void tabSelected(ITabDescriptor tabDescriptor) {
-		AbstractOverridableTabListPropertySection section = getOverridableTabListPropertySection();
-		Assert.isNotNull(section);
-		int selectedIndex = tabbedPropertyViewer.getSelectionIndex();
-		section.selectTab(selectedIndex);
-	}
-
-	/**
-	 * set the selected tab from the list of tabs provided by the section.
-	 */
-	private void setSelectedTab() {
-		TabDescriptor currentSelectedTabInList = null;
-		IStructuredSelection selectionFromList = (IStructuredSelection) tabbedPropertyViewer
-				.getSelection();
-		if (!selectionFromList.equals(StructuredSelection.EMPTY)) {
-			currentSelectedTabInList = (TabDescriptor) selectionFromList
-					.getFirstElement();
-		}
-		AbstractOverridableTabListPropertySection section = getOverridableTabListPropertySection();
-		if (section == null) {
-			if (currentSelectedTabInList == null) {
-				/*
-				 * make sure there is a selected tab in the list.
-				 */
-				TabDescriptor newSelectedTab = (TabDescriptor) tabbedPropertyViewer
-						.getElementAt(0);
-				if (newSelectedTab != null) {
-					tabbedPropertyViewer.setSelection(new StructuredSelection(
-							newSelectedTab), true);
-				}
-			}
-			return;
-		}
-		ITabItem[] dynamicTabItems = section.getTabs();
-		if (dynamicTabItems == null) {
-			/*
-			 * if the section does not provide overridden tabs, return.
-			 */
-			return;
-		}
-		int selectedTabIndex = -1;
-		for (int i = 0; i < dynamicTabItems.length; i++) {
-			if (dynamicTabItems[i].isSelected()) {
-				selectedTabIndex = i;
-			}
-		}
-		if (currentSelectedTabInList == null ||
-				!currentSelectedTabInList.getText().equals(
-						dynamicTabItems[selectedTabIndex].getText())) {
-			TabDescriptor newSelectedTab = (TabDescriptor) tabbedPropertyViewer
-					.getElementAt(selectedTabIndex);
-			tabbedPropertyViewer.setSelection(new StructuredSelection(
-					newSelectedTab), true);
-		}
-	}
-
-	/**
-	 * Get the list of tabs to display in the tabbed property sheet page.
-	 * 
-	 * @param inputElement
-	 *            The current input element.
-	 * @return the list of tabs.
-	 */
-	private ITabDescriptor[] getOverrideTabs(Object inputElement) {
-		ITabDescriptor tabDescriptors[] = registry.getTabDescriptors(
-				currentPart, (ISelection) inputElement);
-		if (tabDescriptors == TabbedPropertyRegistry.EMPTY_DESCRIPTOR_ARRAY) {
-			/*
-			 * We clone the dynamic tabs from the single tab in the registry. If
-			 * the registry has no tabs for the selection, return.
-			 */
-			return tabDescriptors;
-		}
-		AbstractOverridableTabListPropertySection section = getOverridableTabListPropertySection();
-		Assert.isNotNull(section);
-		ITabItem[] tabItems = section.getTabs();
-		if (tabItems == null) {
-			/*
-			 * if the section does not provide overridden tabs, return the
-			 * default tabs from the registry.
-			 */
-			return tabDescriptors;
-		}
-		ITabDescriptor[] overrideTabDescriptors = new ITabDescriptor[tabItems.length];
-		TabDescriptor target = (TabDescriptor) tabDescriptors[0];
-		for (int i = 0; i < tabItems.length; i++) {
-			TabDescriptor cloneTabDescriptor = (TabDescriptor) target.clone();
-			cloneTabDescriptor.setLabel(tabItems[i].getText());
-			cloneTabDescriptor.setImage(tabItems[i].getImage());
-			cloneTabDescriptor.setIndented(tabItems[i].isIndented());
-			cloneTabDescriptor.setSelected(tabItems[i].isSelected());
-			overrideTabDescriptors[i] = cloneTabDescriptor;
-			// System.out.print("override " + i + " [" +  //$NON-NLS-1$//$NON-NLS-2$
-			// tabItems[i].getText() + "]");//$NON-NLS-1$
-			// if (tabItems[i].isSelected()) {
-			// System.out.print(" selected");//$NON-NLS-1$
-			// }
-			// System.out.println("");//$NON-NLS-1$
-		}
-		return overrideTabDescriptors;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.IOverridableTabListContentProvider#overrideTabs()
-	 */
-	public void overrideTabs() {
-		stopListening();
-		Object input = tabbedPropertyViewer.getInput();
-		tabbedPropertyViewer.setInput(input);
-		setSelectedTab();
-		startListening();
-	}
-
-	/**
-	 * Get the section implementation that provides the list of tabs. In our
-	 * implementation, all the sections provide the list of tabs, so we select
-	 * the first section from the tab descriptor.
-	 * 
-	 * @return the section.
-	 */
-	private AbstractOverridableTabListPropertySection getOverridableTabListPropertySection() {
-		TabContents tab = tabbedPropertySheetPage.getCurrentTab();
-		Assert.isNotNull(tab);
-		if (tab != null) {
-			ISection section = tab.getSectionAtIndex(0);
-			if (section instanceof AbstractOverridableTabListPropertySection) {
-				return (AbstractOverridableTabListPropertySection) section;
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java
deleted file mode 100755
index 5489912..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewStatusCodes;
-import org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-import com.ibm.icu.text.MessageFormat;
-
-/**
- * Represents the default implementation of a section descriptor on the tabbed
- * property sections extensions. This implementation assumes that we are
- * interested in selected objects in an IStructuredSelection.
- * 
- * @author Anthony Hunter
- */
-public class SectionDescriptor extends AbstractSectionDescriptor {
-
-	private static final String ATT_ID = "id"; //$NON-NLS-1$
-
-	private static final String ATT_TARGET_TAB = "tab"; //$NON-NLS-1$
-
-	private static final String ATT_AFTER_SECTION = "afterSection"; //$NON-NLS-1$
-
-	private static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	private static final String ATT_SECTION_FILTER = "filter"; //$NON-NLS-1$	
-
-	private static final String ATT_SECTION_ENABLES_FOR = "enablesFor"; //$NON-NLS-1$	
-
-	private static final String ATT_INPUT_TYPE = "type"; //$NON-NLS-1$
-
-	private static final String ELEMENT_INPUT = "input"; //$NON-NLS-1$
-
-	private String id;
-
-	private String targetTab;
-
-	private String afterSection;
-
-	private ArrayList inputTypes;
-
-	private IFilter filter;
-
-	private int enablesFor = ENABLES_FOR_ANY;
-
-	private IConfigurationElement configurationElement;
-
-	/**
-	 * Constructor for the section descriptor.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element for the section descriptor.
-	 * @param typeMapper
-	 *            The type mapper.
-	 */
-	protected SectionDescriptor(IConfigurationElement configurationElement,
-			ITypeMapper typeMapper) {
-		super(typeMapper);
-		this.configurationElement = configurationElement;
-
-		id = getConfigurationElement().getAttribute(ATT_ID);
-		targetTab = getConfigurationElement().getAttribute(ATT_TARGET_TAB);
-		afterSection = getConfigurationElement()
-				.getAttribute(ATT_AFTER_SECTION);
-		if (getConfigurationElement().getAttribute(ATT_SECTION_ENABLES_FOR) != null) {
-			String enablesForStr = getConfigurationElement().getAttribute(
-					ATT_SECTION_ENABLES_FOR);
-			int enablesForTest = Integer.parseInt(enablesForStr);
-			if (enablesForTest > 0) {
-				enablesFor = enablesForTest;
-			}
-		}
-
-		if (id == null || targetTab == null) {
-			// the section id and tab are mandatory - log error
-			handleSectionError(null);
-		}
-	}
-
-	/**
-	 * Handle the section error when an issue is found loading from the
-	 * configuration element.
-	 * 
-	 * @param exception
-	 *            an optional CoreException
-	 */
-	private void handleSectionError(CoreException exception) {
-		String pluginId = getConfigurationElement().getDeclaringExtension()
-				.getNamespaceIdentifier();
-		String message = TabbedPropertyMessages.SectionDescriptor_Section_error;
-		if (exception == null) {
-			message = MessageFormat.format(
-					TabbedPropertyMessages.SectionDescriptor_Section_error,
-					new Object[] { pluginId });
-		} else {
-			message = MessageFormat
-					.format(
-							TabbedPropertyMessages.SectionDescriptor_class_not_found_error,
-							new Object[] { pluginId });
-		}
-		IStatus status = new Status(IStatus.ERROR, pluginId,
-				TabbedPropertyViewStatusCodes.SECTION_ERROR, message, exception);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getId()
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getFilter()
-	 */
-	public IFilter getFilter() {
-		if (filter == null) {
-			try {
-				if (getConfigurationElement().getAttribute(ATT_SECTION_FILTER) != null) {
-					filter = (IFilter) configurationElement
-							.createExecutableExtension(ATT_SECTION_FILTER);
-				}
-			} catch (CoreException exception) {
-				handleSectionError(exception);
-			}
-		}
-		return filter;
-	}
-
-	/**
-	 * Retrieves the value for section enablement which is a precise number of
-	 * items selected. For example: enablesFor=" 4" enables the action only when
-	 * 4 items are selected. If not specified, enable for all selections.
-	 * 
-	 * @return the value for section enablement.
-	 */
-	public int getEnablesFor() {
-		return enablesFor;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getTargetTab()
-	 */
-	public String getTargetTab() {
-		return targetTab;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getAfterSection()
-	 */
-	public String getAfterSection() {
-		if (afterSection == null) {
-			return super.getAfterSection();
-		}
-		return afterSection;
-	}
-
-	/**
-	 * Creates an instance of a section described by this descriptor
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getSectionClass()
-	 */
-	public ISection getSectionClass() {
-		ISection section = null;
-		try {
-			section = (ISection) getConfigurationElement()
-					.createExecutableExtension(ATT_CLASS);
-		} catch (CoreException exception) {
-			handleSectionError(exception);
-		}
-
-		return section;
-	}
-
-	/**
-	 * Gets the input types that are valid for this section.
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getInputTypes()
-	 */
-	public List getInputTypes() {
-		if (inputTypes == null) {
-			inputTypes = new ArrayList();
-			IConfigurationElement[] elements = getConfigurationElement()
-					.getChildren(ELEMENT_INPUT);
-			for (int i = 0; i < elements.length; i++) {
-				IConfigurationElement element = elements[i];
-				inputTypes.add(element.getAttribute(ATT_INPUT_TYPE));
-			}
-		}
-
-		return inputTypes;
-	}
-
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return getId();
-	}
-
-	/**
-	 * @return Returns the configurationElement.
-	 */
-	private IConfigurationElement getConfigurationElement() {
-		return configurationElement;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java
deleted file mode 100755
index e47cd18..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewStatusCodes;
-import org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-
-import com.ibm.icu.text.MessageFormat;
-
-/**
- * Represents the default implementation of a tab descriptor on the tabbed
- * property tabs extensions.
- * 
- * @author Anthony Hunter
- */
-public class TabDescriptor extends AbstractTabDescriptor {
-
-	private static final String ATT_ID = "id"; //$NON-NLS-1$
-
-	private static final String ATT_LABEL = "label"; //$NON-NLS-1$
-
-	private static final String ATT_IMAGE = "image"; //$NON-NLS-1$
-
-	private static final String ATT_INDENTED = "indented"; //$NON-NLS-1$
-
-	private static final String ATT_CATEGORY = "category"; //$NON-NLS-1$
-
-	private static final String ATT_AFTER_TAB = "afterTab"; //$NON-NLS-1$
-
-	private final static String TAB_ERROR = TabbedPropertyMessages.TabDescriptor_Tab_error;
-
-	private String id;
-
-	private String label;
-
-	private Image image;
-
-	private boolean selected;
-
-	private boolean indented;
-
-	private String category;
-
-	private String afterTab;
-
-	/**
-	 * Constructor for TabDescriptor.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element for the tab descriptor.
-	 */
-	public TabDescriptor(IConfigurationElement configurationElement) {
-		super();
-		if (configurationElement != null) {
-			id = configurationElement.getAttribute(ATT_ID);
-			label = configurationElement.getAttribute(ATT_LABEL);
-			String imageString = configurationElement.getAttribute(ATT_IMAGE);
-			if (imageString != null) {
-				image = AbstractUIPlugin.imageDescriptorFromPlugin(
-						configurationElement.getDeclaringExtension()
-								.getNamespaceIdentifier(), imageString)
-						.createImage();
-			}
-			String indentedString = configurationElement
-					.getAttribute(ATT_INDENTED);
-			indented = indentedString != null && indentedString.equals("true"); //$NON-NLS-1$
-			category = configurationElement.getAttribute(ATT_CATEGORY);
-			afterTab = configurationElement.getAttribute(ATT_AFTER_TAB);
-			if (id == null || label == null || category == null) {
-				// the tab id, label and category are mandatory - log error
-				handleTabError(configurationElement, null);
-			}
-		}
-		selected = false;
-	}
-
-	/**
-	 * Get the unique identifier for the tab.
-	 * 
-	 * @return the unique identifier for the tab.
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Get the text label for the tab.
-	 * 
-	 * @return the text label for the tab.
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Get the identifier of the tab after which this tab should be displayed.
-	 * When two or more tabs belong to the same category, they are sorted by the
-	 * after tab values.
-	 * 
-	 * @return the identifier of the tab.
-	 */
-	public String getAfterTab() {
-		if (afterTab == null) {
-			return super.getAfterTab();
-		}
-		return afterTab;
-	}
-
-	/**
-	 * Get the category this tab belongs to.
-	 * 
-	 * @return Get the category this tab belongs to.
-	 */
-	public String getCategory() {
-		return category;
-	}
-
-	/**
-	 * Returns whether the given section was added to this tab. The section can
-	 * be appended if its tab attribute matches the tab id. The afterSection
-	 * attribute indicates the order in which the section should be appended.
-	 * 
-	 * @param target
-	 *            the section descriptor to append.
-	 */
-	protected boolean append(ISectionDescriptor target) {
-		if (!target.getTargetTab().equals(id)) {
-			return false;
-		}
-
-		if (insertSectionDescriptor(target)) {
-			return true;
-		}
-
-		getSectionDescriptors().add(target);
-		return true;
-	}
-
-	/**
-	 * Insert the section descriptor into the section descriptor list.
-	 * 
-	 * @param target
-	 *            the section descriptor to insert.
-	 * @return <code>true</code> if the target descriptor was added to the
-	 *         descriptors list.
-	 */
-	private boolean insertSectionDescriptor(ISectionDescriptor target) {
-		if (target.getAfterSection().equals(TOP)) {
-			getSectionDescriptors().add(0, target);
-			return true;
-		}
-		for (int i = 0; i < getSectionDescriptors().size(); i++) {
-			ISectionDescriptor descriptor = (ISectionDescriptor) getSectionDescriptors()
-					.get(i);
-			if (target.getAfterSection().equals(descriptor.getId())) {
-				getSectionDescriptors().add(i + 1, target);
-				return true;
-			} else if (descriptor.getAfterSection().equals(target.getId())) {
-				getSectionDescriptors().add(i, target);
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return getId();
-	}
-
-	/**
-	 * Handle the tab error when an issue is found loading from the
-	 * configuration element.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element
-	 * @param exception
-	 *            an optional CoreException
-	 */
-	private void handleTabError(IConfigurationElement configurationElement,
-			CoreException exception) {
-		String pluginId = configurationElement.getDeclaringExtension()
-				.getNamespaceIdentifier();
-		String message = MessageFormat.format(TAB_ERROR,
-				new Object[] { pluginId });
-		IStatus status = new Status(IStatus.ERROR, pluginId,
-				TabbedPropertyViewStatusCodes.TAB_ERROR, message, exception);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * Set the image for the tab.
-	 * 
-	 * @param image
-	 *            the image for the tab.
-	 */
-	protected void setImage(Image image) {
-		this.image = image;
-	}
-
-	/**
-	 * Set the indicator to determine if the tab should be displayed as
-	 * indented.
-	 * 
-	 * @param indented
-	 *            <code>true</code> if the tab should be displayed as
-	 *            indented.
-	 */
-	protected void setIndented(boolean indented) {
-		this.indented = indented;
-	}
-
-	/**
-	 * Set the indicator to determine if the tab should be the selected tab in
-	 * the list.
-	 * 
-	 * @param selected
-	 *            <code>true</code> if the tab should be the selected tab in
-	 *            the list.
-	 */
-	protected void setSelected(boolean selected) {
-		this.selected = selected;
-	}
-
-	/**
-	 * Set the text label for the tab.
-	 * 
-	 * @param label
-	 *            the text label for the tab.
-	 */
-	protected void setLabel(String label) {
-		this.label = label;
-	}
-
-	/**
-	 * Get the image for the tab.
-	 * 
-	 * @return the image for the tab.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Determine if the tab is selected.
-	 * 
-	 * @return <code>true</code> if the tab is selected.
-	 */
-	public boolean isSelected() {
-		return selected;
-	}
-
-	/**
-	 * Determine if the tab should be displayed as indented.
-	 * 
-	 * @return <code>true</code> if the tab should be displayed as indented.
-	 */
-	public boolean isIndented() {
-		return indented;
-	}
-
-	/**
-	 * Get the text label for the tab.
-	 * 
-	 * @return the text label for the tab.
-	 */
-	public String getText() {
-		return label;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabListContentProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabListContentProvider.java
deleted file mode 100755
index 14c1771..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabListContentProvider.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * The default implementation of the content provider for the 
- * tabbed property sheet page's list of tabs.
- * 
- * @author Anthony Hunter
- */
-public class TabListContentProvider
-	implements IStructuredContentProvider {
-	
-	protected TabbedPropertyRegistry registry;
-
-	protected IWorkbenchPart currentPart;
-	
-	/**
-	 * Constructor for TabListContentProvider.
-	 * @param registry the tabbed property registry.
-	 */
-	public TabListContentProvider(TabbedPropertyRegistry registry) {
-		this.registry = registry;
-	}
-	
-	/**
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		Assert.isTrue(inputElement instanceof ISelection);
-			return registry
-			.getTabDescriptors(currentPart, (ISelection) inputElement);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		/* not used */
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		this.currentPart = ((TabbedPropertyViewer)viewer).getWorkbenchPart();
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java
deleted file mode 100755
index 1fb31e7..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-
-/**
- * Composite responsible for drawing the tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyComposite
-	extends Composite {
-
-	private TabbedPropertySheetWidgetFactory factory;
-
-	private Composite mainComposite;
-
-	private Composite leftComposite;
-
-	private ScrolledComposite scrolledComposite;
-
-	private Composite tabComposite;
-
-	private TabbedPropertyTitle title;
-
-	private TabbedPropertyList listComposite;
-
-	private boolean displayTitle;
-
-	/**
-	 * Constructor for a TabbedPropertyComposite
-	 * 
-	 * @param parent
-	 *            the parent widget.
-	 * @param factory
-	 *            the widget factory.
-	 * @param displayTitle
-	 *            if <code>true</code>, then the title bar will be displayed.
-	 */
-	public TabbedPropertyComposite(Composite parent,
-			TabbedPropertySheetWidgetFactory factory, boolean displayTitle) {
-		super(parent, SWT.NO_FOCUS);
-		this.factory = factory;
-		this.displayTitle = displayTitle;
-
-		createMainComposite();
-	}
-
-	/**
-	 * Create the main composite.
-	 */
-	protected void createMainComposite() {
-		mainComposite = factory.createComposite(this, SWT.NO_FOCUS);
-		mainComposite.setLayout(new FormLayout());
-		FormData formData = new FormData();
-		formData.left = new FormAttachment(0, 0);
-		formData.right = new FormAttachment(100, 0);
-		formData.top = new FormAttachment(0, 0);
-		formData.bottom = new FormAttachment(100, 0);
-		mainComposite.setLayoutData(formData);
-
-		createMainContents();
-	}
-
-	/**
-	 * Create the contents in the main composite.
-	 */
-	protected void createMainContents() {
-        if (displayTitle) {
-            title = new TabbedPropertyTitle(mainComposite, factory);
-
-            FormData data = new FormData();
-            data.left = new FormAttachment(0, 0);
-            data.right = new FormAttachment(100, 0);
-            data.top = new FormAttachment(0, 0);
-            title.setLayoutData(data);
-        }
-
-		leftComposite = factory.createComposite(mainComposite, SWT.NO_FOCUS);
-		leftComposite.setLayout(new FormLayout());
-
-		scrolledComposite = factory.createScrolledComposite(mainComposite, SWT.H_SCROLL
-			| SWT.V_SCROLL | SWT.NO_FOCUS);
-
-		FormData formData = new FormData();
-		formData.left = new FormAttachment(leftComposite, 0);
-		formData.right = new FormAttachment(100, 0);
-        if (displayTitle) {
-            formData.top = new FormAttachment(title, 0);
-        } else {
-            formData.top = new FormAttachment(0, 0);
-        }
-		formData.bottom = new FormAttachment(100, 0);
-		scrolledComposite.setLayoutData(formData);
-
-		formData = new FormData();
-		formData.left = new FormAttachment(0, 0);
-		formData.right = new FormAttachment(scrolledComposite, 0);
-        if (displayTitle) {
-            formData.top = new FormAttachment(title, 0);
-        } else {
-            formData.top = new FormAttachment(0, 0);
-        }
-		formData.bottom = new FormAttachment(100, 0);
-		leftComposite.setLayoutData(formData);
-
-        tabComposite = factory.createComposite(scrolledComposite, SWT.NO_FOCUS);
-        tabComposite.setLayout(new FormLayout());
-
-		scrolledComposite.setContent(tabComposite);
-		scrolledComposite.setAlwaysShowScrollBars(false);
-		scrolledComposite.setExpandVertical(true);
-		scrolledComposite.setExpandHorizontal(true);
-
-		listComposite = new TabbedPropertyList(leftComposite, factory);
-		formData = new FormData();
-		formData.left = new FormAttachment(0, 0);
-		formData.right = new FormAttachment(100, 0);
-		formData.top = new FormAttachment(0, 0);
-		formData.bottom = new FormAttachment(100, 0);
-		listComposite.setLayoutData(formData);
-	}
-
-	/**
-	 * Get the tabbed property list, which is the list of tabs on the left hand
-	 * side of this composite.
-	 * 
-	 * @return the tabbed property list.
-	 */
-	public TabbedPropertyList getList() {
-		return listComposite;
-	}
-
-	/**
-	 * Get the tabbed property title bar.
-	 * 
-	 * @return the tabbed property title bar or <code>null</code> if not used.
-	 */
-	public TabbedPropertyTitle getTitle() {
-		return title;
-	}
-
-	/**
-	 * Get the tab composite where sections display their property contents.
-	 * 
-	 * @return the tab composite.
-	 */
-	public Composite getTabComposite() {
-		return tabComposite;
-	}
-
-	/**
-	 * Get the scrolled composite which surrounds the title bar and tab
-	 * composite.
-	 * 
-	 * @return the scrolled composite.
-	 */
-	public ScrolledComposite getScrolledComposite() {
-		return scrolledComposite;
-	}
-
-	/**
-	 * Get the widget factory.
-	 * 
-	 * @return the widget factory.
-	 */
-	protected TabbedPropertySheetWidgetFactory getFactory() {
-		return factory;
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Widget#dispose()
-	 */
-	public void dispose() {
-		listComposite.dispose();
-		if (displayTitle) {
-			title.dispose();
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java
deleted file mode 100755
index b1301ed..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java
+++ /dev/null
@@ -1,1060 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.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.forms.FormColors;
-import org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-
-/**
- * Shows the list of tabs in the tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyList
-	extends Composite {
-
-	private static final ListElement[] ELEMENTS_EMPTY = new ListElement[0];
-
-	protected static final int NONE = -1;
-
-	protected static final int INDENT = 7;
-
-	private boolean focus = false;
-
-	private ListElement[] elements;
-
-	private int selectedElementIndex = NONE;
-
-	private int topVisibleIndex = NONE;
-
-	private int bottomVisibleIndex = NONE;
-
-	private TopNavigationElement topNavigationElement;
-
-	private BottomNavigationElement bottomNavigationElement;
-
-	private int widestLabelIndex = NONE;
-
-	private int tabsThatFitInComposite = NONE;
-
-	private Color widgetForeground;
-
-	private Color widgetBackground;
-
-	private Color widgetNormalShadow;
-
-	private Color widgetDarkShadow;
-
-	private Color listBackground;
-
-	private Color hoverGradientStart;
-
-	private Color hoverGradientEnd;
-
-	private Color defaultGradientStart;
-
-	private Color defaultGradientEnd;
-
-	private Color indentedDefaultBackground;
-
-	private Color indentedHoverBackground;
-
-	private Color navigationElementShadowStroke;
-
-	private Color bottomNavigationElementShadowStroke1;
-
-	private Color bottomNavigationElementShadowStroke2;
-
-	private TabbedPropertySheetWidgetFactory factory;
-
-	/**
-	 * One of the tabs in the tabbed property list.
-	 */
-	public class ListElement extends Canvas {
-
-		private ITabItem tab;
-
-		private int index;
-
-		private boolean selected;
-
-		private boolean hover;
-
-		/**
-		 * Constructor for ListElement.
-		 * 
-		 * @param parent
-		 *            the parent Composite.
-		 * @param tab
-		 *            the tab item for the element.
-		 * @param index
-		 *            the index in the list.
-		 */
-		public ListElement(Composite parent, final ITabItem tab, int index) {
-			super(parent, SWT.NO_FOCUS);
-			this.tab = tab;
-			hover = false;
-			selected = false;
-			this.index = index;
-
-			addPaintListener(new PaintListener() {
-
-				public void paintControl(PaintEvent e) {
-					paint(e);
-				}
-			});
-			addMouseListener(new MouseAdapter() {
-
-				public void mouseUp(MouseEvent e) {
-					if (!selected) {
-						select(getIndex(ListElement.this));
-						/*
-						 * We set focus to the tabbed property composite so that
-						 * focus is moved to the appropriate widget in the
-						 * section.
-						 */
-						Composite tabbedPropertyComposite = getParent();
-						while (!(tabbedPropertyComposite instanceof TabbedPropertyComposite)) {
-							tabbedPropertyComposite = tabbedPropertyComposite
-								.getParent();
-						}
-						tabbedPropertyComposite.setFocus();
-					}
-				}
-			});
-			addMouseMoveListener(new MouseMoveListener() {
-
-				public void mouseMove(MouseEvent e) {
-					if (!hover) {
-						hover = true;
-						redraw();
-					}
-				}
-			});
-			addMouseTrackListener(new MouseTrackAdapter() {
-
-				public void mouseExit(MouseEvent e) {
-					hover = false;
-					redraw();
-				}
-			});
-		}
-
-		/**
-		 * Set selected value for this element.
-		 * 
-		 * @param selected
-		 *            the selected value.
-		 */
-		public void setSelected(boolean selected) {
-			this.selected = selected;
-			redraw();
-		}
-
-		/**
-		 * Paint the element.
-		 * 
-		 * @param e
-		 *            the paint event.
-		 */
-		private void paint(PaintEvent e) {
-			/*
-			 * draw the top two lines of the tab, same for selected, hover and
-			 * default
-			 */
-			Rectangle bounds = getBounds();
-			e.gc.setForeground(widgetNormalShadow);
-			e.gc.drawLine(0, 0, bounds.width - 1, 0);
-			e.gc.setForeground(listBackground);
-			e.gc.drawLine(0, 1, bounds.width - 1, 1);
-
-			/* draw the fill in the tab */
-			if (selected) {
-				e.gc.setBackground(listBackground);
-				e.gc.fillRectangle(0, 2, bounds.width, bounds.height - 1);
-			} else if (hover && tab.isIndented()) {
-				e.gc.setBackground(indentedHoverBackground);
-				e.gc.fillRectangle(0, 2, bounds.width - 1, bounds.height - 1);
-			} else if (hover) {
-				e.gc.setForeground(hoverGradientStart);
-				e.gc.setBackground(hoverGradientEnd);
-				e.gc.fillGradientRectangle(0, 2, bounds.width - 1,
-						bounds.height - 1, true);
-			} else if (tab.isIndented()) {
-				e.gc.setBackground(indentedDefaultBackground);
-				e.gc.fillRectangle(0, 2, bounds.width - 1, bounds.height - 1);
-			} else {
-				e.gc.setForeground(defaultGradientStart);
-				e.gc.setBackground(defaultGradientEnd);
-				e.gc.fillGradientRectangle(0, 2, bounds.width - 1,
-						bounds.height - 1, true);
-			}
-
-			if (!selected) {
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(bounds.width - 1, 1, bounds.width - 1,
-						bounds.height + 1);
-			}
-
-			int textIndent = INDENT;
-			FontMetrics fm = e.gc.getFontMetrics();
-			int height = fm.getHeight();
-			int textMiddle = (bounds.height - height) / 2;
-
-			if (selected && tab.getImage() != null
-				&& !tab.getImage().isDisposed()) {
-				/* draw the icon for the selected tab */
-				if (tab.isIndented()) {
-					textIndent = textIndent + INDENT;
-				} else {
-					textIndent = textIndent - 3;
-				}
-				e.gc.drawImage(tab.getImage(), textIndent, textMiddle - 1);
-				textIndent = textIndent + 16 + 5;
-			} else if (tab.isIndented()) {
-				textIndent = textIndent + INDENT;
-			}
-
-			/* draw the text */
-			e.gc.setForeground(widgetForeground);
-			if (selected) {
-				/* selected tab is bold font */
-				e.gc.setFont(JFaceResources.getFontRegistry().getBold(
-						JFaceResources.DEFAULT_FONT));
-			}
-			e.gc.drawText(tab.getText(), textIndent, textMiddle, true);
-			if (((TabbedPropertyList) getParent()).focus && selected) {
-				/* draw a line if the tab has focus */
-				Point point = e.gc.textExtent(tab.getText());
-				e.gc.drawLine(textIndent, bounds.height - 4, textIndent
-					+ point.x, bounds.height - 4);
-			}
-
-			/* draw the bottom line on the tab for selected and default */
-			if (!hover) {
-				e.gc.setForeground(listBackground);
-				e.gc.drawLine(0, bounds.height - 1, bounds.width - 2,
-						bounds.height - 1);
-			}
-		}
-
-		/**
-		 * Get the tab item.
-		 * 
-		 * @return the tab item.
-		 */
-		public ITabItem getTabItem() {
-			return tab;
-		}
-
-		public String toString() {
-			return tab.getText();
-		}
-	}
-
-	/**
-	 * The top navigation element in the tabbed property list. It looks like a
-	 * scroll button when scrolling is needed or is just a spacer when no
-	 * scrolling is required.
-	 */
-	public class TopNavigationElement extends Canvas {
-
-		/**
-		 * Constructor for TopNavigationElement.
-		 * 
-		 * @param parent
-		 *            the parent Composite.
-		 */
-		public TopNavigationElement(Composite parent) {
-			super(parent, SWT.NO_FOCUS);
-			addPaintListener(new PaintListener() {
-
-				public void paintControl(PaintEvent e) {
-					paint(e);
-				}
-			});
-			addMouseListener(new MouseAdapter() {
-
-				public void mouseUp(MouseEvent e) {
-					if (isUpScrollRequired()) {
-						bottomVisibleIndex--;
-						if (topVisibleIndex != 0) {
-							topVisibleIndex--;
-						}
-						layoutTabs();
-						topNavigationElement.redraw();
-						bottomNavigationElement.redraw();
-					}
-				}
-			});
-		}
-
-		/**
-		 * Paint the element.
-		 * 
-		 * @param e
-		 *            the paint event.
-		 */
-		private void paint(PaintEvent e) {
-			e.gc.setBackground(widgetBackground);
-			e.gc.setForeground(widgetForeground);
-			Rectangle bounds = getBounds();
-
-			if (elements.length != 0) {
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(bounds.width - 1, 0, bounds.width - 1,
-					bounds.height - 1);
-			} else {
-				e.gc.setBackground(listBackground);
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-				int textIndent = INDENT;
-				FontMetrics fm = e.gc.getFontMetrics();
-				int height = fm.getHeight();
-				int textMiddle = (bounds.height - height) / 2;
-				e.gc.setForeground(widgetForeground);
-				String properties_not_available = TabbedPropertyMessages.TabbedPropertyList_properties_not_available;
-				e.gc.drawText(properties_not_available, textIndent, textMiddle);
-			}
-
-			if (isUpScrollRequired()) {
-				e.gc.setForeground(widgetDarkShadow);
-				int middle = bounds.width / 2;
-				e.gc.drawLine(middle + 1, 3, middle + 5, 7);
-				e.gc.drawLine(middle, 3, middle - 4, 7);
-				e.gc.drawLine(middle - 3, 7, middle + 4, 7);
-
-				e.gc.setForeground(listBackground);
-				e.gc.drawLine(middle, 4, middle + 1, 4);
-				e.gc.drawLine(middle - 1, 5, middle + 2, 5);
-				e.gc.drawLine(middle - 2, 6, middle + 3, 6);
-
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(0, 0, bounds.width - 2, 0);
-				e.gc.setForeground(navigationElementShadowStroke);
-				e.gc.drawLine(0, 1, bounds.width - 2, 1);
-				e.gc.drawLine(0, bounds.height - 1, bounds.width - 2,
-						bounds.height - 1);
-			}
-		}
-	}
-
-	/**
-	 * The top navigation element in the tabbed property list. It looks like a
-	 * scroll button when scrolling is needed or is just a spacer when no
-	 * scrolling is required.
-	 */
-	public class BottomNavigationElement extends Canvas {
-
-		/**
-		 * Constructor for BottomNavigationElement.
-		 * 
-		 * @param parent
-		 *            the parent Composite.
-		 */
-		public BottomNavigationElement(Composite parent) {
-			super(parent, SWT.NO_FOCUS);
-			addPaintListener(new PaintListener() {
-
-				public void paintControl(PaintEvent e) {
-					paint(e);
-				}
-			});
-			addMouseListener(new MouseAdapter() {
-
-				public void mouseUp(MouseEvent e) {
-					if (isDownScrollRequired()) {
-						topVisibleIndex++;
-						if (bottomVisibleIndex != elements.length - 1) {
-							bottomVisibleIndex++;
-						}
-						layoutTabs();
-						topNavigationElement.redraw();
-						bottomNavigationElement.redraw();
-					}
-				}
-			});
-		}
-
-		/**
-		 * Paint the element.
-		 * 
-		 * @param e
-		 *            the paint event.
-		 */
-		private void paint(PaintEvent e) {
-			e.gc.setBackground(widgetBackground);
-			e.gc.setForeground(widgetForeground);
-			Rectangle bounds = getBounds();
-
-			if (elements.length != 0) {
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(bounds.width - 1, 0, bounds.width - 1,
-						bounds.height - 1);
-				e.gc.drawLine(0, 0, bounds.width - 1, 0);
-
-				e.gc.setForeground(bottomNavigationElementShadowStroke1);
-				e.gc.drawLine(0, 1, bounds.width - 2, 1);
-				e.gc.setForeground(bottomNavigationElementShadowStroke2);
-				e.gc.drawLine(0, 2, bounds.width - 2, 2);
-			} else {
-				e.gc.setBackground(listBackground);
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-			}
-
-			if (isDownScrollRequired()) {
-				e.gc.setForeground(widgetDarkShadow);
-				int middle = bounds.width / 2;
-				int bottom = bounds.height - 3;
-				e.gc.drawLine(middle + 1, bottom, middle + 5, bottom - 4);
-				e.gc.drawLine(middle, bottom, middle - 4, bottom - 4);
-				e.gc.drawLine(middle - 3, bottom - 4, middle + 4, bottom - 4);
-
-				e.gc.setForeground(listBackground);
-				e.gc.drawLine(middle, bottom - 1, middle + 1, bottom - 1);
-				e.gc.drawLine(middle - 1, bottom - 2, middle + 2, bottom - 2);
-				e.gc.drawLine(middle - 2, bottom - 3, middle + 3, bottom - 3);
-
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(0, bottom - 7, bounds.width - 2, bottom - 7);
-				e.gc.setForeground(navigationElementShadowStroke);
-				e.gc.drawLine(0, bottom + 2, bounds.width - 2, bottom + 2);
-				e.gc.drawLine(0, bottom - 6, bounds.width - 2, bottom - 6);
-			}
-		}
-	}
-
-	/**
-	 * Constructor for TabbedPropertyList.
-	 * 
-	 * @param parent
-	 *            the parent widget.
-	 * @param factory
-	 *            the widget factory.
-	 */
-	public TabbedPropertyList(Composite parent,
-			TabbedPropertySheetWidgetFactory factory) {
-		super(parent, SWT.NO_FOCUS);
-		this.factory = factory;
-		removeAll();
-		setLayout(new FormLayout());
-		initColours();
-		initAccessible();
-		topNavigationElement = new TopNavigationElement(this);
-		bottomNavigationElement = new BottomNavigationElement(this);
-
-		this.addFocusListener(new FocusListener() {
-
-			public void focusGained(FocusEvent e) {
-				focus = true;
-				int i = getSelectionIndex();
-				if (i >= 0) {
-					elements[i].redraw();
-				}
-			}
-
-			public void focusLost(FocusEvent e) {
-				focus = false;
-				int i = getSelectionIndex();
-				if (i >= 0) {
-					elements[i].redraw();
-				}
-			}
-		});
-		this.addControlListener(new ControlAdapter() {
-
-			public void controlResized(ControlEvent e) {
-				computeTopAndBottomTab();
-			}
-		});
-		this.addTraverseListener(new TraverseListener() {
-
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_ARROW_PREVIOUS
-					|| e.detail == SWT.TRAVERSE_ARROW_NEXT) {
-					int nMax = elements.length - 1;
-					int nCurrent = getSelectionIndex();
-					if (e.detail == SWT.TRAVERSE_ARROW_PREVIOUS) {
-						nCurrent -= 1;
-						nCurrent = Math.max(0, nCurrent);
-					} else if (e.detail == SWT.TRAVERSE_ARROW_NEXT) {
-						nCurrent += 1;
-						nCurrent = Math.min(nCurrent, nMax);
-					}
-					select(nCurrent);
-					redraw();
-				} else {
-					e.doit = true;
-				}
-			}
-		});
-	}
-
-	/**
-	 * Calculate the number of tabs that will fit in the tab list composite.
-	 */
-	protected void computeTabsThatFitInComposite() {
-		tabsThatFitInComposite = Math
-			.round((getSize().y - 22) / getTabHeight());
-		if (tabsThatFitInComposite <= 0) {
-			tabsThatFitInComposite = 1;
-		}
-	}
-
-	/**
-	 * Returns the element with the given index from this list viewer. Returns
-	 * <code>null</code> if the index is out of range.
-	 * 
-	 * @param index
-	 *            the zero-based index
-	 * @return the element at the given index, or <code>null</code> if the
-	 *         index is out of range
-	 */
-	public Object getElementAt(int index) {
-		if (index >= 0 && index < elements.length) {
-			return elements[index];
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the zero-relative index of the item which is currently selected
-	 * in the receiver, or -1 if no item is selected.
-	 * 
-	 * @return the index of the selected item
-	 */
-	public int getSelectionIndex() {
-		return selectedElementIndex;
-	}
-
-	/**
-	 * Removes all elements from this list.
-	 */
-	public void removeAll() {
-		if (elements != null) {
-			for (int i = 0; i < elements.length; i++) {
-				elements[i].dispose();
-			}
-		}
-		elements = ELEMENTS_EMPTY;
-		selectedElementIndex = NONE;
-		widestLabelIndex = NONE;
-		topVisibleIndex = NONE;
-		bottomVisibleIndex = NONE;
-	}
-
-	/**
-	 * Sets the new list elements.
-	 * 
-	 * @param children
-	 */
-	public void setElements(Object[] children) {
-		if (elements != ELEMENTS_EMPTY) {
-			removeAll();
-		}
-		elements = new ListElement[children.length];
-		if (children.length == 0) {
-			widestLabelIndex = NONE;
-		} else {
-			widestLabelIndex = 0;
-			for (int i = 0; i < children.length; i++) {
-				elements[i] = new ListElement(this, (ITabItem) children[i], i);
-				elements[i].setVisible(false);
-				elements[i].setLayoutData(null);
-
-				if (i != widestLabelIndex) {
-					String label = ((ITabItem) children[i]).getText();
-					int width = getTextDimension(label).x;
-					if (((ITabItem) children[i]).isIndented()) {
-						width = width + INDENT;
-					}
-					if (width > getTextDimension(((ITabItem) children[widestLabelIndex])
-							.getText()).x) {
-						widestLabelIndex = i;
-					}
-				}
-			}
-		}
-
-		computeTopAndBottomTab();
-	}
-
-	/**
-	 * Selects one of the elements in the list.
-	 * 
-	 * @param index
-	 *            the index of the element to select.
-	 */
-	protected void select(int index) {
-		if (getSelectionIndex() == index) {
-			/*
-			 * this index is already selected.
-			 */
-			return;
-		}
-		if (index >= 0 && index < elements.length) {
-			int lastSelected = getSelectionIndex();
-			elements[index].setSelected(true);
-			selectedElementIndex = index;
-			if (lastSelected != NONE) {
-				elements[lastSelected].setSelected(false);
-				if (getSelectionIndex() != elements.length - 1) {
-					/*
-					 * redraw the next tab to fix the border by calling
-					 * setSelected()
-					 */
-					elements[getSelectionIndex() + 1].setSelected(false);
-				}
-			}
-			topNavigationElement.redraw();
-			bottomNavigationElement.redraw();
-
-			if (selectedElementIndex < topVisibleIndex
-				|| selectedElementIndex > bottomVisibleIndex) {
-				computeTopAndBottomTab();
-			}
-		}
-		notifyListeners(SWT.Selection, new Event());
-	}
-
-	/**
-	 * Deselects all the elements in the list.
-	 */
-	public void deselectAll() {
-		if (getSelectionIndex() != NONE) {
-			elements[getSelectionIndex()].setSelected(false);
-			selectedElementIndex = NONE;
-		}
-	}
-
-	private int getIndex(ListElement element) {
-		return element.index;
-	}
-
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Point result = super.computeSize(hHint, wHint, changed);
-		if (widestLabelIndex == -1) {
-			String properties_not_available = TabbedPropertyMessages.TabbedPropertyList_properties_not_available;
-			result.x = getTextDimension(properties_not_available).x + INDENT;
-		} else {
-			ITabItem widestTab = elements[widestLabelIndex].getTabItem();
-			int width = getTextDimension(widestTab.getText()).x + INDENT;
-			/*
-			 * To anticipate for the icon placement we should always keep the
-			 * space available after the label. So when the active tab includes
-			 * an icon the width of the tab doesn't change.
-			 */
-			if (widestTab.getImage() != null) {
-				width = width + 16 + 4;
-			}
-			if (widestTab.isIndented()) {
-				width = width + 10;
-			}
-			/*
-			 * Add 10 pixels to the right of the longest string as a margin.
-			 */
-			result.x = width + 10;
-		}
-		return result;
-	}
-
-	/**
-	 * Get the dimensions of the provided string.
-	 * 
-	 * @param text
-	 *            the string.
-	 * @return the dimensions of the provided string.
-	 */
-	private Point getTextDimension(String text) {
-		Shell shell = new Shell();
-		GC gc = new GC(shell);
-		gc.setFont(JFaceResources.getFontRegistry().getBold(
-				JFaceResources.DEFAULT_FONT));
-		Point point = gc.textExtent(text);
-		point.x++;
-		gc.dispose();
-		shell.dispose();
-		return point;
-	}
-
-	/**
-	 * Initialize the colours used in the list.
-	 */
-	private void initColours() {
-		/*
-		 * Colour 3 COLOR_LIST_BACKGROUND
-		 */
-		listBackground = Display.getCurrent().getSystemColor(
-				SWT.COLOR_LIST_BACKGROUND);
-
-		/*
-		 * Colour 13 COLOR_WIDGET_BACKGROUND
-		 */
-		widgetBackground = Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_BACKGROUND);
-
-		/*
-		 * Colour 15 COLOR_WIDGET_DARK_SHADOW
-		 */
-		widgetDarkShadow = Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_DARK_SHADOW);
-
-		/*
-		 * Colour 16 COLOR_WIDGET_FOREGROUND
-		 */
-		widgetForeground = Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_FOREGROUND);
-
-		/*
-		 * Colour 19 COLOR_WIDGET_NORMAL_SHADOW
-		 */
-		widgetNormalShadow = Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_NORMAL_SHADOW);
-
-		RGB infoBackground = Display.getCurrent().getSystemColor(
-				SWT.COLOR_INFO_BACKGROUND).getRGB();
-		RGB white = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)
-				.getRGB();
-		RGB black = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK)
-				.getRGB();
-
-		/*
-		 * gradient in the default tab: start colour WIDGET_NORMAL_SHADOW 100% +
-		 * white 20% + INFO_BACKGROUND 60% end colour WIDGET_NORMAL_SHADOW 100% +
-		 * INFO_BACKGROUND 40%
-		 */
-		defaultGradientStart = factory.getColors().createColor(
-				"TabbedPropertyList.defaultTabGradientStart", //$NON-NLS-1$
-				FormColors.blend(infoBackground, FormColors.blend(white,
-						widgetNormalShadow.getRGB(), 20), 60));
-		defaultGradientEnd = factory.getColors().createColor(
-				"TabbedPropertyList.defaultTabGradientEnd", //$NON-NLS-1$
-				FormColors.blend(infoBackground, widgetNormalShadow.getRGB(),
-						40));
-
-		navigationElementShadowStroke = factory.getColors().createColor(
-				"TabbedPropertyList.shadowStroke", //$NON-NLS-1$
-				FormColors.blend(white, widgetNormalShadow.getRGB(), 55));
-		bottomNavigationElementShadowStroke1 = factory.getColors().createColor(
-				"TabbedPropertyList.tabShadowStroke1", //$NON-NLS-1$
-				FormColors.blend(black, widgetBackground.getRGB(), 10));
-		bottomNavigationElementShadowStroke2 = factory.getColors().createColor(
-				"TabbedPropertyList.tabShadowStroke2", //$NON-NLS-1$
-				FormColors.blend(black, widgetBackground.getRGB(), 5));
-
-		/*
-		 * gradient in the hover tab: start colour WIDGET_BACKGROUND 100% +
-		 * white 20% end colour WIDGET_BACKGROUND 100% + WIDGET_NORMAL_SHADOW
-		 * 10%
-		 */
-		hoverGradientStart = factory.getColors().createColor(
-				"TabbedPropertyList.hoverBackgroundGradientStart", //$NON-NLS-1$
-				FormColors.blend(white, widgetBackground.getRGB(), 20));
-		hoverGradientEnd = factory.getColors().createColor(
-				"TabbedPropertyList.hoverBackgroundGradientEnd", //$NON-NLS-1$
-				FormColors.blend(widgetNormalShadow.getRGB(), widgetBackground
-						.getRGB(), 10));
-
-		indentedDefaultBackground = factory.getColors().createColor(
-				"TabbedPropertyList.indentedDefaultBackground", //$NON-NLS-1$
-				FormColors.blend(white, widgetBackground.getRGB(), 10));
-		indentedHoverBackground = factory.getColors().createColor(
-				"TabbedPropertyList.indentedHoverBackground", //$NON-NLS-1$
-				FormColors.blend(white, widgetBackground.getRGB(), 75));
-	}
-
-	public void dispose() {
-		hoverGradientStart.dispose();
-		hoverGradientEnd.dispose();
-		defaultGradientStart.dispose();
-		defaultGradientEnd.dispose();
-		indentedDefaultBackground.dispose();
-		indentedHoverBackground.dispose();
-		navigationElementShadowStroke.dispose();
-		bottomNavigationElementShadowStroke1.dispose();
-		bottomNavigationElementShadowStroke2.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;
-	}
-
-	/**
-	 * Determine if a downward scrolling is required.
-	 * 
-	 * @return true if downward scrolling is required.
-	 */
-	private boolean isDownScrollRequired() {
-		return elements.length > tabsThatFitInComposite
-			&& bottomVisibleIndex != elements.length - 1;
-	}
-
-	/**
-	 * Determine if an upward scrolling is required.
-	 * 
-	 * @return true if upward scrolling is required.
-	 */
-	private boolean isUpScrollRequired() {
-		return elements.length > tabsThatFitInComposite && topVisibleIndex != 0;
-	}
-
-	/**
-	 * Based on available space, figure out the top and bottom tabs in the list.
-	 */
-	private void computeTopAndBottomTab() {
-		computeTabsThatFitInComposite();
-		if (elements.length == 0) {
-			/*
-			 * no tabs to display.
-			 */
-			topVisibleIndex = 0;
-			bottomVisibleIndex = 0;
-		} else if (tabsThatFitInComposite >= elements.length) {
-			/*
-			 * all the tabs fit.
-			 */
-			topVisibleIndex = 0;
-			bottomVisibleIndex = elements.length - 1;
-		} else if (getSelectionIndex() == NONE) {
-			/*
-			 * there is no selected tab yet, assume that tab one would
-			 * be selected for now.
-			 */
-			topVisibleIndex = 0;
-			bottomVisibleIndex = tabsThatFitInComposite - 1;
-		} else if (getSelectionIndex() + tabsThatFitInComposite > elements.length) {
-			/*
-			 * the selected tab is near the bottom.
-			 */
-			bottomVisibleIndex = elements.length - 1;
-			topVisibleIndex = bottomVisibleIndex - tabsThatFitInComposite + 1;
-		} else {
-			/*
-			 * the selected tab is near the top.
-			 */
-			topVisibleIndex = selectedElementIndex;
-			bottomVisibleIndex = selectedElementIndex + tabsThatFitInComposite
-				- 1;
-		}
-		layoutTabs();
-	}
-
-	/**
-	 * Layout the tabs.
-	 */
-	private void layoutTabs() {
-		//System.out.println("TabFit " + tabsThatFitInComposite + " length "
-		//	+ elements.length + " top " + topVisibleIndex + " bottom "
-		//	+ bottomVisibleIndex);
-		if (tabsThatFitInComposite == NONE || elements.length == 0) {
-			FormData formData = new FormData();
-			formData.left = new FormAttachment(0, 0);
-			formData.right = new FormAttachment(100, 0);
-			formData.top = new FormAttachment(0, 0);
-			formData.height = getTabHeight();
-			topNavigationElement.setLayoutData(formData);
-
-			formData = new FormData();
-			formData.left = new FormAttachment(0, 0);
-			formData.right = new FormAttachment(100, 0);
-			formData.top = new FormAttachment(topNavigationElement, 0);
-			formData.bottom = new FormAttachment(100, 0);
-			bottomNavigationElement.setLayoutData(formData);
-		} else {
-
-			FormData formData = new FormData();
-			formData.left = new FormAttachment(0, 0);
-			formData.right = new FormAttachment(100, 0);
-			formData.top = new FormAttachment(0, 0);
-			formData.height = 10;
-			topNavigationElement.setLayoutData(formData);
-
-			/*
-			 * use nextElement to attach the layout to the previous canvas
-			 * widget in the list.
-			 */
-			Canvas nextElement = topNavigationElement;
-
-			for (int i = 0; i < elements.length; i++) {
-				//System.out.print(i + " [" + elements[i].getText() + "]");
-				if (i < topVisibleIndex || i > bottomVisibleIndex) {
-					/*
-					 * this tab is not visible
-					 */
-					elements[i].setLayoutData(null);
-					elements[i].setVisible(false);
-				} else {
-					/*
-					 * this tab is visible.
-					 */
-					//System.out.print(" visible");
-					formData = new FormData();
-					formData.height = getTabHeight();
-					formData.left = new FormAttachment(0, 0);
-					formData.right = new FormAttachment(100, 0);
-					formData.top = new FormAttachment(nextElement, 0);
-					nextElement = elements[i];
-					elements[i].setLayoutData(formData);
-					elements[i].setVisible(true);
-				}
-
-				//if (i == selectedElementIndex) {
-				//	System.out.print(" selected");
-				//}
-				//System.out.println("");
-			}
-			formData = new FormData();
-			formData.left = new FormAttachment(0, 0);
-			formData.right = new FormAttachment(100, 0);
-			formData.top = new FormAttachment(nextElement, 0);
-			formData.bottom = new FormAttachment(100, 0);
-			formData.height = 10;
-			bottomNavigationElement.setLayoutData(formData);
-		}
-		//System.out.println("");
-
-		// layout so that we have enough space for the new labels
-		Composite grandparent = getParent().getParent();
-		grandparent.layout(true);
-		layout(true);
-	}
-
-	/**
-	 * Initialize the accessibility adapter.
-	 */
-	private void initAccessible() {
-		final Accessible accessible = getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-
-			public void getName(AccessibleEvent e) {
-				if (getSelectionIndex() != NONE) {
-					e.result = elements[getSelectionIndex()].getTabItem()
-							.getText();
-				}
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				if (getSelectionIndex() != NONE) {
-					e.result = elements[getSelectionIndex()].getTabItem()
-							.getText();
-				}
-			}
-		});
-
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-
-			public void getChildAtPoint(AccessibleControlEvent e) {
-				Point pt = toControl(new Point(e.x, e.y));
-				e.childID = (getBounds().contains(pt)) ? ACC.CHILDID_SELF
-					: ACC.CHILDID_NONE;
-			}
-
-			public void getLocation(AccessibleControlEvent e) {
-				if (getSelectionIndex() != NONE) {
-					Rectangle location = elements[getSelectionIndex()]
-						.getBounds();
-					Point pt = toDisplay(new Point(location.x, location.y));
-					e.x = pt.x;
-					e.y = pt.y;
-					e.width = location.width;
-					e.height = location.height;
-				}
-			}
-
-			public void getChildCount(AccessibleControlEvent e) {
-				e.detail = 0;
-			}
-
-			public void getRole(AccessibleControlEvent e) {
-				e.detail = ACC.ROLE_TABITEM;
-			}
-
-			public void getState(AccessibleControlEvent e) {
-				e.detail = ACC.STATE_NORMAL | ACC.STATE_SELECTABLE
-					| ACC.STATE_SELECTED | ACC.STATE_FOCUSED
-					| ACC.STATE_FOCUSABLE;
-			}
-		});
-
-		addListener(SWT.Selection, new Listener() {
-
-			public void handleEvent(Event event) {
-				if (isFocusControl()) {
-					accessible.setFocus(ACC.CHILDID_SELF);
-				}
-			}
-		});
-
-		addListener(SWT.FocusIn, new Listener() {
-
-			public void handleEvent(Event event) {
-				accessible.setFocus(ACC.CHILDID_SELF);
-			}
-		});
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java
deleted file mode 100755
index a6b3c33..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java
+++ /dev/null
@@ -1,540 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewStatusCodes;
-import org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.IActionProvider;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-import com.ibm.icu.text.MessageFormat;
-
-/**
- * Provides information about the tabbed property extension points. Each tabbed
- * property registry is associated with a unique contributor ID.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyRegistry {
-
-	private final static String NO_TAB_ERROR = TabbedPropertyMessages.TabbedPropertyRegistry_Non_existing_tab;
-
-	private final static String CONTRIBUTOR_ERROR = TabbedPropertyMessages.TabbedPropertyRegistry_contributor_error;
-
-	private final static String TAB_ERROR = TabbedPropertyMessages.TabDescriptor_Tab_unknown_category;
-
-	// extension point constants
-	private static final String EXTPT_CONTRIBUTOR = "propertyContributor"; //$NON-NLS-1$
-
-	private static final String EXTPT_TABS = "propertyTabs"; //$NON-NLS-1$
-
-	private static final String EXTPT_SECTIONS = "propertySections"; //$NON-NLS-1$
-
-	private static final String ELEMENT_TAB = "propertyTab"; //$NON-NLS-1$
-
-	private static final String ELEMENT_SECTION = "propertySection"; //$NON-NLS-1$
-
-	private static final String ELEMENT_PROPERTY_CATEGORY = "propertyCategory"; //$NON-NLS-1$
-
-	private static final String ATT_CATEGORY = "category"; //$NON-NLS-1$
-
-	private static final String ATT_CONTRIBUTOR_ID = "contributorId"; //$NON-NLS-1$
-
-	private static final String ATT_TYPE_MAPPER = "typeMapper"; //$NON-NLS-1$	
-
-	private static final String ATT_LABEL_PROVIDER = "labelProvider"; //$NON-NLS-1$
-
-	private static final String ATT_ACTION_PROVIDER = "actionProvider"; //$NON-NLS-1$
-
-	private static final String ATT_SECTION_DESCRIPTOR_PROVIDER = "sectionDescriptorProvider"; //$NON-NLS-1$
-
-	private static final String ATT_TAB_DESCRIPTOR_PROVIDER = "tabDescriptorProvider"; //$NON-NLS-1$
-
-	private static final String ATT_OVERRIDABLE_TAB_LIST_CONTENT_PROVIDER = "overridableTabListContentProvider"; //$NON-NLS-1$
-
-	private static final String TOP = "top"; //$NON-NLS-1$
-
-	protected String contributorId;
-
-	protected IConfigurationElement contributorConfigurationElement;
-
-	protected List propertyCategories;
-
-	protected ILabelProvider labelProvider;
-
-	protected IActionProvider actionProvider;
-
-	protected ITypeMapper typeMapper;
-
-	protected ISectionDescriptorProvider sectionDescriptorProvider;
-
-	protected ITabDescriptorProvider tabDescriptorProvider;
-
-	protected ITabDescriptor[] tabDescriptors;
-
-	protected static final AbstractTabDescriptor[] EMPTY_DESCRIPTOR_ARRAY = new TabDescriptor[0];
-
-	protected boolean overridableTabListContentProvider = false;
-
-	/**
-	 * There is one details registry for each contributor type.
-	 */
-	protected TabbedPropertyRegistry(String id) {
-		this.contributorId = id;
-		this.propertyCategories = new ArrayList();
-		IConfigurationElement[] extensions = getConfigurationElements(EXTPT_CONTRIBUTOR);
-		for (int i = 0; i < extensions.length; i++) {
-			IConfigurationElement configurationElement = extensions[i];
-			String contributor = configurationElement
-					.getAttribute(ATT_CONTRIBUTOR_ID);
-			if (contributor == null || !id.equals(contributor)) {
-				continue;
-			}
-			this.contributorConfigurationElement = configurationElement;
-			try {
-				if (configurationElement.getAttribute(ATT_LABEL_PROVIDER) != null) {
-					labelProvider = (ILabelProvider) configurationElement
-							.createExecutableExtension(ATT_LABEL_PROVIDER);
-				}
-				if (configurationElement.getAttribute(ATT_ACTION_PROVIDER) != null) {
-					actionProvider = (IActionProvider) configurationElement
-							.createExecutableExtension(ATT_ACTION_PROVIDER);
-				}
-				if (configurationElement.getAttribute(ATT_TYPE_MAPPER) != null) {
-					typeMapper = (ITypeMapper) configurationElement
-							.createExecutableExtension(ATT_TYPE_MAPPER);
-				}
-				if (configurationElement
-						.getAttribute(ATT_SECTION_DESCRIPTOR_PROVIDER) != null) {
-					sectionDescriptorProvider = (ISectionDescriptorProvider) configurationElement
-							.createExecutableExtension(ATT_SECTION_DESCRIPTOR_PROVIDER);
-				}
-				if (configurationElement
-						.getAttribute(ATT_TAB_DESCRIPTOR_PROVIDER) != null) {
-					tabDescriptorProvider = (ITabDescriptorProvider) configurationElement
-							.createExecutableExtension(ATT_TAB_DESCRIPTOR_PROVIDER);
-				}
-				if (configurationElement
-						.getAttribute(ATT_OVERRIDABLE_TAB_LIST_CONTENT_PROVIDER) != null) {
-					String attributeBoolean = configurationElement
-							.getAttribute(ATT_OVERRIDABLE_TAB_LIST_CONTENT_PROVIDER);
-					overridableTabListContentProvider = attributeBoolean
-							.equals("true");//$NON-NLS-1$
-				}
-			} catch (CoreException exception) {
-				handleConfigurationError(id, exception);
-			}
-			addPropertyCategories(configurationElement);
-		}
-		if (propertyCategories == null || contributorId == null ||
-				contributorConfigurationElement == null) {
-			handleConfigurationError(id, null);
-			this.contributorId = null;
-		}
-	}
-
-	/**
-	 * Gets the categories that are valid for this contributor.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element for this contributor.
-	 */
-	private void addPropertyCategories(
-			IConfigurationElement configurationElement) {
-		IConfigurationElement[] elements = configurationElement
-				.getChildren(ELEMENT_PROPERTY_CATEGORY);
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			propertyCategories.add(element.getAttribute(ATT_CATEGORY));
-		}
-	}
-
-	/**
-	 * Handle the error when an issue is found loading from the configuration
-	 * element.
-	 * 
-	 * @param id
-	 *            the configuration id.
-	 * @param exception
-	 *            an optional CoreException
-	 */
-	private void handleConfigurationError(String id, CoreException exception) {
-		String message = MessageFormat.format(CONTRIBUTOR_ERROR,
-				new Object[] { id });
-		IStatus status = new Status(IStatus.ERROR, TabbedPropertyViewPlugin
-				.getPlugin().getBundle().getSymbolicName(),
-				TabbedPropertyViewStatusCodes.CONTRIBUTOR_ERROR, message,
-				exception);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * Reads property section extensions. Returns all section descriptors for
-	 * the current contributor id or an empty array if none is found.
-	 */
-	protected ISectionDescriptor[] readSectionDescriptors() {
-		List result = new ArrayList();
-		IConfigurationElement[] extensions = getConfigurationElements(EXTPT_SECTIONS);
-		for (int i = 0; i < extensions.length; i++) {
-			IConfigurationElement extension = extensions[i];
-			IConfigurationElement[] sections = extension
-					.getChildren(ELEMENT_SECTION);
-			for (int j = 0; j < sections.length; j++) {
-				IConfigurationElement section = sections[j];
-				ISectionDescriptor descriptor = new SectionDescriptor(section,
-						typeMapper);
-				result.add(descriptor);
-			}
-		}
-		return (ISectionDescriptor[]) result
-				.toArray(new ISectionDescriptor[result.size()]);
-	}
-
-	/**
-	 * Returns the configuration elements targeted for the given extension point
-	 * and the current contributor id. The elements are also sorted by plugin
-	 * prerequisite order.
-	 */
-	protected IConfigurationElement[] getConfigurationElements(
-			String extensionPointId) {
-		if (contributorId == null) {
-			return new IConfigurationElement[0];
-		}
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint(
-						TabbedPropertyViewPlugin.getPlugin().getBundle()
-								.getSymbolicName(), extensionPointId);
-		IConfigurationElement[] extensions = point.getConfigurationElements();
-		List unordered = new ArrayList(extensions.length);
-		for (int i = 0; i < extensions.length; i++) {
-			IConfigurationElement extension = extensions[i];
-			if (!extension.getName().equals(extensionPointId)) {
-				continue;
-			}
-			String contributor = extension.getAttribute(ATT_CONTRIBUTOR_ID);
-			if (!contributorId.equals(contributor)) {
-				continue;
-			}
-			unordered.add(extension);
-		}
-		return (IConfigurationElement[]) unordered
-				.toArray(new IConfigurationElement[unordered.size()]);
-	}
-
-	/**
-	 * Returns the index of the given element in the array.
-	 */
-	private int getIndex(Object[] array, Object target) {
-		for (int i = 0; i < array.length; i++) {
-			if (array[i].equals(target)) {
-				return i;
-			}
-		}
-		return -1; // should never happen
-	}
-
-	/**
-	 * Returns all section descriptors for the provided selection.
-	 * 
-	 * @param part
-	 *            the workbench part containing the selection
-	 * @param selection
-	 *            the current selection.
-	 * @return all section descriptors.
-	 */
-	public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,
-			ISelection selection) {
-		if (selection == null || selection.isEmpty()) {
-			return EMPTY_DESCRIPTOR_ARRAY;
-		}
-
-		ITabDescriptor[] allDescriptors = null;
-		if (tabDescriptorProvider == null) {
-			allDescriptors = getAllTabDescriptors();
-		} else {
-			allDescriptors = tabDescriptorProvider.getTabDescriptors(part,
-					selection);
-		}
-
-		ITabDescriptor[] result = filterTabDescriptors(allDescriptors, part,
-				selection);
-		return result;
-	}
-
-	/**
-	 * Filters out the tab descriptors that do not have any sections for the
-	 * given input.
-	 */
-	protected ITabDescriptor[] filterTabDescriptors(
-			ITabDescriptor[] descriptors, IWorkbenchPart part,
-			ISelection selection) {
-		List result = new ArrayList();
-		for (int i = 0; i < descriptors.length; i++) {
-			ITabDescriptor descriptor = adaptDescriptorFor(descriptors[i],
-					part, selection);
-			if (!descriptor.getSectionDescriptors().isEmpty()) {
-				result.add(descriptor);
-			}
-		}
-		if (result.size() == 0) {
-			return EMPTY_DESCRIPTOR_ARRAY;
-		}
-		return (ITabDescriptor[]) result.toArray(new ITabDescriptor[result
-				.size()]);
-	}
-
-	/**
-	 * Given a property tab descriptor remove all its section descriptors that
-	 * do not apply to the given input object.
-	 */
-	protected ITabDescriptor adaptDescriptorFor(ITabDescriptor target,
-			IWorkbenchPart part, ISelection selection) {
-		List filteredSectionDescriptors = new ArrayList();
-		List descriptors = target.getSectionDescriptors();
-		for (Iterator iter = descriptors.iterator(); iter.hasNext();) {
-			ISectionDescriptor descriptor = (ISectionDescriptor) iter.next();
-			if (descriptor.appliesTo(part, selection)) {
-				filteredSectionDescriptors.add(descriptor);
-			}
-		}
-		AbstractTabDescriptor result = (AbstractTabDescriptor) ((AbstractTabDescriptor) target)
-				.clone();
-		result.setSectionDescriptors(filteredSectionDescriptors);
-		return result;
-	}
-
-	/**
-	 * Reads property tab extensions. Returns all tab descriptors for the
-	 * current contributor id or an empty array if none is found.
-	 */
-	protected ITabDescriptor[] getAllTabDescriptors() {
-		if (tabDescriptors == null) {
-			List temp = readTabDescriptors();
-			populateWithSectionDescriptors(temp);
-			temp = sortTabDescriptorsByCategory(temp);
-			temp = sortTabDescriptorsByAfterTab(temp);
-			tabDescriptors = (TabDescriptor[]) temp
-					.toArray(new TabDescriptor[temp.size()]);
-		}
-		return tabDescriptors;
-	}
-
-	/**
-	 * Reads property tab extensions. Returns all tab descriptors for the
-	 * current contributor id or an empty list if none is found.
-	 */
-	protected List readTabDescriptors() {
-		List result = new ArrayList();
-		IConfigurationElement[] extensions = getConfigurationElements(EXTPT_TABS);
-		for (int i = 0; i < extensions.length; i++) {
-			IConfigurationElement extension = extensions[i];
-			IConfigurationElement[] tabs = extension.getChildren(ELEMENT_TAB);
-			for (int j = 0; j < tabs.length; j++) {
-				IConfigurationElement tab = tabs[j];
-				TabDescriptor descriptor = new TabDescriptor(tab);
-				if (getIndex(propertyCategories.toArray(), descriptor
-						.getCategory()) == -1) {
-					/* tab descriptor has unknown category */
-					handleTabError(tab, descriptor.getCategory() == null ? "" //$NON-NLS-1$
-							: descriptor.getCategory());
-				} else {
-					result.add(descriptor);
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Populates the given tab descriptors with section descriptors.
-	 */
-	protected void populateWithSectionDescriptors(List aTabDescriptors) {
-		ISectionDescriptor[] sections = null;
-		if (sectionDescriptorProvider != null) {
-			sections = sectionDescriptorProvider.getSectionDescriptors();
-		} else {
-			sections = readSectionDescriptors();
-		}
-		for (int i = 0; i < sections.length; i++) {
-			ISectionDescriptor section = sections[i];
-			appendToTabDescriptor(section, aTabDescriptors);
-		}
-	}
-
-	/**
-	 * Appends the given section to a tab from the list.
-	 */
-	protected void appendToTabDescriptor(ISectionDescriptor section,
-			List aTabDescriptors) {
-		for (Iterator i = aTabDescriptors.iterator(); i.hasNext();) {
-			TabDescriptor tab = (TabDescriptor) i.next();
-			if (tab.append(section)) {
-				return;
-			}
-		}
-		// could not append the section to any of the existing tabs - log error
-		String message = MessageFormat.format(NO_TAB_ERROR, new Object[] {
-				section.getId(), section.getTargetTab() });
-		IStatus status = new Status(IStatus.ERROR, TabbedPropertyViewPlugin
-				.getPlugin().getBundle().getSymbolicName(),
-				TabbedPropertyViewStatusCodes.NO_TAB_ERROR, message, null);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * Sorts the tab descriptors in the given list according to category.
-	 */
-	protected List sortTabDescriptorsByCategory(List descriptors) {
-		Collections.sort(descriptors, new Comparator() {
-
-			public int compare(Object arg0, Object arg1) {
-				TabDescriptor one = (TabDescriptor) arg0;
-				TabDescriptor two = (TabDescriptor) arg1;
-				String categoryOne = one.getCategory();
-				String categoryTwo = two.getCategory();
-				int categoryOnePosition = getIndex(
-						propertyCategories.toArray(), categoryOne);
-				int categoryTwoPosition = getIndex(
-						propertyCategories.toArray(), categoryTwo);
-				return categoryOnePosition - categoryTwoPosition;
-			}
-		});
-		return descriptors;
-	}
-
-	/**
-	 * Sorts the tab descriptors in the given list according to afterTab.
-	 */
-	protected List sortTabDescriptorsByAfterTab(List tabs) {
-		if (tabs.size() == 0 || propertyCategories == null) {
-			return tabs;
-		}
-		List sorted = new ArrayList();
-		int categoryIndex = 0;
-		for (int i = 0; i < propertyCategories.size(); i++) {
-			List categoryList = new ArrayList();
-			String category = (String) propertyCategories.get(i);
-			int topOfCategory = categoryIndex;
-			int endOfCategory = categoryIndex;
-			while (endOfCategory < tabs.size() &&
-					((TabDescriptor) tabs.get(endOfCategory)).getCategory()
-							.equals(category)) {
-				endOfCategory++;
-			}
-			for (int j = topOfCategory; j < endOfCategory; j++) {
-				TabDescriptor tab = (TabDescriptor) tabs.get(j);
-				if (tab.getAfterTab().equals(TOP)) {
-					categoryList.add(0, tabs.get(j));
-				} else {
-					categoryList.add(tabs.get(j));
-				}
-			}
-			Collections.sort(categoryList, new Comparator() {
-
-				public int compare(Object arg0, Object arg1) {
-					TabDescriptor one = (TabDescriptor) arg0;
-					TabDescriptor two = (TabDescriptor) arg1;
-					if (two.getAfterTab().equals(one.getId())) {
-						return -1;
-					} else if (one.getAfterTab().equals(two.getId())) {
-						return 1;
-					} else {
-						return 0;
-					}
-				}
-			});
-			for (int j = 0; j < categoryList.size(); j++) {
-				sorted.add(categoryList.get(j));
-			}
-			categoryIndex = endOfCategory;
-		}
-		return sorted;
-	}
-
-	/**
-	 * Gets the type mapper for the contributor.
-	 * 
-	 * @return the type mapper for the contributor.
-	 */
-	public ITypeMapper getTypeMapper() {
-		return typeMapper;
-	}
-
-	/**
-	 * Gets the label provider for the contributor.
-	 * 
-	 * @return the label provider for the contributor.
-	 */
-	public ILabelProvider getLabelProvider() {
-		return labelProvider;
-	}
-
-	/**
-	 * Gets the action provider for the contributor.
-	 * 
-	 * @return the action provider for the contributor.
-	 */
-	public IActionProvider getActionProvider() {
-		return actionProvider;
-	}
-
-	/**
-	 * Gets the tab list content provider for the contributor.
-	 * 
-	 * @return the tab list content provider for the contributor.
-	 */
-	public IStructuredContentProvider getTabListContentProvider() {
-		if (overridableTabListContentProvider) {
-			return new OverridableTabListContentProvider(this);
-		}
-		return new TabListContentProvider(this);
-	}
-
-	/**
-	 * Handle the tab error when an issue is found loading from the
-	 * configuration element.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element
-	 */
-	private void handleTabError(IConfigurationElement configurationElement,
-			String category) {
-		String pluginId = configurationElement.getDeclaringExtension()
-				.getNamespaceIdentifier();
-		String message = MessageFormat.format(TAB_ERROR, new Object[] {
-				pluginId, category });
-		IStatus status = new Status(IStatus.ERROR, pluginId,
-				TabbedPropertyViewStatusCodes.TAB_ERROR, message, null);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java
deleted file mode 100755
index c790711..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * Provides a section filtering mechanism where the selection is an
- * IStructuredSelection and filtering is based on class.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyRegistryClassSectionFilter {
-
-	private ITypeMapper typeMapper = null;
-
-	/**
-	 * Constructor for TabbedPropertyRegistryClassSectionFilter
-	 * 
-	 * @param typeMapper
-	 *            the type mapper.
-	 */
-	public TabbedPropertyRegistryClassSectionFilter(ITypeMapper typeMapper) {
-		super();
-		this.typeMapper = typeMapper;
-	}
-
-	/**
-	 * Verifies if the property section extension represented by sectionElement
-	 * applies to the given input.
-	 * @param descriptor the section descriptor.
-	 * @param selection the selection.
-	 * @return <code>true</code> if this section applies to the current
-	 *         selection.
-	 */
-	public boolean appliesToSelection(ISectionDescriptor descriptor,
-			ISelection selection) {
-
-		if (selection instanceof IStructuredSelection &&
-				selection.isEmpty() == false) {
-
-			if (descriptor.getEnablesFor() != ISectionDescriptor.ENABLES_FOR_ANY &&
-					((IStructuredSelection) selection).size() != descriptor
-							.getEnablesFor()) {
-				/**
-				 * enablesFor does not match the size of the selection, do not
-				 * display section.
-				 */
-				return false;
-			}
-
-			IFilter filter = descriptor.getFilter();
-
-			if (filter != null) {
-				for (Iterator i = ((IStructuredSelection) selection).iterator(); i
-						.hasNext();) {
-					Object object = i.next();
-
-					if (filter != null && filter.select(object) == false) {
-						/**
-						 * filter fails so section does not apply to the
-						 * selection, do not display section.
-						 */
-						return false;
-					}
-				}
-				/**
-				 * filter passes for all objects in the selection.
-				 */
-				return true;
-			}
-
-			Set effectiveTypes = new HashSet();
-
-			for (Iterator i = ((IStructuredSelection) selection).iterator(); i
-					.hasNext();) {
-
-				Object object = i.next();
-
-				Class remapType = object.getClass();
-				if (typeMapper != null) {
-					remapType = typeMapper.mapType(object);
-				}
-
-				if (effectiveTypes.add(remapType)) {
-
-					// the effective types of the selection
-					if (appliesToEffectiveType(descriptor, remapType) == false) {
-						return false;
-					}
-				}
-			}
-		}
-
-		return true;
-	}
-
-	private boolean appliesToEffectiveType(ISectionDescriptor descriptor,
-			Class inputClass) {
-
-		ArrayList classTypes = getClassTypes(inputClass);
-
-		List sectionInputTypes = descriptor.getInputTypes();
-		for (Iterator j = sectionInputTypes.iterator(); j.hasNext();) {
-			String type = (String) j.next();
-			if (classTypes.contains(type)) {
-				// found a match
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Returns the classes and interfaces the given target class
-	 * extends/implements.
-	 */
-	protected ArrayList getClassTypes(Class target) {
-		ArrayList result = new ArrayList();
-		// add classes
-		List classes = computeClassOrder(target);
-		for (Iterator i = classes.iterator(); i.hasNext();) {
-			result.add(((Class) i.next()).getName());
-		}
-		// add interfaces
-		result.addAll(computeInterfaceOrder(classes));
-		return result;
-	}
-
-	private List computeClassOrder(Class target) {
-		List result = new ArrayList(4);
-		Class clazz = target;
-		while (clazz != null) {
-			result.add(clazz);
-			clazz = clazz.getSuperclass();
-		}
-		return result;
-	}
-
-	private List computeInterfaceOrder(List classes) {
-		List result = new ArrayList(4);
-		Map seen = new HashMap(4);
-		for (Iterator iter = classes.iterator(); iter.hasNext();) {
-			Class[] interfaces = ((Class) iter.next()).getInterfaces();
-			internalComputeInterfaceOrder(interfaces, result, seen);
-		}
-		return result;
-	}
-
-	private void internalComputeInterfaceOrder(Class[] interfaces, List result,
-			Map seen) {
-		List newInterfaces = new ArrayList(seen.size());
-		for (int i = 0; i < interfaces.length; i++) {
-			Class interfac = interfaces[i];
-			if (seen.get(interfac) == null) {
-				result.add(interfac.getName());
-				seen.put(interfac, interfac);
-				newInterfaces.add(interfac);
-			}
-		}
-		for (Iterator iter = newInterfaces.iterator(); iter.hasNext();) {
-			internalComputeInterfaceOrder(
-					((Class) iter.next()).getInterfaces(), result, seen);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java
deleted file mode 100755
index 53714da..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-
-/**
- * tabbed property registry factory. Caches the tabbed property registry by
- * tabbed property contributor ID.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyRegistryFactory {
-
-	class CacheData {
-		TabbedPropertyRegistry registry;
-		List references;
-	}
-
-	/**
-	 * singleton instance of this class
-	 */
-	private static TabbedPropertyRegistryFactory INSTANCE = new TabbedPropertyRegistryFactory();
-
-	/**
-	 * get the singleton instance of this class.
-	 * 
-	 * @return the TabbedPropertyRegistryFactory instance.
-	 */
-	public static TabbedPropertyRegistryFactory getInstance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * private constructor.
-	 */
-	private TabbedPropertyRegistryFactory() {
-		super();
-		idToCacheData = new HashMap();
-	}
-
-	protected Map idToCacheData; // cache
-
-	/**
-	 * Creates a registry for the given contributor.
-	 * 
-	 * @param target
-	 *            the contributor.
-	 * @return a registry for the given contributor.
-	 */
-	public TabbedPropertyRegistry createRegistry(
-			ITabbedPropertySheetPageContributor target) {
-		/**
-		 * Get the contributor id from the ITabbedPropertySheetPageContributor
-		 * interface
-		 */
-		String key = target.getContributorId();
-		CacheData data = (CacheData) idToCacheData.get(key);
-		if (data == null) {
-			data = new CacheData();
-			data.registry = new TabbedPropertyRegistry(key);
-			data.references = new ArrayList(5);
-			idToCacheData.put(key, data);
-		}
-		data.references.add(target);
-		// keeps track of contributor using the same registry
-		return data.registry;
-	}
-
-	/**
-	 * Indicates that the given contributor no longer needs a registry. The
-	 * registry will be disposed when no other contributor of the same type
-	 * needs it.
-	 * 
-	 * @param target
-	 *            the contributor;
-	 */
-	public void disposeRegistry(ITabbedPropertySheetPageContributor target) {
-		/**
-		 * Get the contributor id from the ITabbedPropertySheetPageContributor
-		 * interface
-		 */
-		String key = target.getContributorId();
-		CacheData data = (CacheData) idToCacheData.get(key);
-		if (data != null) {
-			data.references.remove(target);
-			if (data.references.isEmpty()) {
-				idToCacheData.remove(key);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java
deleted file mode 100755
index e9fd1a8..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-
-/**
- * The title in the tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyTitle
-	extends Composite {
-
-	private CLabel label;
-
-	private Image image = null;
-
-	private String text = null;
-	
-	private static final String BLANK = ""; //$NON-NLS-1$
-
-	private static final String TITLE_FONT = "org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyTitle"; //$NON-NLS-1$
-	
-	private TabbedPropertySheetWidgetFactory factory;
-
-	/**
-	 * Constructor for TabbedPropertyTitle.
-	 * 
-	 * @param parent
-	 *            the parent composite.
-	 * @param factory
-	 *            the widget factory for the tabbed property sheet
-	 */
-	public TabbedPropertyTitle(Composite parent,
-			TabbedPropertySheetWidgetFactory factory) {
-		super(parent, SWT.NO_FOCUS);
-		this.factory = factory;
-
-		this.addPaintListener(new PaintListener() {
-
-			public void paintControl(PaintEvent e) {
-				if (image == null && (text == null || text.equals(BLANK))) {
-					label.setVisible(false);
-				} else {
-					label.setVisible(true);
-					drawTitleBackground(e);
-				}
-			}
-		});
-
-		factory.getColors().initializeSectionToolBarColors();
-		setBackground(factory.getColors().getBackground());
-		setForeground(factory.getColors().getForeground());
-
-		FormLayout layout = new FormLayout();
-		layout.marginWidth = 1;
-		layout.marginHeight = 2;
-		setLayout(layout);
-
-		Font font;
-		if (! JFaceResources.getFontRegistry().hasValueFor(TITLE_FONT)) {
-			FontData[] fontData = JFaceResources.getFontRegistry().getBold(
-					JFaceResources.DEFAULT_FONT).getFontData();
-			/* title font is 2pt larger than that used in the tabs. */  
-			fontData[0].setHeight(fontData[0].getHeight() + 2);
-			JFaceResources.getFontRegistry().put(TITLE_FONT, fontData);
-		}
-		font = JFaceResources.getFont(TITLE_FONT);
-		
-		label = factory.createCLabel(this, BLANK);
-		label.setBackground(new Color[] {
-				factory.getColors().getColor(IFormColors.H_GRADIENT_END),
-				factory.getColors().getColor(IFormColors.H_GRADIENT_START) },
-				new int[] { 100 }, true);
-		label.setFont(font);
-		label.setForeground(factory.getColors().getColor(IFormColors.TITLE));
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.top = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.bottom = new FormAttachment(100, 0);
-		label.setLayoutData(data);
-
-		/*
-		 * setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-		 * ISharedImages.IMG_OBJ_ELEMENT));
-		 */
-	}
-
-	/**
-	 * @param e
-	 */
-	protected void drawTitleBackground(PaintEvent e) {
-		Rectangle bounds = getClientArea();
-		label.setBackground(new Color[] {
-				factory.getColors().getColor(IFormColors.H_GRADIENT_END),
-				factory.getColors().getColor(IFormColors.H_GRADIENT_START) },
-				new int[] { 100 }, true);
-		Color bg = factory.getColors().getColor(IFormColors.H_GRADIENT_END);
-		Color gbg = factory.getColors().getColor(IFormColors.H_GRADIENT_START);
-		GC gc = e.gc;
-		gc.setForeground(bg);
-		gc.setBackground(gbg);
-		gc.fillGradientRectangle(bounds.x, bounds.y, bounds.width,
-				bounds.height, true);
-		// background bottom separator
-		gc.setForeground(factory.getColors().getColor(
-				IFormColors.H_BOTTOM_KEYLINE1));
-		gc.drawLine(bounds.x, bounds.height - 2, bounds.x + bounds.width - 1,
-				bounds.height - 2);
-		gc.setForeground(factory.getColors().getColor(
-				IFormColors.H_BOTTOM_KEYLINE2));
-		gc.drawLine(bounds.x, bounds.height - 1, bounds.x + bounds.width - 1,
-				bounds.height - 1);
-	}
-
-	/**
-	 * Set the text label.
-	 * 
-	 * @param text
-	 *            the text label.
-	 * @param image
-	 *            the image for the label.
-	 */
-	public void setTitle(String text, Image image) {
-		this.text = text;
-		this.image = image;
-		if (text != null) {
-			label.setText(text);
-		} else {
-			label.setText(BLANK); 
-		}
-		label.setImage(image);
-		redraw();
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java
deleted file mode 100755
index b0e3898..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Viewer representing the property sheet page. On the left side it 
- * contains a list of tabs and on the right side it contains the
- * current selected tab.
- * 
- * @author Anthony Hunter 
- */
-public class TabbedPropertyViewer extends StructuredViewer {
-
-	protected TabbedPropertyList list;
-	protected List elements;
-	protected IWorkbenchPart part;
-
-	/**
-	 * Constructor for TabbedPropertyViewer.
-	 * 
-	 * @param list
-	 *            the TabbedPropertyList.
-	 */
-	public TabbedPropertyViewer(TabbedPropertyList list) {
-		this.list = list;
-		hookControl(list);
-		elements = new ArrayList();
-	}
-
-	/**
-	 * Returns the element with the given index from this list viewer.
-	 * Returns <code>null</code> if the index is out of range.
-	 *
-	 * @param index the zero-based index
-	 * @return the element at the given index, or <code>null</code> if the
-	 *   index is out of range
-	 */
-	public Object getElementAt(int index) {
-		if (index >= 0 && index < elements.size()) {
-			return elements.get(index);
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the zero-relative index of the item which is currently
-	 * selected in the receiver, or -1 if no item is selected.
-	 *
-	 * @return the index of the selected item
-	 */
-	public int getSelectionIndex() {
-		return list.getSelectionIndex();
-	}
-
-	protected Widget doFindInputItem(Object element) {
-		/* not implemented */
-		return null;
-	}
-
-	protected Widget doFindItem(Object element) {
-		/* not implemented */
-		return null;
-	}
-
-	protected void doUpdateItem(Widget item, Object element, boolean fullMap) {
-		/* not implemented */
-	}
-
-	protected List getSelectionFromWidget() {
-		int index = list.getSelectionIndex();
-		if (index == TabbedPropertyList.NONE) {
-			return Collections.EMPTY_LIST;
-		}
-		List result = new ArrayList(1);
-		result.add(getElementAt(index));
-		return result;
-	}
-
-	protected void internalRefresh(Object element) {
-		/* not implemented */
-	}
-
-	public void reveal(Object element) {
-		/* not implemented */
-	}
-
-	/**
-	 * We do not consider multiple selections. Only the first
-	 * element will represent the selection.
-	 */
-	protected void setSelectionToWidget(List l, boolean reveal) {
-		if (l == null || l.size() == 0) { // clear selection
-			list.deselectAll();
-		} else {
-			Object object = l.get(0);
-			int index = -1;
-			for (int i = 0; i < elements.size(); i++) {
-				if (elements.get(i) == object) {
-					index = i;
-				}
-			}
-			Assert.isTrue(index != -1, "Could not set the selected tab in the tabbed property viewer");//$NON-NLS-1$
-			list.select(index);
-		}
-	}
-
-	public Control getControl() {
-		return list;
-	}
-
-	protected void inputChanged(Object input, Object oldInput) {
-		elements.clear();
-		Object[] children = getSortedChildren(getRoot());
-		list.removeAll();
-		for (int i = 0; i < children.length; i++) {
-			elements.add(children[i]);
-			mapElement(children[i], list);
-		}
-		list.setElements(children);
-	}
-
-	/**
-	 * Set the input for viewer.
-	 * 
-	 * @param part
-	 *            the workbench part.
-	 * @param selection
-	 *            the selection in the workbench part.
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		this.part = part;
-		setInput(selection);
-	}
-
-	/**
-	 * Get the current workbench part.
-	 * 
-	 * @return the current workbench part.
-	 */
-	public IWorkbenchPart getWorkbenchPart() {
-		return part;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractOverridableTabListPropertySection.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractOverridableTabListPropertySection.java
deleted file mode 100644
index 1b8b45a..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractOverridableTabListPropertySection.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-/**
- * An abstract implementation of a section in a tab that overrides the tabs that
- * are provided by the tabbed property registry with a new list of tabs.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class AbstractOverridableTabListPropertySection
-	extends AbstractPropertySection
-	implements IOverridableTabList {
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.views.properties.tabbed.IOverridableTabList#getTabs()
-	 */
-	public ITabItem[] getTabs() {
-		return new ITabItem[] {};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.views.properties.tabbed.IOverridableTabList#selectTab(int)
-	 */
-	public void selectTab(int tab) {
-		/* no default implementation */
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractPropertySection.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractPropertySection.java
deleted file mode 100644
index ae5276e..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractPropertySection.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * An abstract implementation of a section in a tab in the tabbed property sheet
- * page.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractPropertySection
-	implements ISection {
-
-	/**
-	 * The standard label width when labels for sections line up on the left
-	 * hand side of the composite.
-	 */
-	public static final int STANDARD_LABEL_WIDTH = 85;
-
-	/**
-	 * The tabbed property sheet page
-	 */
-	private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-	/**
-	 * The current workbench selection.
-	 */
-	private ISelection selection;
-
-	/**
-	 * The current active workbench part.
-	 */
-	private IWorkbenchPart part;
-
-	/**
-	 * Get the widget factory for the property sheet page.
-	 * 
-	 * @return the widget factory.
-	 */
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return tabbedPropertySheetPage.getWidgetFactory();
-	}
-
-	/**
-	 * Get the current workbench selection.
-	 * 
-	 * @return the current workbench selection.
-	 */
-	public ISelection getSelection() {
-		return selection;
-	}
-
-	/**
-	 * @return Returns the part.
-	 */
-	public IWorkbenchPart getPart() {
-		return part;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		this.tabbedPropertySheetPage = aTabbedPropertySheetPage;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		this.selection = selection;
-		this.part = part;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#aboutToBeShown()
-	 */
-	public void aboutToBeShown() {
-		/* empty default implementation */
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#aboutToBeHidden()
-	 */
-	public void aboutToBeHidden() {
-		/* empty default implementation */
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
-	 */
-	public void dispose() {
-		/* empty default implementation */
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#getMinimumHeight()
-	 */
-	public int getMinimumHeight() {
-		return SWT.DEFAULT;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
-	 */
-	public boolean shouldUseExtraSpace() {
-		return false;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
-	 */
-	public void refresh() {
-		/* empty default implementation */
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractSectionDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractSectionDescriptor.java
deleted file mode 100644
index 54c34c5..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractSectionDescriptor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.views.properties.tabbed;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistryClassSectionFilter;
-
-/**
- * An abstract implementation of a section descriptor for the tabbed property
- * view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public abstract class AbstractSectionDescriptor implements ISectionDescriptor {
-
-	private TabbedPropertyRegistryClassSectionFilter classFilter;
-
-	/**
-	 * Constructor for AbstractSectionDescriptor.
-	 */
-	public AbstractSectionDescriptor() {
-		super();
-		classFilter = new TabbedPropertyRegistryClassSectionFilter(null);
-	}
-
-	/**
-	 * Constructor for AbstractSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the type mapper for the section.
-	 */
-	public AbstractSectionDescriptor(ITypeMapper typeMapper) {
-		super();
-		classFilter = new TabbedPropertyRegistryClassSectionFilter(typeMapper);
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean appliesTo(IWorkbenchPart part, ISelection selection) {
-		return classFilter.appliesToSelection(this, selection);
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getAfterSection()
-	 */
-	public String getAfterSection() {
-		return TOP;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getEnablesFor()
-	 */
-	public int getEnablesFor() {
-		return ENABLES_FOR_ANY;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getFilter()
-	 */
-	public IFilter getFilter() {
-		return null;
-	}
-
-	public List getInputTypes() {
-		return new ArrayList();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTabDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTabDescriptor.java
deleted file mode 100644
index 124733f..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTabDescriptor.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.views.properties.tabbed;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin;
-
-/**
- * An abstract implementation of a tab descriptor for the tabbed property view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public abstract class AbstractTabDescriptor implements ITabDescriptor,
-		Cloneable {
-
-	private List sectionDescriptors;
-
-	/**
-	 * Constructor for AbstractTabDescriptor.
-	 */
-	public AbstractTabDescriptor() {
-		super();
-		sectionDescriptors = new ArrayList(5);
-	}
-
-	/*
-	 * @see java.lang.Object#clone()
-	 */
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException exception) {
-			IStatus status = new Status(IStatus.ERROR, TabbedPropertyViewPlugin
-					.getPlugin().getBundle().getSymbolicName(), 666, exception
-					.getMessage(), exception);
-			TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-		}
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabDescriptor#createTab()
-	 */
-	public TabContents createTab() {
-		List sections = new ArrayList(getSectionDescriptors().size());
-		for (Iterator iter = getSectionDescriptors().iterator(); iter.hasNext();) {
-			ISectionDescriptor descriptor = (ISectionDescriptor) iter.next();
-			ISection section = descriptor.getSectionClass();
-			sections.add(section);
-		}
-		TabContents tab = new TabContents();
-		tab.setSections((ISection[]) sections.toArray(new ISection[sections
-				.size()]));
-		return tab;
-	}
-
-	/*
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object object) {
-		if (this == object) {
-			return true;
-		}
-
-		if (this.getClass() == object.getClass()) {
-			AbstractTabDescriptor descriptor = (AbstractTabDescriptor) object;
-			if (this.getCategory().equals(descriptor.getCategory()) &&
-					this.getId().equals(descriptor.getId()) &&
-					this.getSectionDescriptors().size() == descriptor
-							.getSectionDescriptors().size()) {
-
-				Iterator i = this.getSectionDescriptors().iterator();
-				Iterator j = descriptor.getSectionDescriptors().iterator();
-
-				// the order is important here - so as long as the sizes of the
-				// lists are the same and id of the section at the same
-				// positions are the same - the lists are the same
-				while (i.hasNext()) {
-					ISectionDescriptor source = (ISectionDescriptor) i.next();
-					ISectionDescriptor target = (ISectionDescriptor) j.next();
-					if (!source.getId().equals(target.getId())) {
-						return false;
-					}
-				}
-
-				return true;
-			}
-
-		}
-
-		return false;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabDescriptor#getAfterTab()
-	 */
-	public String getAfterTab() {
-		return TOP;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#getImage()
-	 */
-	public Image getImage() {
-		return null;
-	}
-
-	/**
-	 * Get the list of section descriptors for the tab.
-	 * 
-	 * @return the list of section descriptors for the tab.
-	 */
-	public List getSectionDescriptors() {
-		return sectionDescriptors;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#getText()
-	 */
-	public String getText() {
-		return getLabel();
-	}
-
-	/*
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-
-		int hashCode = getCategory().hashCode();
-		hashCode ^= getId().hashCode();
-		Iterator i = this.getSectionDescriptors().iterator();
-		while (i.hasNext()) {
-			ISectionDescriptor section = (ISectionDescriptor) i.next();
-			hashCode ^= section.getId().hashCode();
-		}
-		return hashCode;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#isIndented()
-	 */
-	public boolean isIndented() {
-		return false;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#isSelected()
-	 */
-	public boolean isSelected() {
-		return false;
-	}
-
-	/**
-	 * Set the list of section descriptors for the tab.
-	 * 
-	 * @param sectionDescriptors
-	 *            the list of section descriptors for the tab.
-	 */
-	public void setSectionDescriptors(List sectionDescriptors) {
-		this.sectionDescriptors = sectionDescriptors;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTypeMapper.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTypeMapper.java
deleted file mode 100644
index a2503d8..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTypeMapper.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-/**
- * Default implementation of a type mapper.
- * 
- * @author Anthony Hunter
- */
-public class AbstractTypeMapper
-    implements ITypeMapper {
-
-    public Class mapType(Object object) {
-        return object.getClass();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java
deleted file mode 100644
index e61a0d1..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyComposite;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-
-/**
- * An advanced section that is intended to show the original table format properties view
- * provided by base Eclipse.
- * 
- * @author Anthony Hunter 
- */
-public class AdvancedPropertySection
-	extends AbstractPropertySection {
-
-	/**
-	 * The Property Sheet Page.
-	 */
-	protected PropertySheetPage page;
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			final TabbedPropertySheetPage atabbedPropertySheetPage) {
-		super.createControls(parent, atabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-			.createFlatFormComposite(parent);
-		page = new PropertySheetPage();
-
-		page.createControl(composite);
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		data.bottom = new FormAttachment(100, 0);
-		page.getControl().setLayoutData(data);
-		
-		page.getControl().addControlListener(new ControlAdapter() {
-
-			public void controlResized(ControlEvent e) {
-				// workaround for Bugzilla 140314 since we cannot call
-				// atabbedPropertySheetPage.resizeScrolledComposite();
-				TabbedPropertyComposite composite = (TabbedPropertyComposite)atabbedPropertySheetPage.getControl();
-				ScrolledComposite scrolledComposite = composite.getScrolledComposite();
-				Event event = new Event();
-				event.type = SWT.Resize;
-				event.widget = scrolledComposite;
-				composite.getScrolledComposite().notifyListeners(SWT.Resize, event);
-			}
-		});
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		super.setInput(part, selection);
-		page.selectionChanged(part, selection);
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-
-		if (page != null) {
-			page.dispose();
-			page = null;
-		}
-
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
-	 */
-	public void refresh() {
-		page.refresh();
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
-	 */
-	public boolean shouldUseExtraSpace() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IActionProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IActionProvider.java
deleted file mode 100644
index f44d417..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IActionProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.ui.IActionBars;
-
-/**
- * Allows a tabbed properties view to make contributions to action bars.
- * <p>
- * An action provider is called when the tabbed properties view becomes the
- * active view. It is at this point where the action provider can override the
- * action bars.
- * </p>
- * <p>
- * Normally {@link TabbedPropertySheetPage#setActionBars(IActionBars)} is
- * sufficient, but this is only called once and is not sufficient for a
- * contributor that is selection based. An example is the Project Explorer where
- * different providers contribute different action sets and properties
- * configurations.
- * </p>
- * <p>
- * The most frequent use of setActionBars() is to retarget the global actions
- * for undo and redo based on the active tabbed properties view contributor.
- * </p>
- * 
- * @author Anthony Hunter
- * @since 3.2.1
- */
-public interface IActionProvider {
-
-    /**
-     * Allows the page to make contributions to the given action bars. The
-     * contributions will be visible when the page is visible.
-     * 
-     * @param contributor
-     *            the tabbed property sheet page contributor.
-     * @param actionBars
-     *            the action bars for this page
-     */
-    public void setActionBars(ITabbedPropertySheetPageContributor contributor,
-            IActionBars actionBars);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabList.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabList.java
deleted file mode 100644
index 8ba2c7e..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabList.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-/**
- * Represents a list of tabs. Used by a section that overrides the tabs that are
- * provided by the tabbed property registry with a new list of tabs.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface IOverridableTabList {
-
-	/**
-	 * Returns the list of tabs.
-	 * 
-	 * @return the list of tabs.
-	 */
-	public ITabItem[] getTabs();
-
-	/**
-	 * Select the tab at the provided index.
-	 * 
-	 * @param index
-	 *            the index in the list of tabs to select.
-	 */
-	public void selectTab(int index);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabListContentProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabListContentProvider.java
deleted file mode 100644
index 76991cd..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabListContentProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-
-/**
- * A content provider for the tabbed property sheet page's list of tabs. Used by
- * a section that overrides the tabs that are provided by the tabbed property
- * registry with a new list of tabs.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
-
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface IOverridableTabListContentProvider extends IStructuredContentProvider {
-
-	/**
-	 * Override the tabs displayed in the tab list with a new list of tabs.
-	 */
-	public void overrideTabs();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISection.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISection.java
deleted file mode 100644
index ddc6388..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISection.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Represents a section of properties for a given input.
- * <p>
- * The lifecycle of an ISection is as follows:
- * <ul>
- * <li><code>ISection.createControls()</code></li>
- * <li><code>ISection.setInput()</code></li>
- * <li><code>ISection.aboutToBeShown()</code></li>
- * <li><code>ISection.refresh()</code></li>
- * <li><code>ISection.aboutToBeHidden()</code></li>
- * <li><code>ISection.dispose()</code></li>
- * </ul>
- * </p>
- * <p>
- * Implementors of this class should be aware that a section instance might be
- * reused for different input objects (as long as they are valid section
- * inputs). It means that <code>ISection.setInput</code> can be called at any
- * time between <code>ISection.createControls</code> and
- * <code>ISection.dispose</code>.
- * </p>
- * <p>
- * When an input change event occurs, such as a tab selection or a workbench
- * selection change, an ISection is sent:
- * <ul>
- * <li><code>ISection.setInput()</code></li>
- * <li><code>ISection.refresh()</code></li>
- * </ul>
- * </p>
- * <p>
- * When an part activation event occurs, such as the contributor part activation
- * event, an ISection is sent:
- * <ul>
- * <li><code>ISection.setInput()</code></li>
- * <li><code>ISection.aboutToBeShown()</code></li>
- * <li><code>ISection.refresh()</code></li>
- * <li><code>ISection.setInput()</code></li>
- * <li><code>ISection.refresh()</code></li>
- * </ul>
- * This is because both a tab selection event and an input selection event have
- * occurred.
- * </p>
- * <p>
- * This interface should not be extended or implemented. New section instances
- * should be created using <code>AbstractPropertySection</code>.
- * </p>
- * @see org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage
- * 
- * @author Anthony Hunter
- */
-public interface ISection {
-
-	/**
-	 * Creates the controls for the section.
-	 * <p>
-	 * Clients should take advantage of the widget factory provided by the
-	 * framework to achieve a common look between property sections.
-	 * </p>
-	 * @see org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage#getWidgetFactory()
-	 * 
-	 * @param parent
-	 *            the parent composite for the section.
-	 * @param tabbedPropertySheetPage
-	 *            the tabbed property sheet page.
-	 */
-	public abstract void createControls(Composite parent,
-			TabbedPropertySheetPage tabbedPropertySheetPage);
-
-	/**
-	 * Notifies the section that the workbench selection has changed. 
-	 * @param part The active workench part.
-	 * @param selection The active selection in the workbench part.
-	 */
-	public abstract void setInput(IWorkbenchPart part, ISelection selection);
-
-	/**
-	 * Notifies the section that its controls are about to be shown. It is
-	 * expected that sections enable domain related functions in this method,
-	 * most commonly add listeners.
-	 * <p>
-	 * Since the controls are not visible, the section should wait for the
-	 * refresh() before updating the section controls.
-	 * </p>
-	 */
-	public abstract void aboutToBeShown();
-
-	/**
-	 * Notifies the section that its controls are about to be hidden. It is
-	 * expected that sections disable domain related functions in this method,
-	 * most commonly remove listeners.
-	 */
-	public abstract void aboutToBeHidden();
-
-	/**
-	 * Dispose this section.
-	 */
-	public abstract void dispose();
-
-	/**
-	 * Returns the minimum height needed by this section. A return value of
-	 * <code>SWT.DEFAULT</code> indicates that no minimum height is defined.
-	 * 
-	 * @return the minimum height needed by this section.
-	 */
-	public abstract int getMinimumHeight();
-
-	/**
-	 * Determine whether this section would like extra height space in case
-	 * there is some left. Normally this is true when the section is the last to
-	 * be displayed on a tab or is the only section on a tab.
-	 * @return <code>true</code> if this section would like extra height space.
-	 */
-	public abstract boolean shouldUseExtraSpace();
-
-	/**
-	 * Refresh the contents of the controls displayed in this section.
-	 */
-	public abstract void refresh();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java
deleted file mode 100644
index ad1ed18..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Represents a section descriptor on the tabbed property sections extensions.
- * <p>
- * This interface should not be extended or implemented. New instances should be
- * created using <code>AbstractSectionDescriptor</code>.
- * </p>
- * 
- * @author Anthony Hunter
- */
-public interface ISectionDescriptor {
-
-	/**
-	 * If enabledFor is not specified in the descriptor, enable for any
-	 * selection.
-	 */
-	public final int ENABLES_FOR_ANY = -1;
-
-	/**
-	 * If afterSection is not specified in the descriptor, we default to be the
-	 * top section.
-	 * @since 3.4
-	 */
-	public static final String TOP = "top"; //$NON-NLS-1$
-
-	/**
-	 * Get the unique identifier for the section.
-	 * 
-	 * @return the unique identifier for the section.
-	 */
-	public String getId();
-
-	/**
-	 * Get the section filter instance for this section. Return null if no
-	 * filter for this section.
-	 * 
-	 * @return the section filter instance.
-	 */
-	public IFilter getFilter();
-
-	/**
-	 * Get the valid input types for this section.
-	 * 
-	 * @return the valid input types for this section.
-	 */
-	public List getInputTypes();
-
-	/**
-	 * Get the class that implements this section.
-	 * 
-	 * @return the class that implements this section.
-	 */
-	public ISection getSectionClass();
-
-	/**
-	 * Get the target tab where this section will appear.
-	 * 
-	 * @return the target tab where this section will appear.
-	 */
-	public String getTargetTab();
-
-	/**
-	 * Get the value for section enablement which is a precise number of items
-	 * selected. For example: enablesFor="1" enables the section only when one
-	 * item is selected. If not specified, enable for any selection and return
-	 * ENABLES_FOR_ANY.
-	 * 
-	 * @return the value for section enablement.
-	 */
-	public int getEnablesFor();
-
-	/**
-	 * Determines if this section applies to the selection.
-	 * 
-	 * @param part
-	 *            the current workbench part.
-	 * @param selection
-	 *            the selection.
-	 * @return <code>true</code> if this section applies to the current
-	 *         selection.
-	 */
-	public boolean appliesTo(IWorkbenchPart part, ISelection selection);
-
-	/**
-	 * Get the section identifier below which this section is displayed.
-	 * <code>"top"</code> is returned if this section is the top most section
-	 * or if there is one section in the tab.
-	 * 
-	 * @return the section identifier.
-	 */
-	public String getAfterSection();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptorProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptorProvider.java
deleted file mode 100644
index e47aeb4..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptorProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-/**
- * Represents a section descriptor provider for tabbed property sections.
- * 
- * @author Anthony Hunter
- */
-public interface ISectionDescriptorProvider {
-
-	/**
-	 * Returns all section descriptors for the contributor.
-	 * @return all section descriptors.
-	 */
-	public ISectionDescriptor[] getSectionDescriptors();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptor.java
deleted file mode 100644
index 2680e3f..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptor.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.views.properties.tabbed;
-
-import java.util.List;
-
-/**
- * Represents a tab descriptor for the tabbed property view.
- * <p>
- * This interface should not be extended or implemented. New instances should be
- * created using <code>AbstractTabDescriptor</code>.
- * </p>
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface ITabDescriptor extends ITabItem {
-
-	/**
-	 * If afterTab is not specified in the descriptor, we default to be the top
-	 * tab.
-	 */
-	public static final String TOP = "top"; //$NON-NLS-1$
-
-	/**
-	 * Instantiate this tab's sections.
-	 * 
-	 * @return The tab contents for this section.
-	 */
-	public TabContents createTab();
-
-	/**
-	 * Get the identifier of the tab after which this tab should be displayed.
-	 * When two or more tabs belong to the same category, they are sorted by the
-	 * after tab values.
-	 * 
-	 * @return the identifier of the tab.
-	 */
-	public String getAfterTab();
-
-	/**
-	 * Get the category this tab belongs to.
-	 * 
-	 * @return Get the category this tab belongs to.
-	 */
-	public String getCategory();
-
-	/**
-	 * Get the unique identifier for the tab.
-	 * 
-	 * @return the unique identifier for the tab.
-	 */
-	public String getId();
-
-	/**
-	 * Get the text label for the tab.
-	 * 
-	 * @return the text label for the tab.
-	 */
-	public String getLabel();
-
-	/**
-	 * Get the list of section descriptors for the tab.
-	 * 
-	 * @return the list of section descriptors for the tab.
-	 */
-	public List getSectionDescriptors();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptorProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptorProvider.java
deleted file mode 100644
index 3583d4e..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptorProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Represents a tab descriptor provider for the tabbed property view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface ITabDescriptorProvider {
-
-	/**
-	 * Returns all tab descriptors.
-	 * 
-	 * @param part
-	 *            the workbench part containing the selection
-	 * @param selection
-	 *            the current selection.
-	 * @return all section descriptors.
-	 */
-	public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,
-			ISelection selection);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabItem.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabItem.java
deleted file mode 100644
index 9cd387c..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabItem.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Represents a tab to be displayed in the tab list in the tabbed property sheet
- * page.
- * 
- * @author Anthony Hunter 
- */
-public interface ITabItem {
-
-	/**
-	 * Get the icon image for the tab.
-	 * 
-	 * @return the icon image for the tab.
-	 */
-	public Image getImage();
-
-	/**
-	 * Get the text label for the tab.
-	 * 
-	 * @return the text label for the tab.
-	 */
-	public String getText();
-
-	/**
-	 * Determine if this tab is selected.
-	 * 
-	 * @return <code>true</code> if this tab is selected.
-	 */
-	public boolean isSelected();
-
-	/**
-	 * Determine if this tab is indented.
-	 * 
-	 * @return <code>true</code> if this tab is indented.
-	 */
-	public boolean isIndented();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java
deleted file mode 100644
index ac662c7..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-/**
- * A listener interested in tab selection events that occur for the tabbed
- * property sheet page.
- * 
- * @author Anthony Hunter 
- */
-public interface ITabSelectionListener {
-
-	/**
-	 * Notifies this listener that the selected tab has changed.
-	 * 
-	 * @param tabDescriptor
-	 *            the selected tab descriptor.
-	 * @since 3.4
-	 */
-	public void tabSelected(ITabDescriptor tabDescriptor);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertyConstants.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertyConstants.java
deleted file mode 100644
index 8b9395c..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertyConstants.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-/**
- * Constants used by the implementors of ITabbedPropertySection.
- * 
- * @author Anthony Hunter 
- */
-public interface ITabbedPropertyConstants {
-
-	/**
-	 * These horizontal margin around the composite.
-	 * Each section should use a margin of 0, 0.
-	 */
-	public static final int HMARGIN = 6;
-	
-	/**
-	 * These horizontal margin around the composite.
-	 */
-	public static final int VMARGIN = 6;
-
-	/**
-	 * Horizontal space to leave between related widgets. 
-	 * Each section should use these values for spacing its widgets. 
-	 * For example, you can use +/- HSPACE as the offset of a left or 
-	 * right FlatFormAttachment.
-	 * 
-	 * The tabbed property composite also inserts VSPACE pixels between 
-	 * section composites if more than one section is displayed.  
-	 */
-	public static final int HSPACE = 5;
-	
-	/**
-	 * Horizontal space to leave between related widgets.
-	 */ 
-	public static final int VSPACE = 4;
-
-	/**
-	 * Space to leave between the center of the property tab and the closest
-	 * widget to the left or right. I.e. for a property tab whose widgets are
-	 * logically divided into two halves, the total space between the halves
-	 * should be 2*CENTER_SPACE.
-	 */
-	public static final int CENTER_SPACE = 10;
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertySheetPageContributor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertySheetPageContributor.java
deleted file mode 100644
index 3b5b009..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertySheetPageContributor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-/**
- * Interface for a workbench part to contribute content to the tabbed property
- * view.
- * <p>
- * It is expected that the contributor ID is unique for a configuration of tabs
- * and sections. Editors and views can share a configuration by sharing a
- * contributor ID. Editors and views cannot share tabs and sections from
- * multiple contributors.
- * </p>
- * <p>
- * As a workaround, if all the elements in a structured selection implement
- * ITabbedPropertySheetPageContributor and they all return the same unique
- * contributor ID, then that configuration of tabs and sections will be used by
- * the tabbed property view for that selection.
- * </p>
- * 
- * @author Anthony Hunter
- */
-public interface ITabbedPropertySheetPageContributor {
-
-	/**
-	 * Returns the contributor ID for the tabbed property sheet page.
-	 * 
-	 * @return the contributor ID for the tabbed property sheet page.
-	 */
-	public String getContributorId();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITypeMapper.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITypeMapper.java
deleted file mode 100644
index 66939d8..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITypeMapper.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-/**
- * Allows property sheet page contributors to map the input object type to a
- * domain model type. The domain model type is then used for matching against
- * the input attribute of the propertySection extension.
- * <p>
- * The type mapper is most frequently used to return the type of the model
- * object when selecting a view object in a workbench part. For example, nodes
- * in a tree may all be TreeObjects in a structured selection. The type mapper
- * will take the tree node and return the type of the model object the node
- * represents.
- * </p>
- * <p>
- * This interface should not be extended or implemented. New type mapper instances
- * should be created using <code>AbstractTypeMapper</code>.
- * </p>
- * 
- * @author Anthony Hunter
- */
-public interface ITypeMapper {
-
-	/**
-	 * Map the input object to a domain model type.
-	 * 
-	 * @param object
-	 *            the input object.
-	 * @return the type of the input object, mapped to the domain type if
-	 *         required.
-	 */
-	public Class mapType(Object object);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabContents.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabContents.java
deleted file mode 100644
index ec95fde..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabContents.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * A property tab is composed by one or more property sections and is used to
- * categorize sections.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public final class TabContents {
-
-    private ISection[] sections;
-
-    private boolean controlsCreated;
-
-    /**
-     * 
-     */
-    public TabContents() {
-        controlsCreated = false;
-    }
-
-    /**
-     * Retrieve a numbered index for the section.
-     * @param section the section.
-     * @return the section index.
-     */
-    public int getSectionIndex(ISection section) {
-        for (int i = 0; i < sections.length; i++) {
-			if (section == sections[i]) {
-				return i;
-			}
-		}
-        return -1;
-    }
-
-    /**
-     * Retrieve the section at a numbered index.
-     * @param i a numbered index.
-     * @return the section.
-     */
-    public ISection getSectionAtIndex(int i) {
-        if (i >= 0 && i < sections.length) {
-			return sections[i];
-		}
-        return null;
-    }
-
-    /**
-     * Retrieve the sections on the tab.
-     * 
-     * @return the sections on the tab.
-     */
-    public ISection[] getSections() {
-        return sections;
-    }
-
-    /**
-     * Creates page's sections controls.
-     * 
-     * @param parent
-     * @param page
-     */
-    public void createControls(Composite parent,
-            final TabbedPropertySheetPage page) {
-        Composite pageComposite = page.getWidgetFactory().createComposite(
-            parent, SWT.NO_FOCUS);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        layout.verticalSpacing = 0;
-        pageComposite.setLayout(layout);
-
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            final Composite sectionComposite = page.getWidgetFactory()
-                .createComposite(pageComposite, SWT.NO_FOCUS);
-            sectionComposite.setLayout(new FillLayout());
-            int style = (section.shouldUseExtraSpace()) ? GridData.FILL_BOTH
-                : GridData.FILL_HORIZONTAL;
-            GridData data = new GridData(style);
-            data.heightHint = section.getMinimumHeight();
-            sectionComposite.setLayoutData(data);
-
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.createControls(sectionComposite, page);
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-        controlsCreated = true;
-    }
-
-    /**
-     * Dispose of page's sections controls.
-     */
-    public void dispose() {
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.dispose();
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-    }
-
-    /**
-     * Sends the lifecycle event to the page's sections.
-     */
-    public void aboutToBeShown() {
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.aboutToBeShown();
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-    }
-
-    /**
-     * Sends the lifecycle event to the page's sections.
-     */
-    public void aboutToBeHidden() {
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.aboutToBeHidden();
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-    }
-
-    /**
-     * Sets page's sections input objects.
-     * 
-     * @param part
-     * @param selection
-     */
-    public void setInput(final IWorkbenchPart part, final ISelection selection) {
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.setInput(part, selection);
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-    }
-
-    /**
-     * Set the sections for the tab.
-     * 
-     * @param sections the sections for the tab.
-     */
-    public void setSections(ISection[] sections) {
-        this.sections = sections;
-    }
-
-    /**
-     * Determine if the controls have been created.
-     * 
-     * @return <code>true</code> if controls have been created.
-     */
-    public boolean controlsHaveBeenCreated() {
-        return controlsCreated;
-    }
-
-    /**
-     * If controls have been created, refresh all sections on the page.
-     */
-    public void refresh() {
-        if (controlsCreated) {
-            for (int i = 0; i < sections.length; i++) {
-                final ISection section = sections[i];
-                ISafeRunnable runnable = new SafeRunnable() {
-
-                    public void run()
-                        throws Exception {
-                        section.refresh();
-                    }
-                };
-                SafeRunnable.run(runnable);
-            }
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java
deleted file mode 100644
index 509286c..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java
+++ /dev/null
@@ -1,948 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyComposite;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistry;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistryFactory;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyTitle;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyViewer;
-import org.eclipse.ui.part.IContributedContentsView;
-import org.eclipse.ui.part.Page;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheet;
-
-/**
- * A property sheet page that provides a tabbed UI.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertySheetPage
-	extends Page
-	implements IPropertySheetPage, ILabelProviderListener {
-
-	// widgets
-	private TabbedPropertyComposite tabbedPropertyComposite;
-
-	private TabbedPropertySheetWidgetFactory widgetFactory;
-
-	private ITabbedPropertySheetPageContributor contributor;
-
-	private TabbedPropertyRegistry registry;
-
-	private ITabbedPropertySheetPageContributor selectionContributor = null;
-
-	/**
-	 * The currently active contributor id, which may not match the contributor
-	 * id from the workbench part that created this instance.
-	 */
-	private String currentContributorId;
-
-	protected IStructuredContentProvider tabListContentProvider;
-
-	private ISelection currentSelection;
-
-	private boolean activePropertySheet;
-
-	private TabbedPropertyViewer tabbedPropertyViewer;
-
-	private TabContents currentTab;
-
-	private Map descriptorToTab;
-
-	private Map tabToComposite;
-
-	private List selectionQueue;
-
-	private boolean selectionQueueLocked;
-
-	private List tabSelectionListeners;
-
-	private IWorkbenchWindow cachedWorkbenchWindow;
-
-	private boolean hasTitleBar;
-
-	/**
-	 * a listener that is interested in part activation events.
-	 */
-	private IPartListener partActivationListener = new IPartListener() {
-
-		public void partActivated(IWorkbenchPart part) {
-			handlePartActivated(part);
-		}
-
-		public void partBroughtToTop(IWorkbenchPart part) {
-		}
-
-		public void partClosed(IWorkbenchPart part) {
-		}
-
-		public void partDeactivated(IWorkbenchPart part) {
-		}
-
-		public void partOpened(IWorkbenchPart part) {
-		}
-	};
-
-	private class TabbedPropertySheetPageContributorFromSelection
-		implements ITabbedPropertySheetPageContributor {
-
-		private String contributorId;
-
-		/**
-		 * Constructor that takes in a contributor id taken from a selection.
-		 * 
-		 * @param contributorId
-		 *            the contributor id.
-		 */
-		public TabbedPropertySheetPageContributorFromSelection(
-				String contributorId) {
-			super();
-			this.contributorId = contributorId;
-		}
-
-		/**
-		 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
-		 */
-		public String getContributorId() {
-			return contributorId;
-		}
-
-	}
-
-	/**
-	 * Label provider for the ListViewer.
-	 */
-	class TabbedPropertySheetPageLabelProvider
-		extends LabelProvider {
-
-		public String getText(Object element) {
-			if (element instanceof ITabDescriptor) {
-				return ((ITabDescriptor) element).getLabel();
-			}
-			return null;
-		}
-	}
-
-	/**
-	 * SelectionChangedListener for the ListViewer.
-	 */
-	class SelectionChangedListener
-		implements ISelectionChangedListener {
-
-		/**
-		 * Shows the tab associated with the selection.
-		 */
-		public void selectionChanged(SelectionChangedEvent event) {
-			IStructuredSelection selection = (IStructuredSelection) event
-				.getSelection();
-			TabContents tab = null;
-			ITabDescriptor descriptor = (ITabDescriptor) selection
-					.getFirstElement();
-
-			if (descriptor == null) {
-				// pretend the tab is empty.
-				hideTab(currentTab);
-			} else {
-				// create tab if necessary
-				// can not cache based on the id - tabs may have the same id,
-				// but different section depending on the selection
-				tab = (TabContents) descriptorToTab.get(descriptor);
-
-				if (tab != currentTab) {
-					hideTab(currentTab);
-				}
-
-				Composite tabComposite = (Composite) tabToComposite.get(tab);
-				if (tabComposite == null) {
-					tabComposite = createTabComposite();
-					tab.createControls(tabComposite,
-						TabbedPropertySheetPage.this);
-					// tabAreaComposite.layout(true);
-					tabToComposite.put(tab, tabComposite);
-				}
-				// force widgets to be resized
-				tab.setInput(tabbedPropertyViewer.getWorkbenchPart(),
-					(ISelection) tabbedPropertyViewer.getInput());
-
-				// store tab selection
-				storeCurrentTabSelection(descriptor.getLabel());
-
-				if (tab != currentTab) {
-					showTab(tab);
-				}
-
-				tab.refresh();
-			}
-			tabbedPropertyComposite.getTabComposite().layout(true);
-			currentTab = tab;
-			resizeScrolledComposite();
-
-			if (descriptor != null) {
-				handleTabSelection(descriptor);
-			}
-		}
-
-		/**
-		 * Shows the given tab.
-		 */
-		private void showTab(TabContents target) {
-			if (target != null) {
-				Composite tabComposite = (Composite) tabToComposite.get(target);
-				if (tabComposite != null) {
-					/**
-					 * the following method call order is important - do not
-					 * change it or the widgets might be drawn incorrectly
-					 */
-					tabComposite.moveAbove(null);
-					target.aboutToBeShown();
-					tabComposite.setVisible(true);
-				}
-			}
-		}
-
-		/**
-		 * Hides the given tab.
-		 */
-		private void hideTab(TabContents target) {
-			if (target != null) {
-				Composite tabComposite = (Composite) tabToComposite.get(target);
-				if (tabComposite != null) {
-					target.aboutToBeHidden();
-					tabComposite.setVisible(false);
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * create a new tabbed property sheet page.
-	 * 
-	 * @param tabbedPropertySheetPageContributor
-	 *            the tabbed property sheet page contributor.
-	 */
-	public TabbedPropertySheetPage(
-			ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor) {
-		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 registry.getTabListContentProvider();
-	}
-
-	/**
-	 * Dispose the contributor with the provided contributor id. This happens on
-	 * part close as well as when contributors switch between the workbench
-	 * part and contributor from a selection.
-	 */
-	private void disposeContributor() {
-		/**
-		 * If the current tab is about to be disposed we have to call
-		 * aboutToBeHidden
-		 */
-		if (currentTab != null) {
-			currentTab.aboutToBeHidden();
-			currentTab = null;
-		}
-
-		disposeTabs(descriptorToTab.values());
-		descriptorToTab = new HashMap();
-
-		/**
-		 * Remove the label provider change listener.
-		 */
-		if (hasTitleBar && registry != null) {
-			registry.getLabelProvider().removeListener(this);
-		}
-
-		if (selectionContributor != null) {
-			/**
-			 * remove the selection contributed registry.
-			 */
-			TabbedPropertyRegistryFactory.getInstance().disposeRegistry(
-				selectionContributor);
-			selectionContributor = null;
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#dispose()
-	 */
-	public void dispose() {
-
-		disposeContributor();
-
-		if (widgetFactory != null) {
-			widgetFactory.dispose();
-			widgetFactory = null;
-		}
-		/**
-		 * Remove the part activation listener.
-		 */
-		if (cachedWorkbenchWindow != null) {
-			cachedWorkbenchWindow.getPartService().removePartListener(
-				partActivationListener);
-			cachedWorkbenchWindow = null;
-		}
-
-		if (registry != null) {
-			TabbedPropertyRegistryFactory.getInstance().disposeRegistry(
-				contributor);
-			registry = null;
-		}
-        
-        contributor = null;
-        currentSelection = null;
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#getControl()
-	 */
-	public Control getControl() {
-		return tabbedPropertyComposite;
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void setActionBars(IActionBars actionBars) {
-		// Override the undo and redo global action handlers
-		// to use the contributor action handlers
-        IActionBars partActionBars = null;
-		if (contributor instanceof IEditorPart) {
-			IEditorPart editorPart = (IEditorPart) contributor;
-            partActionBars = editorPart.getEditorSite().getActionBars();
-		} else if (contributor instanceof IViewPart) {
-            IViewPart viewPart = (IViewPart) contributor;
-            partActionBars = viewPart.getViewSite().getActionBars();
-        } 
-        
-        if (partActionBars != null) {
-            IAction action = partActionBars.getGlobalActionHandler(ActionFactory.UNDO
-                .getId());
-            if (action != null) {
-                actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), action);
-            }
-            action = partActionBars.getGlobalActionHandler(ActionFactory.REDO
-                .getId()); 
-            if (action != null) {
-                actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), action);
-            }
-        }
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#setFocus()
-	 */
-	public void setFocus() {
-		getControl().setFocus();
-	}
-
-	/**
-	 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		setInput(part, selection);
-	}
-
-	/**
-	 * Stores the current tab label in the selection queue. Tab labels are used
-	 * to carry the tab context from one input object to another. The queue
-	 * specifies the selection priority. So if the first tab in the queue is not
-	 * available for the input we try the second tab and so on. If none of the
-	 * tabs are available we default to the first tab available for the input.
-	 */
-	private void storeCurrentTabSelection(String label) {
-		if (!selectionQueueLocked) {
-			selectionQueue.remove(label);
-			selectionQueue.add(0, label);
-		}
-	}
-
-	private void resizeScrolledComposite() {
-		Point currentTabSize = new Point(0, 0);
-		if (currentTab != null) {
-			Composite sizeReference = (Composite) tabToComposite
-				.get(currentTab);
-			if (sizeReference != null) {
-				currentTabSize = sizeReference.computeSize(SWT.DEFAULT, SWT.DEFAULT); 
-			}
-		}
-		tabbedPropertyComposite.getScrolledComposite().setMinSize(
-				currentTabSize);
-
-		ScrollBar verticalScrollBar = tabbedPropertyComposite
-				.getScrolledComposite().getVerticalBar();
-		if (verticalScrollBar != null) {
-			Rectangle clientArea = tabbedPropertyComposite
-					.getScrolledComposite().getClientArea();
-			int increment = clientArea.height - 5;
-			verticalScrollBar.setPageIncrement(increment);
-		}
-
-		ScrollBar horizontalScrollBar = tabbedPropertyComposite
-				.getScrolledComposite().getHorizontalBar();
-		if (horizontalScrollBar != null) {
-			Rectangle clientArea = tabbedPropertyComposite
-					.getScrolledComposite().getClientArea();
-			int increment = clientArea.width - 5;
-			horizontalScrollBar.setPageIncrement(increment);
-		}
-	}
-
-	private void disposeTabs(Collection tabs) {
-		for (Iterator iter = tabs.iterator(); iter.hasNext();) {
-			TabContents tab = (TabContents) iter.next();
-			Composite composite = (Composite) tabToComposite.remove(tab);
-			tab.dispose();
-			if (composite != null) {
-				composite.dispose();
-			}
-		}
-	}
-
-	/**
-	 * Returns the last known selected tab for the given input.
-	 */
-	private int getLastTabSelection(IWorkbenchPart part, ISelection input) {
-		ITabDescriptor[] descriptors = registry.getTabDescriptors(part, input);
-		if (descriptors.length != 0) {
-			for (Iterator iter = selectionQueue.iterator(); iter.hasNext();) {
-				String text = (String) iter.next();
-				for (int i = 0; i < descriptors.length; i++) {
-					if (text.equals(descriptors[i].getLabel())) {
-						return i;
-					}
-				}
-			}
-		}
-		return 0;
-	}
-
-	/**
-	 * Update the current tabs to represent the given input object. When tabs
-	 * apply for both the old and new input they are reused otherwise they are
-	 * disposed. If the current visible tab will not be reused (i.e. will be
-	 * disposed) we have to send it an aboutToBeHidden() message.
-	 * @since 3.4
-	 */
-	protected void updateTabs(ITabDescriptor[] descriptors) {
-		Map newTabs = new HashMap(descriptors.length * 2);
-		boolean disposingCurrentTab = (currentTab != null);
-		for (int i = 0; i < descriptors.length; i++) {
-			TabContents tab = (TabContents) descriptorToTab
-					.remove(descriptors[i]);
-
-			if (tab != null && tab.controlsHaveBeenCreated()) {
-				if (tab == currentTab) {
-					disposingCurrentTab = false;
-				}
-			} else {
-				tab = createTab(descriptors[i]);
-			}
-
-			newTabs.put(descriptors[i], tab);
-		}
-		if (disposingCurrentTab) {
-			/**
-			 * If the current tab is about to be disposed we have to call
-			 * aboutToBeHidden
-			 */
-			currentTab.aboutToBeHidden();
-			currentTab = null;
-		}
-		disposeTabs(descriptorToTab.values());
-		descriptorToTab = newTabs;
-	}
-
-	/**
-	 * Create the tab contents for the provided tab descriptor.
-	 * 
-	 * @param tabDescriptor
-	 *            the tab descriptor.
-	 * @return the tab contents.
-	 * @since 3.4
-	 */
-	protected TabContents createTab(ITabDescriptor tabDescriptor) {
-		return tabDescriptor.createTab();
-	}
-
-	/**
-	 * Helper method for creating property tab composites.
-	 * 
-	 * @return the property tab composite.
-	 */
-	private Composite createTabComposite() {
-		Composite result = widgetFactory.createComposite(
-			tabbedPropertyComposite.getTabComposite(), SWT.NO_FOCUS);
-		result.setVisible(false);
-		result.setLayout(new FillLayout());
-		FormData data = new FormData();
-		if (hasTitleBar) {
-			data.top = new FormAttachment(tabbedPropertyComposite.getTitle(), 0);
-		} else {
-			data.top = new FormAttachment(0, 0);
-		}
-		data.bottom = new FormAttachment(100, 0);
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		result.setLayoutData(data);
-		return result;
-	}
-
-	private void setInput(IWorkbenchPart part, ISelection selection) {
-		if (selection.equals(currentSelection)) {
-			return;
-		}
-
-		this.currentSelection = selection;
-
-		// see if the selection provides a new contributor
-		validateRegistry(selection);
-		ITabDescriptor[] descriptors = registry.getTabDescriptors(part,
-				currentSelection);
-		// If there are no descriptors for the given input we do not need to
-		// touch the tab objects. We might reuse them for the next valid
-		// input.
-		if (descriptors.length > 0) {
-			updateTabs(descriptors);
-		}
-		// update tabs list
-		tabbedPropertyViewer.setInput(part, currentSelection);
-		int lastTabSelectionIndex = getLastTabSelection(part, currentSelection);
-		Object selectedTab = tabbedPropertyViewer
-			.getElementAt(lastTabSelectionIndex);
-		selectionQueueLocked = true;
-		try {
-			if (selectedTab == null) {
-				tabbedPropertyViewer.setSelection(null);
-			} else {
-				tabbedPropertyViewer.setSelection(new StructuredSelection(
-					selectedTab));
-			}
-		} finally {
-			selectionQueueLocked = false;
-		}
-		refreshTitleBar();
-	}
-
-	/**
-	 * Refresh the currently active tab.
-	 */
-	public void refresh() {
-		currentTab.refresh();
-	}
-
-	/**
-	 * Get the currently active tab.
-	 * 
-	 * @return the currently active tab.
-	 * @since 3.4
-	 */
-	public TabContents getCurrentTab() {
-		return currentTab;
-	}
-
-	/**
-	 * Handle the tab selected change event.
-	 * 
-	 * @param tabDescriptor
-	 *            the new selected tab.
-	 */
-	private void handleTabSelection(ITabDescriptor tabDescriptor) {
-		if (selectionQueueLocked) {
-			/*
-			 * don't send tab selection events for non user changes.
-			 */
-			return;
-		}
-		for (Iterator i = tabSelectionListeners.iterator(); i.hasNext();) {
-			ITabSelectionListener listener = (ITabSelectionListener) i.next();
-			listener.tabSelected(tabDescriptor);
-		}
-	}
-
-	/**
-	 * Add a tab selection listener.
-	 * 
-	 * @param listener
-	 *            a tab selection listener.
-	 */
-	public void addTabSelectionListener(ITabSelectionListener listener) {
-		tabSelectionListeners.add(listener);
-	}
-
-	/**
-	 * Remove a tab selection listener.
-	 * 
-	 * @param listener
-	 *            a tab selection listener.
-	 */
-	public void removeTabSelectionListener(ITabSelectionListener listener) {
-		tabSelectionListeners.remove(listener);
-	}
-
-	/**
-	 * Override the tabs with a new set of tabs. The tab list is obtained from
-	 * the {@link AbstractOverridableTabListPropertySection} by the
-	 * {@link IOverridableTabListContentProvider}.
-	 * @since 3.4
-	 */
-	public void overrideTabs() {
-		if (tabListContentProvider instanceof IOverridableTabListContentProvider) {
-			IOverridableTabListContentProvider overridableTabListContentProvider = (IOverridableTabListContentProvider) tabListContentProvider;
-			overridableTabListContentProvider.overrideTabs();
-		}
-	}
-
-	/**
-	 * Get the widget factory.
-	 * 
-	 * @return the widget factory.
-	 */
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return widgetFactory;
-	}
-
-	/**
-	 * Update the title bar of the contributor has a label provider.
-	 */
-	private void refreshTitleBar() {
-		if (hasTitleBar) {
-			TabbedPropertyTitle title = tabbedPropertyComposite.getTitle();
-			if (currentTab == null) {
-				/**
-				 * No tabs are shown so hide the title bar, otherwise you see
-				 * "No properties available" and a title bar for the selection.
-				 */
-				title.setTitle(null, null);
-			} else {
-				String text = registry.getLabelProvider().getText(
-					currentSelection);
-				Image image = registry.getLabelProvider().getImage(
-					currentSelection);
-				title.setTitle(text, image);
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProviderListener#labelProviderChanged(org.eclipse.jface.viewers.LabelProviderChangedEvent)
-	 */
-	public void labelProviderChanged(LabelProviderChangedEvent event) {
-		refreshTitleBar();
-	}
-
-    /**
-     * Retrieve the contributor from the selection.
-     * 
-     * @param object -
-     *            the selected element
-     * @return the TabbedPropertySheetPageContributor or null if not applicable
-     */
-    private ITabbedPropertySheetPageContributor getTabbedPropertySheetPageContributor(
-            Object object) {
-        if (object instanceof ITabbedPropertySheetPageContributor) {
-            return (ITabbedPropertySheetPageContributor) object;
-        }
-
-        if (object instanceof IAdaptable
-            && ((IAdaptable) object)
-                .getAdapter(ITabbedPropertySheetPageContributor.class) != null) {
-            return (ITabbedPropertySheetPageContributor) (((IAdaptable) object)
-                .getAdapter(ITabbedPropertySheetPageContributor.class));
-        }
-
-        if (Platform.getAdapterManager().hasAdapter(object,
-            ITabbedPropertySheetPageContributor.class.getName())) {
-            return (ITabbedPropertySheetPageContributor) Platform
-                .getAdapterManager().loadAdapter(object,
-                    ITabbedPropertySheetPageContributor.class.getName());
-        }
-
-        return null;
-	}
-
-	/**
-	 * The workbench part creates this instance of the TabbedPropertySheetPage
-	 * and implements ITabbedPropertySheetPageContributor which is unique
-	 * contributor id. This unique contributor id is used to load a registry
-	 * with the extension point This id matches the registry.
-	 * <p>
-	 * It is possible for elements in a selection to implement
-	 * ITabbedPropertySheetPageContributor to provide a different contributor id
-	 * and thus a differenent registry.
-	 * 
-	 * @param selection
-	 *            the current selection in the active workbench part.
-	 */
-	private void validateRegistry(ISelection selection) {
-		if (selection == null) {
-			return;
-		}
-
-		if (!(selection instanceof IStructuredSelection)) {
-			return;
-		}
-
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-		if (structuredSelection.size() == 0) {
-			return;
-		}
-
-        ITabbedPropertySheetPageContributor newContributor = getTabbedPropertySheetPageContributor(structuredSelection.getFirstElement());
-        
-		if (newContributor == null) {
-			/**
-			 * selection does not implement or adapt ITabbedPropertySheetPageContributor.
-			 */
-			newContributor = contributor;
-		}
-		
-        String selectionContributorId = newContributor.getContributorId();
-		if (selectionContributorId.equals(currentContributorId)) {
-			/**
-			 * selection has the same contributor id as current, so leave
-			 * existing registry.
-			 */
-			return;
-		}
-
-		/**
-		 * Selection implements ITabbedPropertySheetPageContributor different
-		 * than current contributor id, so make sure all elements implement the
-		 * new id. If all contributor id do not match, then fall back to default
-		 * contributor from the workbench part.
-		 */
-		Iterator i = structuredSelection.iterator();
-        i.next();
-		while (i.hasNext()) {
-            newContributor = getTabbedPropertySheetPageContributor(i.next());
-			if (newContributor == null || !newContributor.getContributorId().equals(selectionContributorId)) {
-				/**
-				 * fall back to use the default contributor id from the
-				 * workbench part.
-				 */
-				if (selectionContributor != null) {
-					disposeContributor();
-					currentContributorId = contributor.getContributorId();
-					initContributor(currentContributorId);
-				}
-				return;
-			}
-		}
-
-		/**
-		 * All the elements in the selection implement a new contributor id, so
-		 * use that id.
-		 */
-		disposeContributor();
-		currentContributorId = selectionContributorId;
-		initContributor(currentContributorId);
-        overrideActionBars();
-	}
-
-    /**
-     * Override the action bars for the selection based contributor.
-     */
-    private void overrideActionBars() {
-        if (registry.getActionProvider() != null ) {
-            IActionProvider actionProvider = registry.getActionProvider();
-            actionProvider.setActionBars(contributor, getSite().getActionBars());
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetWidgetFactory.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetWidgetFactory.java
deleted file mode 100644
index dedd4c9..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetWidgetFactory.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties.tabbed;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * A FormToolkit customized for use by tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertySheetWidgetFactory
-    extends FormToolkit {
-
-    /**
-     * private constructor.
-     */
-    public TabbedPropertySheetWidgetFactory() {
-        super(Display.getCurrent());
-    }
-
-    /**
-     * Creates the tab folder as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @param style
-     *            the tab folder style.
-     * @return the tab folder
-     */
-    public CTabFolder createTabFolder(Composite parent, int style) {
-        CTabFolder tabFolder = new CTabFolder(parent, style);
-        return tabFolder;
-    }
-
-    /**
-     * Creates the tab item as a part of the tab folder.
-     * 
-     * @param tabFolder
-     *            the parent.
-     * @param style
-     *            the tab folder style.
-     * @return the tab item.
-     */
-    public CTabItem createTabItem(CTabFolder tabFolder, int style) {
-        CTabItem tabItem = new CTabItem(tabFolder, style);
-        return tabItem;
-    }
-
-    /**
-     * Creates the list as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @param style
-     *            the list style.
-     * @return the list.
-     */
-    public List createList(Composite parent, int style) {
-        List list = new org.eclipse.swt.widgets.List(parent, style);
-        return list;
-    }
-
-    public Composite createComposite(Composite parent, int style) {
-        Composite c = super.createComposite(parent, style);
-        paintBordersFor(c);
-        return c;
-    }
-
-    public Composite createComposite(Composite parent) {
-        Composite c = createComposite(parent, SWT.NONE);
-        return c;
-    }
-
-    /**
-     * Creates a plain composite as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @param style
-     *            the composite style.
-     * @return the composite.
-     */
-    public Composite createPlainComposite(Composite parent, int style) {
-        Composite c = super.createComposite(parent, style);
-        c.setBackground(parent.getBackground());
-        paintBordersFor(c);
-        return c;
-    }
-
-    /**
-     * Creates a scrolled composite as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @param style
-     *            the composite style.
-     * @return the composite.
-     */
-    public ScrolledComposite createScrolledComposite(Composite parent, int style) {
-        ScrolledComposite scrolledComposite = new ScrolledComposite(parent,
-            style);
-        return scrolledComposite;
-    }
-
-    /**
-     * Creates a combo box as a part of the form.
-     * 
-     * @param parent
-     *            the combo box parent.
-     * @param comboStyle
-     *            the combo box style.
-     * @return the combo box.
-     */
-    public CCombo createCCombo(Composite parent, int comboStyle) {
-        CCombo combo = new CCombo(parent, comboStyle);
-        adapt(combo, true, false);
-        // Bugzilla 145837 - workaround for no borders on Windows XP
-		if (getBorderStyle() == SWT.BORDER) {
-			combo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-		}
-        return combo;
-    }
-
-    /**
-     * Creates a combo box as a part of the form.
-     * 
-     * @param parent
-     *            the combo box parent.
-     * @return the combo box.
-     */
-    public CCombo createCCombo(Composite parent) {
-        return createCCombo(parent, SWT.FLAT | SWT.READ_ONLY);
-    }
-
-    /**
-     * Creates a group as a part of the form.
-     * 
-     * @param parent
-     *            the group parent.
-     * @param text
-     *            the group title.
-     * @return the composite.
-     */
-    public Group createGroup(Composite parent, String text) {
-        Group group = new Group(parent, SWT.SHADOW_NONE);
-        group.setText(text);
-        group.setBackground(getColors().getBackground());
-        group.setForeground(getColors().getForeground());
-        return group;
-    }
-
-    /**
-     * Creates a flat form composite as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @return the composite.
-     */
-    public Composite createFlatFormComposite(Composite parent) {
-        Composite composite = createComposite(parent);
-        FormLayout layout = new FormLayout();
-        layout.marginWidth = ITabbedPropertyConstants.HSPACE + 2;
-        layout.marginHeight = ITabbedPropertyConstants.VSPACE;
-        layout.spacing = ITabbedPropertyConstants.VMARGIN + 1;
-        composite.setLayout(layout);
-        return composite;
-    }
-
-    /**
-     * Creates a label as a part of the form.
-     * 
-     * @param parent
-     *            the label parent.
-     * @param text
-     *            the label text.
-     * @return the label.
-     */
-    public CLabel createCLabel(Composite parent, String text) {
-        return createCLabel(parent, text, SWT.NONE);
-    }
-
-    /**
-     * Creates a label as a part of the form.
-     * 
-     * @param parent
-     *            the label parent.
-     * @param text
-     *            the label text.
-     * @param style
-     *            the label style.
-     * @return the label.
-     */
-    public CLabel createCLabel(Composite parent, String text, int style) {
-        final CLabel label = new CLabel(parent, style);
-        label.setBackground(parent.getBackground());
-        label.setText(text);
-        return label;
-    }
-
-    public void dispose() {
-        if (getColors() != null) {
-            super.dispose();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/package.html b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/package.html
deleted file mode 100644
index a6397e0..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/package.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the Tabbed Properties framework. This allows client views and editors to
-provide a tabbed property sheet page to the Properties view. 
-See TabbedPropertySheetPage.
-The tabs and sections to show for the selected element(s) in the source part are
-defined by extensions to this plug-in's extension points.
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.views/.classpath b/bundles/org.eclipse.ui.views/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.views/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.views/.cvsignore b/bundles/org.eclipse.ui.views/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.views/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.views/.project b/bundles/org.eclipse.ui.views/.project
deleted file mode 100644
index 770eaa2..0000000
--- a/bundles/org.eclipse.ui.views/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.views</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 852d566..0000000
--- a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,93 +0,0 @@
-#Wed Apr 30 16:16:06 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f27cfb9..0000000
--- a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 08:59:34 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0f029be..0000000
--- a/bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,26 +0,0 @@
-#Wed Apr 30 16:16:06 EDT 2008
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.discouraged-class=1
-compilers.p.illegal-att-value=0
-compilers.p.internal=1
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
deleted file mode 100644
index 28dfcbe..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.3.0.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.ui.internal.views.ViewsPlugin
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.views;x-internal:=true,
- org.eclipse.ui.internal.views.contentoutline;x-internal:=true,
- org.eclipse.ui.internal.views.properties; ui.views="split"; mandatory:="ui.views"; x-internal:=true,
- org.eclipse.ui.views.contentoutline,
- org.eclipse.ui.views.properties; ui.views="split"; mandatory:="ui.views"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.help;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.3.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.ui.views/about.html b/bundles/org.eclipse.ui.views/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.views/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views/build.properties b/bundles/org.eclipse.ui.views/build.properties
deleted file mode 100644
index bbfa0a5..0000000
--- a/bundles/org.eclipse.ui.views/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               .,\
-               META-INF/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.ui.views/icons/full/dlcl16/defaults_ps.gif b/bundles/org.eclipse.ui.views/icons/full/dlcl16/defaults_ps.gif
deleted file mode 100644
index 641ba72..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/dlcl16/defaults_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/dlcl16/filter_ps.gif b/bundles/org.eclipse.ui.views/icons/full/dlcl16/filter_ps.gif
deleted file mode 100644
index ba6d891..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/dlcl16/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/dlcl16/tree_mode.gif b/bundles/org.eclipse.ui.views/icons/full/dlcl16/tree_mode.gif
deleted file mode 100644
index 62bdbe2..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/dlcl16/tree_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/elcl16/defaults_ps.gif b/bundles/org.eclipse.ui.views/icons/full/elcl16/defaults_ps.gif
deleted file mode 100644
index c064899..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/elcl16/defaults_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/elcl16/filter_ps.gif b/bundles/org.eclipse.ui.views/icons/full/elcl16/filter_ps.gif
deleted file mode 100644
index 6fe6f0e..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/elcl16/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/elcl16/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 e23b672..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/ViewsPlugin.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The plug-in runtime class for the views UI plug-in (id <code>"org.eclipse.ui.views"</code>).
- * <p>
- * This class provides static methods and fields only; it is not intended to be
- * instantiated or subclassed by clients.
- * </p>
- * 
- * @since 2.1
- */
-public final class ViewsPlugin extends AbstractUIPlugin {
-    /**
-     * Views UI plug-in id (value <code>"org.eclipse.ui.views"</code>).
-     */
-    public static final String PLUGIN_ID = "org.eclipse.ui.views"; //$NON-NLS-1$
-	
-	private final static String ICONS_PATH = "$nl$/icons/full/";//$NON-NLS-1$
-
-    private static ViewsPlugin instance;
-
-    /**
-     * Returns the singleton instance.
-     * 
-     * @return the singleton instance.
-     */
-    public static ViewsPlugin getDefault() {
-        return instance;
-    }
-
-    /**
-     * Creates a new instance of the receiver.
-     * 
-     * @see org.eclipse.core.runtime.Plugin#Plugin()
-     */
-    public ViewsPlugin() {
-        super();
-        instance = this;
-    }
-	
-	/**
-	 * Get the workbench image with the given path relative to
-	 * ICON_PATH.
-	 * @param relativePath
-	 * @return ImageDescriptor
-	 */
-	public static ImageDescriptor getViewImageDescriptor(String relativePath){
-		return imageDescriptorFromPlugin(PLUGIN_ID, ICONS_PATH + relativePath);
-	}
-    
-    /**
-     * If it is possible to adapt the given object to the given type, this
-     * returns the adapter. Performs the following checks:
-     * 
-     * <ol>
-     * <li>Returns <code>sourceObject</code> if it is an instance of the
-     * adapter type.</li>
-     * <li>If sourceObject implements IAdaptable, it is queried for adapters.</li>
-     * <li>If sourceObject is not an instance of PlatformObject (which would have
-     * already done so), the adapter manager is queried for adapters</li>
-     * </ol>
-     * 
-     * Otherwise returns null.
-     * 
-     * @param sourceObject
-     *            object to adapt, or null
-     * @param adapter
-     *            type to adapt to
-     * @param activatePlugins 
-     *            true if IAdapterManager.loadAdapter should be used (may trigger plugin activation)
-     * @return a representation of sourceObject that is assignable to the
-     *         adapter type, or null if no such representation exists
-     */
-    public static Object getAdapter(Object sourceObject, Class adapter, boolean activatePlugins) {
-    	Assert.isNotNull(adapter);
-        if (sourceObject == null) {
-            return null;
-        }
-        if (adapter.isInstance(sourceObject)) {
-            return sourceObject;
-        }
-
-        if (sourceObject instanceof IAdaptable) {
-            IAdaptable adaptable = (IAdaptable) sourceObject;
-
-            Object result = adaptable.getAdapter(adapter);
-            if (result != null) {
-                // Sanity-check
-                Assert.isTrue(adapter.isInstance(result));
-                return result;
-            }
-        } 
-        
-        if (!(sourceObject instanceof PlatformObject)) {
-        	Object result;
-        	if (activatePlugins) {
-        		result = Platform.getAdapterManager().loadAdapter(sourceObject, adapter.getName());
-        	} else {
-        		result = Platform.getAdapterManager().getAdapter(sourceObject, adapter);
-        	}
-            if (result != null) {
-                return result;
-            }
-        }
-
-        return null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/ContentOutlineMessages.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/ContentOutlineMessages.java
deleted file mode 100644
index e038dcc..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/ContentOutlineMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.contentoutline;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * ContentOutlineMessages is the message class for the messages used in the content outline.
- *
- */
-public class ContentOutlineMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.contentoutline.messages";//$NON-NLS-1$
-
-	// ==============================================================================
-	// Outline View
-	// ==============================================================================
-	/** */
-	public static String ContentOutline_noOutline;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ContentOutlineMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/messages.properties b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/messages.properties
deleted file mode 100644
index 2e229b9..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/messages.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005  IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# package: org.eclipse.ui.views.contentoutline
-
-
-# ==============================================================================
-# Outline View
-# ==============================================================================
-ContentOutline_noOutline = An outline is not available.
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/package.html b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/package.html
deleted file mode 100644
index 87324c3..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/package.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the internal support for the Content Outline view.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/PropertiesMessages.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/PropertiesMessages.java
deleted file mode 100644
index 76a001c..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/PropertiesMessages.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- */
-public class PropertiesMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.properties.messages";//$NON-NLS-1$
-
-	// package: org.eclipse.ui.views.properties
-
-	// ==============================================================================
-	// Properties View
-	// ==============================================================================
-
-	/** */
-	public static String Categories_text;
-	/** */
-	public static String Categories_toolTip;
-
-	/** */
-	public static String Columns_text;
-	/** */
-	public static String Columns_toolTip;
-	
-	/** */
-	public static String CopyProperty_text;
-
-	/** */
-	public static String Defaults_text;
-	/** */
-	public static String Defaults_toolTip;
-
-	/** */
-	public static String Filter_text;
-	/** */
-	public static String Filter_toolTip;
-
-	/** */
-	public static String 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 7e54679..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/messages.properties
+++ /dev/null
@@ -1,37 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# package: org.eclipse.ui.views.properties
-
-# ==============================================================================
-# Properties View
-# ==============================================================================
-
-Categories_text = Show &Categories
-Categories_toolTip = Show Categories
-
-Columns_text = Co&lumns...
-Columns_toolTip = Configure Columns
-
-CopyProperty_text = &Copy
-
-Defaults_text = &Restore Default Value
-Defaults_toolTip = Restore Default Value
-
-Filter_text = Show &Advanced Properties
-Filter_toolTip = Show Advanced Properties
-
-PropertyViewer_property = Property
-PropertyViewer_value = Value
-PropertyViewer_misc = Misc
-
-CopyToClipboardProblemDialog_title=Problem Copying to Clipboard
-CopyToClipboardProblemDialog_message=There was a problem when accessing the system clipboard. Retry?
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutline.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutline.java
deleted file mode 100644
index ec48552..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutline.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.views.contentoutline;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.ViewsPlugin;
-import org.eclipse.ui.internal.views.contentoutline.ContentOutlineMessages;
-import org.eclipse.ui.part.IContributedContentsView;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.part.MessagePage;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageBookView;
-
-/**
- * Main class for the Content Outline View.
- * <p>
- * This standard view has id <code>"org.eclipse.ui.views.ContentOutline"</code>.
- * </p>
- * When a <b>content outline view</b> notices an editor being activated, it 
- * asks the editor whether it has a <b>content outline page</b> to include
- * in the outline view. This is done using <code>getAdapter</code>:
- * <pre>
- * IEditorPart editor = ...;
- * IContentOutlinePage outlinePage = (IContentOutlinePage) editor.getAdapter(IContentOutlinePage.class);
- * if (outlinePage != null) {
- *    // editor wishes to contribute outlinePage to content outline view
- * }
- * </pre>
- * If the editor supports a content outline page, the editor instantiates
- * and configures the page, and returns it. This page is then added to the 
- * content outline view (a pagebook which presents one page at a time) and 
- * immediately made the current page (the content outline view need not be
- * visible). If the editor does not support a content outline page, the content
- * outline view shows a special default page which makes it clear to the user
- * that the content outline view is disengaged. A content outline page is free
- * to report selection events; the content outline view forwards these events 
- * along to interested parties. When the content outline view notices a
- * different editor being activated, it flips to the editor's corresponding
- * content outline page. When the content outline view notices an editor being
- * closed, it destroys the editor's corresponding content outline page.
- * </p>
- * <p>
- * The workbench will automatically instantiate this class when a Content
- * Outline view is needed for a workbench window. This class was not intended
- * to be instantiated or subclassed by clients.
- * </p>
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ContentOutline extends PageBookView implements ISelectionProvider,
-        ISelectionChangedListener {
-
-
-
-    /**
-     * The plugin prefix.
-     */
-    public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
-
-    /**
-     * Help context id used for the content outline view
-     * (value <code>"org.eclipse.ui.content_outline_context"</code>).
-     */
-    public static final String CONTENT_OUTLINE_VIEW_HELP_CONTEXT_ID = PREFIX
-            + "content_outline_context";//$NON-NLS-1$
-
-    /**
-     * Message to show on the default page.
-     */
-    private String defaultText =ContentOutlineMessages.ContentOutline_noOutline; 
-
-    /**
-     * Creates a content outline view with no content outline pages.
-     */
-    public ContentOutline() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        getSelectionProvider().addSelectionChangedListener(listener);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected IPage createDefaultPage(PageBook book) {
-        MessagePage page = new MessagePage();
-        initPage(page);
-        page.createControl(book);
-        page.setMessage(defaultText);
-        return page;
-    }
-
-    /**
-     * The <code>PageBookView</code> implementation of this <code>IWorkbenchPart</code>
-     * method creates a <code>PageBook</code> control with its default page showing.
-     */
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getPageBook(),
-                CONTENT_OUTLINE_VIEW_HELP_CONTEXT_ID);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected PageRec doCreatePage(IWorkbenchPart part) {
-        // Try to get an outline page.
-        Object obj = ViewsPlugin.getAdapter(part, IContentOutlinePage.class, false);
-        if (obj instanceof IContentOutlinePage) {
-            IContentOutlinePage page = (IContentOutlinePage) obj;
-            if (page instanceof IPageBookViewPage) {
-				initPage((IPageBookViewPage) page);
-			}
-            page.createControl(getPageBook());
-            return new PageRec(part, page);
-        }
-        // There is no content outline
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected void doDestroyPage(IWorkbenchPart part, PageRec rec) {
-        IContentOutlinePage page = (IContentOutlinePage) rec.page;
-        page.dispose();
-        rec.dispose();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable.
-     */
-    public Object getAdapter(Class key) {
-        if (key == IContributedContentsView.class) {
-			return new IContributedContentsView() {
-                public IWorkbenchPart getContributingPart() {
-                    return getContributingEditor();
-                }
-            };
-		}
-        return super.getAdapter(key);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected IWorkbenchPart getBootstrapPart() {
-        IWorkbenchPage page = getSite().getPage();
-        if (page != null) {
-			return page.getActiveEditor();
-		}
-
-        return null;
-    }
-
-    /**
-     * Returns the editor which contributed the current 
-     * page to this view.
-     *
-     * @return the editor which contributed the current page
-     * or <code>null</code> if no editor contributed the current page
-     */
-    private IWorkbenchPart getContributingEditor() {
-        return getCurrentContributingPart();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public ISelection getSelection() {
-        // get the selection from the selection provider
-        return getSelectionProvider().getSelection();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     * We only want to track editors.
-     */
-    protected boolean isImportant(IWorkbenchPart part) {
-        //We only care about editors
-        return (part instanceof IEditorPart);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewPart.
-     * Treat this the same as part activation.
-     */
-    public void partBroughtToTop(IWorkbenchPart part) {
-        partActivated(part);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener) {
-        getSelectionProvider().removeSelectionChangedListener(listener);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionChangedListener.
-     */
-    public void selectionChanged(SelectionChangedEvent event) {
-        getSelectionProvider().selectionChanged(event);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void setSelection(ISelection selection) {
-        getSelectionProvider().setSelection(selection);
-    }
-
-    /**
-     * The <code>ContentOutline</code> implementation of this <code>PageBookView</code> method
-     * extends the behavior of its parent to use the current page as a selection provider.
-     * 
-     * @param pageRec the page record containing the page to show
-     */
-    protected void showPageRec(PageRec pageRec) {
-        IPageSite pageSite = getPageSite(pageRec.page);
-        ISelectionProvider provider = pageSite.getSelectionProvider();
-        if (provider == null && (pageRec.page instanceof IContentOutlinePage)) {
-			// This means that the page did not set a provider during its initialization 
-            // so for backward compatibility we will set the page itself as the provider.
-            pageSite.setSelectionProvider((IContentOutlinePage) pageRec.page);
-		}
-        super.showPageRec(pageRec);
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.java
deleted file mode 100644
index 5bf036c..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.contentoutline;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.part.Page;
-
-/**
- * An abstract base class for content outline pages.
- * <p>
- * Clients who are defining an editor may elect to provide a corresponding
- * content outline page. This content outline page will be presented to the
- * user via the standard Content Outline View (the user decides whether their
- * workbench window contains this view) whenever that editor is active.
- * This class should be subclassed.
- * </p>
- * <p>
- * Internally, each content outline page consists of a standard tree viewer; 
- * selections made in the tree viewer are reported as selection change events 
- * by the page (which is a selection provider). The tree viewer is not created 
- * until <code>createPage</code> is called; consequently, subclasses must extend
- * <code>createControl</code> to configure the tree viewer with a proper content 
- * provider, label provider, and input element.
- * </p>
- * <p>
- * Note that those wanting to use a control other than internally created
- * <code>TreeViewer</code> will need to implement 
- * <code>IContentOutlinePage</code> directly rather than subclassing this class.
- * </p> 
- */
-public abstract class ContentOutlinePage extends Page implements
-        IContentOutlinePage, ISelectionChangedListener {
-    private ListenerList selectionChangedListeners = new ListenerList();
-
-    private TreeViewer treeViewer;
-
-    /**
-     * Create a new content outline page.
-     */
-    protected ContentOutlinePage() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        selectionChangedListeners.add(listener);
-    }
-
-    /**
-     * The <code>ContentOutlinePage</code> implementation of this 
-     * <code>IContentOutlinePage</code> method creates a tree viewer. Subclasses
-     * must extend this method configure the tree viewer with a proper content 
-     * provider, label provider, and input element.
-     * @param parent
-     */
-    public void createControl(Composite parent) {
-        treeViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL
-                | SWT.V_SCROLL);
-        treeViewer.addSelectionChangedListener(this);
-    }
-
-    /**
-     * Fires a selection changed event.
-     *
-     * @param selection the new selection
-     */
-    protected void fireSelectionChanged(ISelection selection) {
-        // create an event
-        final SelectionChangedEvent event = new SelectionChangedEvent(this,
-                selection);
-
-        // fire the event
-        Object[] listeners = selectionChangedListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
-            SafeRunner.run(new SafeRunnable() {
-                public void run() {
-                    l.selectionChanged(event);
-                }
-            });
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPage (and Page).
-     */
-    public Control getControl() {
-        if (treeViewer == null) {
-			return null;
-		}
-        return treeViewer.getControl();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public ISelection getSelection() {
-        if (treeViewer == null) {
-			return StructuredSelection.EMPTY;
-		}
-        return treeViewer.getSelection();
-    }
-
-    /**
-     * Returns this page's tree viewer.
-     *
-     * @return this page's tree viewer, or <code>null</code> if 
-     *   <code>createControl</code> has not been called yet
-     */
-    protected TreeViewer getTreeViewer() {
-        return treeViewer;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.part.IPageBookViewPage#init(org.eclipse.ui.part.IPageSite)
-     */
-    public void init(IPageSite pageSite) {
-        super.init(pageSite);
-        pageSite.setSelectionProvider(this);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener) {
-        selectionChangedListeners.remove(listener);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionChangeListener.
-     * Gives notification that the tree selection has changed.
-     */
-    public void selectionChanged(SelectionChangedEvent event) {
-        fireSelectionChanged(event.getSelection());
-    }
-
-    /**
-     * Sets focus to a part in the page.
-     */
-    public void setFocus() {
-        treeViewer.getControl().setFocus();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void setSelection(ISelection selection) {
-        if (treeViewer != null) {
-			treeViewer.setSelection(selection);
-		}
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/IContentOutlinePage.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/IContentOutlinePage.java
deleted file mode 100644
index 6893210..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/IContentOutlinePage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.contentoutline;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.part.IPage;
-
-/**
- * Marker-style interface for a content outline page. This interface defines
- * the minimum requirement for pages within the content outline view, namely
- * they must be pages (implement <code>IPage</code>) and provide selections
- * (implement <code>ISelectionProvider</code>).
- * <p>
- * Access to a content outline page begins when an editor is activated. When
- * activation occurs, the content outline view will ask the editor for its
- * content outline page. This is done by invoking 
- * <code>getAdapter(IContentOutlinePage.class)</code> on the editor.  
- * If the editor returns a page, the view then creates the controls for that
- * page (using <code>createControl</code>) and makes the page visible.
- * </p>
- * <p>
- * Clients may implement this interface from scratch, or subclass the
- * abstract base class <code>ContentOutlinePage</code>.
- * </p>
- * <p> 
- * Note that this interface extends <code>ISelectionProvider</code>.
- * This is no longer required in the case of implementors who also 
- * implement <code>IPageBookViewPage</code> (or extend <code>Page</code>)
- * as they are now passed an <code>IPageSite</code> during their initialization 
- * and this site can be configured with a selection provider. 
- * However to avoid a breaking change 
- *  1) this interface will continue to extend ISelectionProvider 
- *  2) if an IContentOutlinePage does not set a selection provider for its 
- * site, the ContentOutline will continue to use the page itself for 
- * this purpose. 
- * </p> 
- *
- * @see ContentOutlinePage
- */
-public interface IContentOutlinePage extends IPage, ISelectionProvider {
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/package.html b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/package.html
deleted file mode 100644
index 70d2165..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/package.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the standard Content Outline view which can
-show the active editor's custom outline for the document being edited.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CategoriesAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CategoriesAction.java
deleted file mode 100644
index 6e949e3..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CategoriesAction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action hides or shows categories in the <code>PropertySheetViewer</code>.
- */
-/*package*/class CategoriesAction extends PropertySheetAction {
-    /**
-     * Creates the Categories action. This action is used to show
-     * or hide categories properties.
-     * @param viewer the viewer
-     * @param name the name
-     */
-    public CategoriesAction(PropertySheetViewer viewer, String name) {
-        super(viewer, name);
-        PlatformUI.getWorkbench().getHelpSystem()
-                .setHelp(this, IPropertiesHelpContextIds.CATEGORIES_ACTION);
-    }
-
-    /**
-     * Toggles the display of categories for the properties.
-     */
-    public void run() {
-        PropertySheetViewer ps = getPropertySheet();
-        ps.deactivateCellEditor();
-        if (isChecked()) {
-            ps.showCategories();
-        } else {
-            ps.hideCategories();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ColorPropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ColorPropertyDescriptor.java
deleted file mode 100644
index 4d001c7..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ColorPropertyDescriptor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColorCellEditor;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Descriptor for a property that has a color value which should be edited
- * with a color cell editor.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IPropertyDescriptor pd = new ColorPropertyDescriptor("fg", "Foreground Color");
- * </pre>
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ColorPropertyDescriptor extends PropertyDescriptor {
-    /**
-     * Creates an property descriptor with the given id and display name.
-     * 
-     * @param id the id of the property
-     * @param displayName the name to display for the property
-     */
-    public ColorPropertyDescriptor(Object id, String displayName) {
-        super(id, displayName);
-    }
-
-    /**
-     * The <code>ColorPropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method creates and returns a new
-     * <code>ColorCellEditor</code>.
-     * <p>
-     * The editor is configured with the current validator if there is one.
-     * </p>
-     */
-    public CellEditor createPropertyEditor(Composite parent) {
-        CellEditor editor = new ColorCellEditor(parent);
-        if (getValidator() != null) {
-			editor.setValidator(getValidator());
-		}
-        return editor;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxLabelProvider.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxLabelProvider.java
deleted file mode 100644
index ff41832..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxLabelProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.LabelProvider;
-
-/**
- * An <code>ILabelProvider</code> that assists in rendering labels for 
- * <code>ComboBoxPropertyDescriptors</code>.  The label for a given 
- * <code>Integer</code> value is the <code>String</code> at the value in 
- * the provided values array.  
- * 
- * @since 3.0
- */
-public class ComboBoxLabelProvider extends LabelProvider {
-
-    /**
-     * The array of String labels.
-     */
-    private String[] values;
-
-    /**
-     * @param values the possible label values that this 
-     * <code>ILabelProvider</code> may return.
-     */
-    public ComboBoxLabelProvider(String[] values) {
-        this.values = values;
-    }
-
-    /**
-     * @return the possible label values that this 
-     * <code>ILabelProvider</code> may return.
-     */
-    public String[] getValues() {
-        return values;
-    }
-
-    /**
-     * @param values the possible label values that this 
-     * <code>ILabelProvider</code> may return.
-     */
-    public void setValues(String[] values) {
-        this.values = values;
-    }
-
-    /**
-     * Returns the <code>String</code> that maps to the given 
-     * <code>Integer</code> offset in the values array.
-     * 
-     * @param element an <code>Integer</code> object whose value is a valid 
-     * location within the values array of the receiver
-     * @return a <code>String</code> from the provided values array, or the 
-     * empty <code>String</code> 
-     * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-     */
-    public String getText(Object element) {
-        if (element == null) {
-            return ""; //$NON-NLS-1$
-        }
-
-        if (element instanceof Integer) {
-            int index = ((Integer) element).intValue();
-            if (index >= 0 && index < values.length) {
-                return values[index];
-            }
-			return ""; //$NON-NLS-1$
-        }
-
-        return ""; //$NON-NLS-1$
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxPropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxPropertyDescriptor.java
deleted file mode 100644
index c431968..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxPropertyDescriptor.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Descriptor for a property that has a value which should be edited
- * with a combo box cell editor.  This class provides a default 
- * <code>ILabelProvider</code> that will render the label of the given 
- * descriptor as the <code>String</code> found in the labels array at the 
- * currently selected index.
- * <p>
- * The value of the property is a 0-based <code>Integer</code> index into
- * the labels array. 
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * String[] values = {"Top left", "Top right", "Bottom left", "Bottom right"};
- * IPropertyDescriptor pd = new ComboBoxPropertyDescriptor("origin", "Origin", values);
- * </pre>
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ComboBoxPropertyDescriptor extends PropertyDescriptor {
-
-    /**
-     * The labels to display in the combo box
-     */
-    private String[] labels;
-
-    /**
-     * Creates an property descriptor with the given id, display name, and list
-     * of value labels to display in the combo box cell editor.
-     * 
-     * @param id the id of the property
-     * @param displayName the name to display for the property
-     * @param labelsArray the labels to display in the combo box
-     */
-    public ComboBoxPropertyDescriptor(Object id, String displayName,
-            String[] labelsArray) {
-        super(id, displayName);
-        labels = labelsArray;
-    }
-
-    /**
-     * The <code>ComboBoxPropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method creates and returns a new
-     * <code>ComboBoxCellEditor</code>.
-     * <p>
-     * The editor is configured with the current validator if there is one.
-     * </p>
-     */
-    public CellEditor createPropertyEditor(Composite parent) {
-        CellEditor editor = new ComboBoxCellEditor(parent, labels,
-                SWT.READ_ONLY);
-        if (getValidator() != null) {
-			editor.setValidator(getValidator());
-		}
-        return editor;
-    }
-
-    /**
-     * The <code>ComboBoxPropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setProvider</code> method or, if no value has been set
-     * it returns a <code>ComboBoxLabelProvider</code> created from the 
-     * valuesArray of this <code>ComboBoxPropertyDescriptor</code>.
-     *
-     * @see #setLabelProvider(ILabelProvider)
-     */
-    public ILabelProvider getLabelProvider() {
-        if (isLabelProviderSet()) {
-			return super.getLabelProvider();
-		}
-		return new ComboBoxLabelProvider(labels);
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CopyPropertyAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CopyPropertyAction.java
deleted file mode 100644
index c851042..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CopyPropertyAction.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.properties.PropertiesMessages;
-
-/**
- * Copies a property to the clipboard.
- */
-/*package*/class CopyPropertyAction extends PropertySheetAction {
-    /**
-     * System clipboard
-     */
-    private Clipboard clipboard;
-
-    /**
-     * Creates the action.
-     * 
-     * @param viewer the viewer
-     * @param name the name
-     * @param clipboard the clipboard
-     */
-    public CopyPropertyAction(PropertySheetViewer viewer, String name,
-            Clipboard clipboard) {
-        super(viewer, name);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IPropertiesHelpContextIds.COPY_PROPERTY_ACTION);
-        this.clipboard = clipboard;
-    }
-
-    /**
-     * Performs this action.
-     */
-    public void run() {
-        // Get the selected property
-        IStructuredSelection selection = (IStructuredSelection) getPropertySheet()
-                .getSelection();
-        if (selection.isEmpty()) {
-			return;
-		}
-        // Assume single selection
-        IPropertySheetEntry entry = (IPropertySheetEntry) selection
-                .getFirstElement();
-
-        // Place text on the clipboard
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(entry.getDisplayName());
-        buffer.append("\t"); //$NON-NLS-1$
-        buffer.append(entry.getValueAsString());
-
-        setClipboard(buffer.toString());
-    }
-
-    /** 
-     * Updates enablement based on the current selection.
-     * 
-     * @param sel the selection
-     */
-    public void selectionChanged(IStructuredSelection sel) {
-        setEnabled(!sel.isEmpty());
-    }
-
-    private void setClipboard(String text) {
-        try {
-            Object[] data = new Object[] { text };
-            Transfer[] transferTypes = new Transfer[] { TextTransfer
-                    .getInstance() };
-            clipboard.setContents(data, transferTypes);
-        } catch (SWTError e) {
-            if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD) {
-				throw e;
-			}
-            if (MessageDialog.openQuestion(getPropertySheet().getControl()
-                    .getShell(), PropertiesMessages.CopyToClipboardProblemDialog_title,
-                    PropertiesMessages.CopyToClipboardProblemDialog_message)) {
-				setClipboard(text);
-			}
-        }
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/DefaultsAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/DefaultsAction.java
deleted file mode 100644
index f14cc19..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/DefaultsAction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action resets the <code>PropertySheetViewer</code> values back
- * to the default values.
- *
- * [Issue: should listen for selection changes in the viewer and set enablement]
- */
-/*package*/class DefaultsAction extends PropertySheetAction {
-    /**
-     * Create the Defaults action. This action is used to set
-     * the properties back to their default values.
-     * 
-     * @param viewer the viewer
-     * @param name the name
-     */
-    public DefaultsAction(PropertySheetViewer viewer, String name) {
-        super(viewer, name);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IPropertiesHelpContextIds.DEFAULTS_ACTION);
-    }
-
-    /**
-     * Reset the properties to their default values.
-     */
-    public void run() {
-        getPropertySheet().deactivateCellEditor();
-        getPropertySheet().resetProperties();
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/FilterAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/FilterAction.java
deleted file mode 100644
index e9c344d..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/FilterAction.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action hides or shows expert properties in the <code>PropertySheetViewer</code>.
- */
-/*package*/class FilterAction extends PropertySheetAction {
-    /**
-     * Create the Filter action. This action is used to show
-     * or hide expert properties.
-     * 
-     * @param viewer the viewer
-     * @param name the name
-     */
-    public FilterAction(PropertySheetViewer viewer, String name) {
-        super(viewer, name);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IPropertiesHelpContextIds.FILTER_ACTION);
-    }
-
-    /**
-     * Toggle the display of expert properties.
-     */
-
-    public void run() {
-        PropertySheetViewer ps = getPropertySheet();
-        ps.deactivateCellEditor();
-        if (isChecked()) {
-            ps.showExpert();
-        } else {
-            ps.hideExpert();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ICellEditorActivationListener.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ICellEditorActivationListener.java
deleted file mode 100644
index fffb571..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ICellEditorActivationListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-
-/**
- * A listener which is notified when a cell editor is 
- * activated/deactivated
- */
-/*package*/interface ICellEditorActivationListener {
-    /**
-     * Notifies that the cell editor has been activated
-     *
-     * @param cellEditor the cell editor which has been activated
-     */
-    public void cellEditorActivated(CellEditor cellEditor);
-
-    /**
-     * Notifies that the cell editor has been deactivated
-     *
-     * @param cellEditor the cell editor which has been deactivated
-     */
-    public void cellEditorDeactivated(CellEditor cellEditor);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertiesHelpContextIds.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertiesHelpContextIds.java
deleted file mode 100644
index 7d3e4c0..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertiesHelpContextIds.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.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 40d7c9b..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertyDescriptor.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * A descriptor for a property to be presented by a standard property sheet page
- * (<code>PropertySheetPage</code>). These descriptors originate with property 
- * sources (<code>IPropertySource</code>).
- * <p>
- * A property descriptor carries the following information:
- * <ul>
- *   <li>property id (required)</li>
- *   <li>display name (required)</li>
- *   <li>brief description of the property (optional)</li>
- *   <li>category for grouping related properties (optional)</li>
- *   <li>label provider used to display the property value (optional)</li>
- *   <li>cell editor for changing the property value (optional)</li>
- *   <li>help context id (optional)</li>
- * </ul>
- * </p>
- * <p>
- * Clients may implement this interface to provide specialized property 
- * descriptors; however, there are standard implementations declared in
- * this package that take care of the most common cases:
- * <ul>
- *   <li><code>PropertyDescriptor - read-only property</li>
- *   <li><code>TextPropertyDescriptor</code> - edits with a 
- *      <code>TextCellEditor</code></li>
- *   <li><code>CheckboxPropertyDescriptor - edits with a 
- *      <code>CheckboxCellEditor</code></code></li>
- *   <li><code>ComboBoxPropertyDescriptor - edits with a
- *      <code>ComboBoxCellEditor</code></code></li>
- *   <li><code>ColorPropertyDescriptor - edits with a 
- *      <code>ColorCellEditor</code></code></li>
- * </ul>
- * </p>
- *
- * @see IPropertySource#getPropertyDescriptors
- */
-public interface IPropertyDescriptor {
-    /**
-     * Creates and returns a new cell editor for editing this property. Returns 
-     * <code>null</code> if the property is not editable.
-     *
-     * @param parent the parent widget for the cell editor
-     * @return the cell editor for this property, or <code>null</code> if this
-     *  property cannot be edited
-     */
-    public CellEditor createPropertyEditor(Composite parent);
-
-    /**
-     * Returns the name of the category to which this property belongs. Properties
-     * belonging to the same category are grouped together visually. This localized 
-     * string is shown to the user
-     * 
-     * @return the category name, or <code>null</code> if the default category is to
-     *   be used
-     */
-    public String getCategory();
-
-    /**
-     * Returns a brief description of this property. This localized string is shown 
-     * to the user when this property is selected.
-     * 
-     * @return a brief description, or <code>null</code> if none
-     */
-    public String getDescription();
-
-    /**
-     * Returns the display name for this property. This localized string is shown to
-     * the user as the name of this property.
-     * 
-     * @return a displayable name
-     */
-    public String getDisplayName();
-
-    /**
-     * Returns a list of filter types to which this property belongs.
-     * The user is able to toggle the filters to show/hide properties belonging to
-     * a filter type.
-     * <p>
-     * Valid values for these flags are declared as constants on 
-     *  <code>IPropertySheetEntry</code>
-     * </p> 
-     * @return a list of filter types to which this property belongs, or
-     *   <code>null</code> if none
-     */
-    public String[] getFilterFlags();
-
-    /**
-     * Returns the help context id for this property or 
-     * <code>null</code> if this property has no help context id.
-     * <p>
-     * NOTE: Help support system API's changed since 2.0 and arrays
-     * of contexts are no longer supported.
-     * </p>
-     * <p>
-     * Thus the only valid non-<code>null</code> return type for this method
-     * is a <code>String</code> representing a context id. The previously
-     * valid return types are deprecated. The plural name for this method
-     * is unfortunate.
-     * </p>
-     * 
-     * @return the help context id for this entry
-     */
-    public Object getHelpContextIds();
-
-    /**
-     * Returns the id for this property. This object is
-     * used internally to distinguish one property descriptor 
-     * from another.
-     *
-     * @return the property id
-     */
-    public Object getId();
-
-    /**
-     * Returns the label provider for this property. The label provider is used
-     * to obtain the text (and possible image) for displaying the <it>value</it>
-     * of this property.
-     *
-     * @return the label provider used to display this property
-     */
-    public ILabelProvider getLabelProvider();
-
-    /**
-     * Returns whether this property descriptor and the given one are compatible.
-     * <p>
-     * The property sheet uses this method during multiple selection to determine
-     * whether two property descriptors with the same id are in fact the same 
-     * property and can be displayed as a single entry in the property sheet.
-     * </p>
-     *
-     * @param anotherProperty the other property descriptor 
-     * @return <code>true</code> if the property descriptors are compatible, and 
-     *   <code>false</code> otherwise
-     */
-    public boolean isCompatibleWith(IPropertyDescriptor anotherProperty);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntry.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntry.java
deleted file mode 100644
index 9d67f17..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntry.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * <code>IPropertySheetEntry</code> describes the model interface for the
- * property sheet.
- * <p>
- * May be implemented when supplying a custom root entry to a property page.
- * </p>
- */
-public interface IPropertySheetEntry {
-
-    /**
-     * The filter id for expert properties
-     */
-    public String FILTER_ID_EXPERT = "org.eclipse.ui.views.properties.expert"; //$NON-NLS-1$
-
-    /**
-     * Adds the given listener to this entry's collection of listeners.
-     * 
-     * @param listener
-     *            the listener to add
-     */
-    public void addPropertySheetEntryListener(
-            IPropertySheetEntryListener listener);
-
-    /**
-     * Apply the current cell editor value.
-     */
-    public void applyEditorValue();
-
-    /**
-     * Called when the entry is no longer needed
-     */
-    public void dispose();
-
-    /**
-     * Returns the entry's category.
-     * 
-     * @return the entry's category
-     */
-    public String getCategory();
-
-    /**
-     * Returns the child entries for this entry.
-     * 
-     * @return the child entries for this entry
-     */
-    public IPropertySheetEntry[] getChildEntries();
-
-    /**
-     * Return a short description of the property sheet entry. Typically this
-     * description is shown in a status line when the entry is selected.
-     * 
-     * @return the entry's description
-     */
-    public String getDescription();
-
-    /**
-     * Returns the name used to display the property.
-     * 
-     * @return the name used to display the property
-     */
-    public String getDisplayName();
-
-    /**
-     * Return the <code>CellEditor</code> used to edit the property.
-     * 
-     * @param parent
-     *            the parent widget for the editor
-     * @return the <code>CellEditor</code> used to edit the property
-     */
-    CellEditor getEditor(Composite parent);
-
-    /**
-     * Returns the error text to display if the value is invalid.
-     * 
-     * @return the error text to display when the value is invalid or
-     *         <code>null</code>
-     */
-    public String getErrorText();
-
-    /**
-     * Return the filter ids used to group entries into levels such as Expert.
-     * Valid values are defined as constants on this interface.
-     * 
-     * @return the filter ids used to group entries into levels such as Expert.
-     */
-    public String[] getFilters();
-
-    /**
-     * Returns the help context id for this entry, or <code>null</code> if
-     * this entry has no help context id.
-     * <p>
-     * NOTE: Help support system API's changed since 2.0 and arrays of contexts
-     * are no longer supported.
-     * </p>
-     * <p>
-     * Thus the only valid non- <code>null</code> return type for this method
-     * is a <code>String</code> representing a context id. The previously
-     * valid return types are deprecated. The plural name for this method is
-     * unfortunate.
-     * </p>
-     * 
-     * @return the help context id for this entry
-     */
-    public Object getHelpContextIds();
-
-    /**
-     * Returns the image for the property value, if there is one. This image is
-     * managed by the entry it came from. Callers of this method must never
-     * dispose the returned image.
-     * 
-     * @return the image for this property value or <code>null</code>
-     */
-    public Image getImage();
-
-    /**
-     * Returns the value of the objects expressed as a String.
-     * 
-     * @return the value of the objects expressed as a String
-     */
-    public String getValueAsString();
-
-    /**
-     * Returns <code>true</code> if the entry has children.
-     * 
-     * @return <code>true</code> if the entry has children
-     */
-    public boolean hasChildEntries();
-
-    /**
-     * Removes the given listener from this entry's collection of listeners.
-     * 
-     * @param listener
-     *            the listener to remove
-     */
-    public void removePropertySheetEntryListener(
-            IPropertySheetEntryListener listener);
-
-    /**
-     * Resets the property value to its default value if it has been changed.
-     * <p>
-     * Does nothing if the notion of a default value is not meaningful for 
-     * the property.
-     * </p>
-     */
-    void resetPropertyValue();
-
-    /**
-     * Sets the objects which represent the property values for this entry. In
-     * the case of the root entry these objects are the input to the viewer.
-     * 
-     * @param values the values for this entry
-     */
-    public void setValues(Object[] values);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntryListener.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntryListener.java
deleted file mode 100644
index 12b79d2..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntryListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-/**
- * Listener for changes in objects of type 
- * <code>IPropertySheetEntry</code>.
- * <p>
- * This interface is public since it appears in the api
- * of <code>IPropertySheetEntry</code>.  It is not intended
- * to be implemented outside of this package.
- * <p>
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IPropertySheetEntryListener {
-    /**
-     * A node's children have changed (children added or removed) 
-     *
-     * @param node the node whose's children have changed
-     */
-    void childEntriesChanged(IPropertySheetEntry node);
-
-    /**
-     * A entry's error message has changed
-     *
-     * @param entry the entry whose's error message has changed
-     */
-    void errorMessageChanged(IPropertySheetEntry entry);
-
-    /**
-     * A entry's value has changed 
-     *
-     * @param entry the entry whose's value has changed
-     */
-    void valueChanged(IPropertySheetEntry entry);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetPage.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetPage.java
deleted file mode 100644
index f43126a..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetPage.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.part.IPage;
-
-/**
- * Interface for a property sheet page that appears in a property sheet view.
- * This interface defines the minimum requirement for pages within the
- * property sheet view, namely they must be pages (implement <code>IPage</code>)
- * be prepared to contribute actions to the property sheet view's tool bar
- * and status line, and listen for selection changes in the active part.
- * <p>
- * Clients may implement this interface from scratch if the property sheet
- * viewer's default page is unsuitable for displaying a part's properties.
- * </p>
- *
- * @see PropertySheetPage
- */
-public interface IPropertySheetPage extends IPage, ISelectionListener {
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource.java
deleted file mode 100644
index 0bbf203..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Gunnar Wagenknecht - fix for bug 21756 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=21756)
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-/**
- * Interface to an object which is capable of supplying properties for display
- * by the standard property sheet page implementation (<code>PropertySheetPage</code>).
- * <p>
- * This interface should be implemented by clients.
- * <code>PropertySheetPage</code> discovers the properties to display from
- * currently selected elements. Elements that implement
- * <code>IPropertySource</code> directly are included, as are elements that
- * implement <code>IAdaptable</code> and have an <code>IPropertySource</code>
- * adapter. Clients should implement this interface for any newly-defined
- * elements that are to have properties displayable by
- * <code>PropertySheetPage</code>. Note that in the latter case, the client
- * will also need to register a suitable adapter factory with the platform's
- * adapter manager (<code>Platform.getAdapterManager</code>).
- * </p>
- * 
- * @see org.eclipse.core.runtime.IAdaptable
- * @see org.eclipse.core.runtime.Platform#getAdapterManager()
- * @see org.eclipse.ui.views.properties.PropertySheetPage
- * @see org.eclipse.ui.views.properties.IPropertySource2
- */
-public interface IPropertySource {
-
-	/**
-	 * Returns a value for this property source that can be edited in a property
-	 * sheet.
-	 * <p>
-	 * This value is used when this <code>IPropertySource</code> is appearing
-	 * in the property sheet as the value of a property of some other
-	 * <code>IPropertySource</code>
-	 * </p>
-	 * <p>
-	 * This value is passed as the input to a cell editor opening on an
-	 * <code>IPropertySource</code>.
-	 * </p>
-	 * <p>
-	 * This value is also used when an <code>IPropertySource</code> is being
-	 * used as the value in a <code>setPropertyValue</code> message. The
-	 * reciever of the message would then typically use the editable value to
-	 * update the original property source or construct a new instance.
-	 * </p>
-	 * <p>
-	 * For example an email address which is a property source may have an
-	 * editable value which is a string so that it can be edited in a text cell
-	 * editor. The email address would also have a constructor or setter that
-	 * takes the edited string so that an appropriate instance can be created or
-	 * the original instance modified when the edited value is set.
-	 * </p>
-	 * <p>
-	 * This behavior is important for another reason. When the property sheet is
-	 * showing properties for more than one object (multiple selection), a
-	 * property sheet entry will display and edit a single value (typically
-	 * coming from the first selected object). After a property has been edited
-	 * in a cell editor, the same value is set as the property value for all of
-	 * the objects. This is fine for primitive types but otherwise all of the
-	 * objects end up with a reference to the same value. Thus by creating an
-	 * editable value and using it to update the state of the original property
-	 * source object, one is able to edit several property source objects at
-	 * once (multiple selection).
-	 * 
-	 * @return a value that can be edited
-	 */
-	public Object getEditableValue();
-
-	/**
-	 * Returns the list of property descriptors for this property source. The
-	 * <code>getPropertyValue</code> and <code>setPropertyValue</code>
-	 * methods are used to read and write the actual property values by
-	 * specifying the property ids from these property descriptors.
-	 * <p>
-	 * Implementors should cache the descriptors as they will be asked for the
-	 * descriptors with any edit/update. Since descriptors provide cell editors,
-	 * returning the same descriptors if possible allows for efficient updating.
-	 * </p>
-	 * 
-	 * @return the property descriptors
-	 */
-	public IPropertyDescriptor[] getPropertyDescriptors();
-
-	/**
-	 * Returns the value of the property with the given id if it has one.
-	 * Returns <code>null</code> if the property's value is <code>null</code>
-	 * value or if this source does not have the specified property.
-	 * 
-	 * @see #setPropertyValue
-	 * @param id
-	 *            the id of the property being set
-	 * @return the value of the property, or <code>null</code>
-	 */
-	public Object getPropertyValue(Object id);
-
-	/**
-	 * Returns whether the value of the property with the given id has changed
-	 * from its default value. Returns <code>false</code> if this source does
-	 * not have the specified property.
-	 * <p>
-	 * If the notion of default value is not meaningful for the specified
-	 * property then <code>false</code> is returned.
-	 * </p>
-	 * 
-	 * @param id
-	 *            the id of the property
-	 * @return <code>true</code> if the value of the specified property has
-	 *         changed from its original default value, <code>false</code> if
-	 *         the specified property does not have a meaningful default value,
-	 *         and <code>false</code> if this source does not have the
-	 *         specified property
-	 * @see IPropertySource2#isPropertyResettable(Object)
-	 * @see #resetPropertyValue(Object)
-	 */
-	public boolean isPropertySet(Object id);
-
-	/**
-	 * Resets the property with the given id to its default value if possible.
-	 * <p>
-	 * Does nothing if the notion of a default value is not meaningful for the
-	 * specified property, or if the property's value cannot be changed, or if
-	 * this source does not have the specified property.
-	 * </p>
-	 * <p>
-	 * Callers will check if this <code>IPropertySource</code> implements
-	 * <code>IPropertySource2</code> and this method will only be called if
-	 * <code>IPropertySource2#isPropertyResettable(Object)</code> returns
-	 * <code>true</code> for the property with the given id.
-	 * </p>
-	 * 
-	 * @param id
-	 *            the id of the property being reset
-	 * @see #isPropertySet(Object)
-	 * @see IPropertySource2#isPropertyResettable(Object)
-	 */
-	public void resetPropertyValue(Object id);
-
-	/**
-	 * Sets the property with the given id if possible. Does nothing if the
-	 * property's value cannot be changed or if this source does not have the
-	 * specified property.
-	 * <p>
-	 * In general, a property source should not directly reference the value
-	 * parameter unless it is an atomic object that can be shared, such as a
-	 * string.
-	 * </p>
-	 * <p>
-	 * An important reason for this is that several property sources with
-	 * compatible descriptors could be appearing in the property sheet at the
-	 * same time. An editor produces a single edited value which is passed as
-	 * the value parameter of this message to all the property sources. Thus to
-	 * avoid a situation where all of the property sources reference the same
-	 * value they should use the value parameter to create a new instance of the
-	 * real value for the given property.
-	 * </p>
-	 * <p>
-	 * There is another reason why a level of indirection is useful. The real
-	 * value of property may be a type that cannot be edited with a standard
-	 * cell editor. However instead of returning the real value in
-	 * <code>getPropertyValue</code>, the value could be converted to a
-	 * <code>String</code> which could be edited with a standard cell editor.
-	 * The edited value will be passed to this method which can then turn it
-	 * back into the real property value.
-	 * </p>
-	 * <p>
-	 * Another variation on returning a value other than the real property value
-	 * in <code>getPropertyValue</code> is to return a value which is an
-	 * <code>IPropertySource</code> (or for which the property sheet can
-	 * obtain an <code>IPropertySource</code>). In this case the value to
-	 * edit is obtained from the child property source using
-	 * <code>getEditableValue</code>. It is this editable value that will be
-	 * passed back via this method when it has been editted
-	 * </p>
-	 * 
-	 * @see #getPropertyValue
-	 * @see #getEditableValue
-	 * @param id
-	 *            the id of the property being set
-	 * @param value
-	 *            the new value for the property; <code>null</code> is allowed
-	 */
-	public void setPropertyValue(Object id, Object value);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource2.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource2.java
deleted file mode 100644
index ca973ae..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource2.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Gunnar Wagenknecht - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-/**
- * Extension to the standard <code>IPropertySource</code> interface.
- * <p>
- * This interface provides extended API to <code>IPropertySource</code> to
- * allow an easier indication of properties that have a default value and can be
- * resetted.
- * </p>
- * 
- * @since 3.0
- * @see org.eclipse.ui.views.properties.IPropertySource
- */
-public interface IPropertySource2 extends IPropertySource {
-
-    /**
-     * Returns whether the value of the property with the specified id is
-     * resettable to a default value.
-     * 
-     * @param id
-     *            the id of the property
-     * @return <code>true</code> if the property with the specified id has a
-     *         meaningful default value to which it can be resetted, and
-     *         <code>false</code> otherwise
-     * @see IPropertySource#resetPropertyValue(Object)
-     * @see IPropertySource#isPropertySet(Object)
-     */
-    boolean isPropertyResettable(Object id);
-
-    /**
-     * <code>IPropertySource2</code> overrides the specification of this <code>IPropertySource</code> 
-     * method to return <code>true</code> instead of <code>false</code> if the specified 
-     * property does not have a meaningful default value.
-     * <code>isPropertyResettable</code> will only be called if <code>isPropertySet</code> returns
-     * <code>true</code>.
-     * <p> 
-     * Returns whether the value of the property with the given id has changed
-     * from its default value. Returns <code>false</code> if this source does
-     * not have the specified property.
-     * </p>
-     * <p>
-     * If the notion of default value is not meaningful for the specified
-     * property then <code>true</code> is returned.
-     * </p>
-     * 
-     * @param id
-     *            the id of the property
-     * @return <code>true</code> if the value of the specified property has
-     *         changed from its original default value, <code>true</code> if
-     *         the specified property does not have a meaningful default value,
-     *         and <code>false</code> if this source does not have the
-     *         specified property
-     * @see IPropertySource2#isPropertyResettable(Object)
-     * @see #resetPropertyValue(Object)
-     * @since 3.1
-     */
-    public boolean isPropertySet(Object id);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySourceProvider.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySourceProvider.java
deleted file mode 100644
index 9b79b13..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySourceProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-/**
- * Interface used by {@link org.eclipse.ui.views.properties.PropertySheetEntry}
- * to obtain an {@link org.eclipse.ui.views.properties.IPropertySource} for a
- * given object.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- */
-public interface IPropertySourceProvider {
-	
-	/**
-	 * Returns a property source for the given object.
-	 * 
-	 * @param object
-	 *            the object
-	 * @return the property source for the object passed in (maybe
-	 *         <code>null</code>)
-	 */
-	public IPropertySource getPropertySource(Object object);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyColumnLabelProvider.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyColumnLabelProvider.java
deleted file mode 100644
index 1db706d..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyColumnLabelProvider.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   Ed Merks, IBM - Initial API and implementation (bug 220843)
- *
- */
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A column label provider that returns label text and images based on a
- * {@link IPropertySourceProvider}, forwarding requests for text and image to
- * the label provider returned from the property descriptor for the given
- * property id.
- * 
- * @see IPropertyDescriptor#getLabelProvider()
- * 
- * @since 3.3
- * 
- * @see PropertyEditingSupport
- */
-public class PropertyColumnLabelProvider extends ColumnLabelProvider {
-	protected IPropertySourceProvider propertySourceProvider;
-	protected Object propertyID;
-
-	/**
-	 * Creates a new instance based on the given property source provider and
-	 * property id.
-	 * 
-	 * @param propertySourceProvider
-	 *            the property source provider
-	 * @param propertyID
-	 *            the property id
-	 */
-	public PropertyColumnLabelProvider(
-			IPropertySourceProvider propertySourceProvider, Object propertyID) {
-		this.propertySourceProvider = propertySourceProvider;
-		this.propertyID = propertyID;
-	}
-
-	public String getText(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		IPropertyDescriptor[] propertyDescriptors = propertySource
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			IPropertyDescriptor propertyDescriptor = propertyDescriptors[i];
-			if (propertyID.equals(propertyDescriptor.getId())) {
-				return propertyDescriptor.getLabelProvider().getText(
-						propertySource.getPropertyValue(propertyID));
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public Image getImage(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		IPropertyDescriptor[] propertyDescriptors = propertySource
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			IPropertyDescriptor propertyDescriptor = propertyDescriptors[i];
-			if (propertyID.equals(propertyDescriptor.getId())) {
-				return propertyDescriptor.getLabelProvider().getImage(
-						propertySource.getPropertyValue(propertyID));
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java
deleted file mode 100644
index ab02701..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Standard implementation for property descriptors.
- * <p>
- * The required attributes of property descriptors (id and display name) are
- * passed to the constructor; the optional attributes can be configured using
- * the various set methods (all have reasonable default values):
- * <ul>
- *   <li><code>setDescription</code></li>
- *   <li><code>setCategory</code></li>
- *   <li><code>setLabelProvider</code></li>
- *   <li><code>setHelpContexts</code></li>
- * </ul>
- * Subclasses should reimplement <code>getPropertyEditor</code> to provide a
- * cell editor for changing the value; otherwise the property will be 
- * effectively read only.
- * </p>
- * <p>
- * There are several concrete subclasses provided in this package that cover
- * the most common cases:
- * <ul>
- *   <li><code>TextPropertyDescriptor</code> - edits with a 
- *      <code>TextCellEditor</code></li>
- *   <li><code>ComboBoxPropertyDescriptor - edits with a
- *      <code>ComboBoxCellEditor</code></code></li>
- *   <li><code>ColorPropertyDescriptor - edits with a 
- *      <code>ColorCellEditor</code></code></li>
- * </ul>
- * </p>
- */
-public class PropertyDescriptor implements IPropertyDescriptor {
-
-    /**
-     * The property id.
-     */
-    private Object id;
-
-    /**
-     * The name to display for the property.
-     */
-    private String display;
-
-    /**
-     * Category name, or <code>null</code> if none (the default).
-     */
-    private String category = null;
-
-    /**
-     * Description of the property, or <code>null</code> if none (the default). 
-     */
-    private String description = null;
-
-    /**
-     * The help context ids, or <code>null</code> if none (the default). 
-     */
-    private Object helpIds;
-
-    /**
-     * The flags used to filter the property.
-     */
-    private String[] filterFlags;
-
-    /**
-     * The object that provides the property value's text and image, or 
-     * <code>null</code> if the default label provider is used (the default).
-     */
-    private ILabelProvider labelProvider = null;
-
-    /**
-     * The object to validate the values in the cell editor, or <code>null</code>
-     * if none (the default).
-     */
-    private ICellEditorValidator validator;
-
-    /**
-     * Indicates if the descriptor is compatible with other descriptors of this
-     * type. <code>false</code> by default.
-     */
-    private boolean incompatible = false;
-
-    /**
-     * Creates a new property descriptor with the given id and display name
-     * @param id 
-     * @param displayName 
-     */
-    public PropertyDescriptor(Object id, String displayName) {
-        Assert.isNotNull(id);
-        Assert.isNotNull(displayName);
-        this.id = id;
-        this.display = displayName;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns <code>null</code>.
-     * <p>
-     * Since no cell editor is returned, the property is read only.
-     * </p>
-     */
-    public CellEditor createPropertyEditor(Composite parent) {
-        return null;
-    }
-
-    /**
-     * Returns <code>true</code> if this property descriptor is to be always 
-     * considered incompatible with any other property descriptor.
-     * This prevents a property from displaying during multiple 
-     * selection.
-     *
-     * @return <code>true</code> to indicate always incompatible
-     */
-    protected boolean getAlwaysIncompatible() {
-        return incompatible;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setCategory</code> method. If unset, this method returns
-     * <code>null</code> indicating the default category.
-     *
-     * @see #setCategory
-     */
-    public String getCategory() {
-        return category;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setDescription</code> method. If unset, this method returns
-     * <code>null</code> indicating no description.
-     *
-     * @see #setDescription
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * The <code>SimplePropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value supplied
-     * on the constructor.
-     */
-    public String getDisplayName() {
-        return display;
-    }
-
-    /**
-     * The <code>SimplePropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setFilterFlags</code> method. If unset, this method returns
-     * <code>null</code>.
-     * <p>
-     * Valid values for these flags are declared as constants on 
-     *  <code>IPropertySheetEntry</code>
-     */
-    public String[] getFilterFlags() {
-        return filterFlags;
-    }
-
-    /**
-     * The <code>SimplePropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setHelpContextId</code> method. If unset, this method returns
-     * <code>null</code>.
-     *
-     * @see #setHelpContextIds
-     */
-    public Object getHelpContextIds() {
-        return helpIds;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value supplied
-     * on the constructor.
-     */
-    public Object getId() {
-        return id;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setProvider</code> method or, if no value has been set
-     * it returns a <code>LabelProvider</code>
-     *
-     * @see #setLabelProvider
-     */
-    public ILabelProvider getLabelProvider() {
-        if (labelProvider != null) {
-			return labelProvider;
-		}
-		return new LabelProvider();
-    }
-
-    /**
-     * Returns the input validator for editing the property.
-     *
-     * @return the validator used to verify correct values for this property,
-     *   or <code>null</code>
-     */
-    protected ICellEditorValidator getValidator() {
-        return validator;
-    }
-
-    /** 
-     * Returns whether a label provider has been set on the receiver.
-     * @return whether a label provider has been set on the receiver.
-     * @see #setLabelProvider
-     * @since 3.0
-     */
-    public boolean isLabelProviderSet() {
-        return labelProvider != null;
-    }
-
-    /**
-     * The <code>SimplePropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns true if the other
-     * property has the same id and category and <code>getAlwaysIncompatible()</code>
-     * returns false
-     */
-    public boolean isCompatibleWith(IPropertyDescriptor anotherProperty) {
-        if (getAlwaysIncompatible()) {
-			return false;
-		}
-
-        // Compare id		
-        Object id1 = getId();
-        Object id2 = anotherProperty.getId();
-        if (!id1.equals(id2)) {
-			return false;
-		}
-
-        // Compare Category (may be null)
-        if (getCategory() == null) {
-            if (anotherProperty.getCategory() != null) {
-				return false;
-			}
-        } else {
-            if (!getCategory().equals(anotherProperty.getCategory())) {
-				return false;
-			}
-        }
-
-        return true;
-    }
-
-    /**
-     * Sets a flag indicating whether this property descriptor is to be always 
-     * considered incompatible with any other property descriptor.
-     * Setting this flag prevents a property from displaying during multiple 
-     * selection.
-     *
-     * @param flag <code>true</code> to indicate always incompatible
-     */
-    public void setAlwaysIncompatible(boolean flag) {
-        incompatible = flag;
-    }
-
-    /**
-     * Sets the category for this property descriptor.
-     * 
-     * @param category the category for the descriptor, or <code>null</code> if none
-     * @see #getCategory
-     */
-    public void setCategory(String category) {
-        this.category = category;
-    }
-
-    /**
-     * Sets the description for this property descriptor.
-     * The description should be limited to a single line so that it can be
-     * displayed in the status line.
-     * 
-     * @param description the description, or <code>null</code> if none
-     * @see #getDescription
-     */
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    /**
-     * Sets the the filter flags for this property descriptor.
-     * The description should be limited to a single line so that it can be
-     * displayed in the status line.
-     * <p>
-     * Valid values for these flags are declared as constants on 
-     *  <code>IPropertySheetEntry</code>
-     * </p>
-     * 
-     * @param value the filter flags
-     * @see #getFilterFlags
-     */
-    public void setFilterFlags(String value[]) {
-        filterFlags = value;
-    }
-
-    /**
-     * Sets the help context id for this property descriptor.
-     *
-     * NOTE: Help support system API's changed since 2.0 and arrays
-     * of contexts are no longer supported.
-     * </p>
-     * <p>
-     * Thus the only valid parameter type for this method
-     * is a <code>String</code> representing a context id. 
-     * The previously valid parameter types are deprecated. 
-     * The plural name for this method is unfortunate.
-     * </p>
-     * 
-     * @param contextIds the help context ids, or <code>null</code> if none
-     * @see #getHelpContextIds
-     */
-    public void setHelpContextIds(Object contextIds) {
-        helpIds = contextIds;
-    }
-
-    /**
-     * Sets the label provider for this property descriptor.
-     * <p>
-     * If no label provider is set an instance of <code>LabelProvider</code>
-     * will be created as the default when needed.
-     * </p>
-     * 
-     * @param provider the label provider for the descriptor, or 
-     *   <code>null</code> if the default label provider should be used
-     * @see #getLabelProvider
-     */
-    public void setLabelProvider(ILabelProvider provider) {
-        labelProvider = provider;
-    }
-
-    /**
-     * Sets the input validator for the cell editor for this property descriptor.
-     * <p>
-     * [Issue: This method should be unnecessary is the cell editor's own
-     *  validator is used.
-     * ]
-     * </p>
-     * 
-     * @param validator the cell input validator, or <code>null</code> if none
-     */
-    public void setValidator(ICellEditorValidator validator) {
-        this.validator = validator;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyEditingSupport.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyEditingSupport.java
deleted file mode 100644
index f43dff7..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyEditingSupport.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   Ed Merks, IBM - Initial API and implementation (bug 220843)
- *
- */
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * A concrete subclass of {@link EditingSupport} that implements cell editing
- * support for column-based viewers (such as e.g. {@link TreeViewer} or
- * {@link TableViewer}) based on an {@link IPropertySourceProvider},
- * forwarding requests to the {@link IPropertySource} or
- * {@link IPropertyDescriptor} for the given property ID.
- * 
- * @since 3.3
- * 
- * @see PropertyColumnLabelProvider
- */
-public class PropertyEditingSupport extends EditingSupport {
-	protected IPropertySourceProvider propertySourceProvider;
-	protected Object propertyID;
-
-	/**
-	 * Creates a new instance to be used with the given viewer, based on the
-	 * given property source provider and property ID.
-	 * 
-	 * @param viewer
-	 *            the column viewer
-	 * @param propertySourceProvider
-	 *            the property source provider
-	 * @param propertyID
-	 *            the property ID
-	 */
-	public PropertyEditingSupport(ColumnViewer viewer,
-			IPropertySourceProvider propertySourceProvider, Object propertyID) {
-		super(viewer);
-		this.propertySourceProvider = propertySourceProvider;
-		this.propertyID = propertyID;
-	}
-
-	protected boolean canEdit(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		IPropertyDescriptor[] propertyDescriptors = propertySource
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			IPropertyDescriptor propertyDescriptor = propertyDescriptors[i];
-			if (propertyID.equals(propertyDescriptor.getId())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	protected CellEditor getCellEditor(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		IPropertyDescriptor[] propertyDescriptors = propertySource
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			IPropertyDescriptor propertyDescriptor = propertyDescriptors[i];
-			if (propertyID.equals(propertyDescriptor.getId())) {
-				return propertyDescriptor
-						.createPropertyEditor((Composite) getViewer()
-								.getControl());
-			}
-		}
-		return null;
-	}
-
-	protected Object getValue(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		Object value = propertySource.getPropertyValue(propertyID);
-		IPropertySource valuePropertySource = propertySourceProvider
-				.getPropertySource(value);
-		if (valuePropertySource != null) {
-			value = valuePropertySource.getEditableValue();
-		}
-		return value;
-	}
-
-	protected void setValue(Object object, Object value) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		propertySource.setPropertyValue(propertyID, value);
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
deleted file mode 100644
index ae5e28f..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-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
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class PropertySheet extends PageBookView implements ISelectionListener {
-    /**
-     * 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 238a95b..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.action.Action;
-
-/**
- * This is the base class of all the local actions used
- * in the PropertySheet.
- */
-/*package*/abstract class PropertySheetAction extends Action {
-    protected PropertySheetViewer viewer;
-
-    private String id;
-
-    /**
-     * Create a PropertySheetViewer action.
-     */
-    protected PropertySheetAction(PropertySheetViewer viewer, String name) {
-        super(name);
-        this.id = name;
-        this.viewer = viewer;
-    }
-
-    /**
-     * Return the unique action ID that will be
-     * used in contribution managers.
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Return the PropertySheetViewer
-     * @return the PropertySheetViewer
-     */
-    public PropertySheetViewer getPropertySheet() {
-        return viewer;
-    }
-
-    /**
-     * Set the unique ID that should be used
-     * in the contribution managers.
-     */
-    public void setId(String newId) {
-        id = newId;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java
deleted file mode 100644
index 1ab9876..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A category in a PropertySheet used to group <code>IPropertySheetEntry</code>
- * entries so they are displayed together.
- */
-/*package*/class PropertySheetCategory {
-    private String categoryName;
-
-    private List entries = new ArrayList();
-
-    private boolean shouldAutoExpand = true;
-
-    /**
-     * Create a PropertySheet category with name.
-     * @param name 
-     */
-    public PropertySheetCategory(String name) {
-        categoryName = name;
-    }
-
-    /**
-     * Add an <code>IPropertySheetEntry</code> to the list
-     * of entries in this category. 
-     * @param entry 
-     */
-    public void addEntry(IPropertySheetEntry entry) {
-        entries.add(entry);
-    }
-
-    /**
-     * Return the category name.
-     * @return the category name
-     */
-    public String getCategoryName() {
-        return categoryName;
-    }
-
-    /**
-     * Returns <code>true</code> if this category should be automatically 
-     * expanded. The default value is <code>true</code>.
-     * 
-     * @return <code>true</code> if this category should be automatically 
-     * expanded, <code>false</code> otherwise
-     */
-    public boolean getAutoExpand() {
-        return shouldAutoExpand;
-    }
-
-    /**
-     * Sets if this category should be automatically 
-     * expanded.
-     * @param autoExpand 
-     */
-    public void setAutoExpand(boolean autoExpand) {
-        shouldAutoExpand = autoExpand;
-    }
-
-    /**
-     * Returns the entries in this category.
-     *
-     * @return the entries in this category
-     */
-    public IPropertySheetEntry[] getChildEntries() {
-        return (IPropertySheetEntry[]) entries
-                .toArray(new IPropertySheetEntry[entries.size()]);
-    }
-
-    /**
-     * Removes all of the entries in this category.
-     * Doing so allows us to reuse this category entry.
-     */
-    public void removeAllEntries() {
-        entries = new ArrayList();
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
deleted file mode 100644
index c95bfd5..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
+++ /dev/null
@@ -1,791 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Gunnar Wagenknecht - fix for bug 21756 [PropertiesView] property view sorting
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.internal.views.ViewsPlugin;
-
-/**
- * <code>PropertySheetEntry</code> is an implementation of
- * <code>IPropertySheetEntry</code> which uses <code>IPropertySource</code>
- * and <code>IPropertyDescriptor</code> to interact with domain model objects.
- * <p>
- * Every property sheet entry has a single descriptor (except the root entry
- * which has none). This descriptor determines what property of its objects it
- * will display/edit.
- * </p>
- * <p>
- * Entries do not listen for changes in their objects. Since there is no
- * restriction on properties being independent, a change in one property may
- * affect other properties. The value of a parent's property may also change. As
- * a result we are forced to refresh the entire entry tree when a property
- * changes value.
- * </p>
- * 
- * @since 3.0 (was previously internal)
- */
-public class PropertySheetEntry extends EventManager implements
-		IPropertySheetEntry {
-
-	/**
-	 * The values we are displaying/editing. These objects repesent the value of
-	 * one of the properties of the values of our parent entry. Except for the
-	 * root entry where they represent the input (selected) objects.
-	 */
-	private Object[] values = new Object[0];
-
-	/**
-	 * The property sources for the values we are displaying/editing.
-	 */
-	private Map sources = new HashMap(0);
-
-	/**
-	 * The value of this entry is defined as the the first object in its value
-	 * array or, if that object is an <code>IPropertySource</code>, the value
-	 * it returns when sent <code>getEditableValue</code>
-	 */
-	private Object editValue;
-
-	private PropertySheetEntry parent;
-
-	private IPropertySourceProvider propertySourceProvider;
-
-	private IPropertyDescriptor descriptor;
-
-	private CellEditor editor;
-
-	private String errorText;
-
-	private PropertySheetEntry[] childEntries = null;
-
-	/**
-	 * Create the CellEditorListener for this entry. It listens for value
-	 * changes in the CellEditor, and cancel and finish requests.
-	 */
-	private ICellEditorListener cellEditorListener = new ICellEditorListener() {
-		public void editorValueChanged(boolean oldValidState,
-				boolean newValidState) {
-			if (!newValidState) {
-				// currently not valid so show an error message
-				setErrorText(editor.getErrorMessage());
-			} else {
-				// currently valid
-				setErrorText(null);
-			}
-		}
-
-		public void cancelEditor() {
-			setErrorText(null);
-		}
-
-		public void applyEditorValue() {
-			PropertySheetEntry.this.applyEditorValue();
-		}
-	};
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void addPropertySheetEntryListener(
-			IPropertySheetEntryListener listener) {
-		addListenerObject(listener);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void applyEditorValue() {
-		if (editor == null) {
-			return;
-		}
-
-		// Check if editor has a valid value
-		if (!editor.isValueValid()) {
-			setErrorText(editor.getErrorMessage());
-			return;
-		}
-
-		setErrorText(null);
-
-		// See if the value changed and if so update
-		Object newValue = editor.getValue();
-		boolean changed = false;
-		if (values.length > 1) {
-			changed = true;
-		} else if (editValue == null) {
-			if (newValue != null) {
-				changed = true;
-			}
-		} else if (!editValue.equals(newValue)) {
-			changed = true;
-		}
-
-		// Set the editor value
-		if (changed) {
-			setValue(newValue);
-		}
-	}
-
-	/**
-	 * Return the unsorted intersection of all the
-	 * <code>IPropertyDescriptor</code>s for the objects.
-	 * 
-	 * @return List
-	 */
-	private List computeMergedPropertyDescriptors() {
-		if (values.length == 0) {
-			return new ArrayList(0);
-		}
-
-		IPropertySource firstSource = getPropertySource(values[0]);
-		if (firstSource == null) {
-			return new ArrayList(0);
-		}
-
-		if (values.length == 1) {
-			return Arrays.asList(firstSource.getPropertyDescriptors());
-		}
-
-		// get all descriptors from each object
-		Map[] propertyDescriptorMaps = new Map[values.length];
-		for (int i = 0; i < values.length; i++) {
-			Object object = values[i];
-			IPropertySource source = getPropertySource(object);
-			if (source == null) {
-				// if one of the selected items is not a property source
-				// then we show no properties
-				return new ArrayList(0);
-			}
-			// get the property descriptors keyed by id
-			propertyDescriptorMaps[i] = computePropertyDescriptorsFor(source);
-		}
-
-		// intersect
-		Map intersection = propertyDescriptorMaps[0];
-		for (int i = 1; i < propertyDescriptorMaps.length; i++) {
-			// get the current ids
-			Object[] ids = intersection.keySet().toArray();
-			for (int j = 0; j < ids.length; j++) {
-				Object object = propertyDescriptorMaps[i].get(ids[j]);
-				if (object == null ||
-				// see if the descriptors (which have the same id) are
-						// compatible
-						!((IPropertyDescriptor) intersection.get(ids[j]))
-								.isCompatibleWith((IPropertyDescriptor) object)) {
-					intersection.remove(ids[j]);
-				}
-			}
-		}
-
-		// sorting is handled in the PropertySheetViewer, return unsorted (in
-		// the original order)
-		ArrayList result = new ArrayList(intersection.size());
-		IPropertyDescriptor[] firstDescs = firstSource.getPropertyDescriptors();
-		for (int i = 0; i < firstDescs.length; i++) {
-			IPropertyDescriptor desc = firstDescs[i];
-			if (intersection.containsKey(desc.getId())) {
-				result.add(desc);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an map of property descritptors (keyed on id) for the given
-	 * property source.
-	 * 
-	 * @param source
-	 *            a property source for which to obtain descriptors
-	 * @return a table of decriptors keyed on their id
-	 */
-	private Map computePropertyDescriptorsFor(IPropertySource source) {
-		IPropertyDescriptor[] descriptors = source.getPropertyDescriptors();
-		Map result = new HashMap(descriptors.length * 2 + 1);
-		for (int i = 0; i < descriptors.length; i++) {
-			result.put(descriptors[i].getId(), descriptors[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Create our child entries.
-	 */
-	private void createChildEntries() {
-		// get the current descriptors
-		List descriptors = computeMergedPropertyDescriptors();
-
-		// rebuild child entries using old when possible
-		PropertySheetEntry[] newEntries = new PropertySheetEntry[descriptors
-				.size()];
-		for (int i = 0; i < descriptors.size(); i++) {
-			IPropertyDescriptor d = (IPropertyDescriptor) descriptors.get(i);
-			// create new entry
-			PropertySheetEntry entry = createChildEntry();
-			entry.setDescriptor(d);
-			entry.setParent(this);
-			entry.setPropertySourceProvider(propertySourceProvider);
-			entry.refreshValues();
-			newEntries[i] = entry;
-		}
-		// only assign if successful
-		childEntries = newEntries;
-	}
-
-	/**
-	 * Factory method to create a new child <code>PropertySheetEntry</code>
-	 * instance.
-	 * <p>
-	 * Subclasses may overwrite to create new instances of their own class.
-	 * </p>
-	 * 
-	 * @return a new <code>PropertySheetEntry</code> instance for the
-	 *         descriptor passed in
-	 * @since 3.1
-	 */
-	protected PropertySheetEntry createChildEntry() {
-		return new PropertySheetEntry();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void dispose() {
-		if (editor != null) {
-			editor.dispose();
-			editor = null;
-		}
-		// recursive call to dispose children
-		PropertySheetEntry[] entriesToDispose = childEntries;
-		childEntries = null;
-		if (entriesToDispose != null) {
-			for (int i = 0; i < entriesToDispose.length; i++) {
-				// an error in a property source may cause refreshChildEntries
-				// to fail. Since the Workbench handles such errors we
-				// can be left in a state where a child entry is null.
-				if (entriesToDispose[i] != null) {
-					entriesToDispose[i].dispose();
-				}
-			}
-		}
-	}
-
-	/**
-	 * The child entries of this entry have changed (children added or removed).
-	 * Notify all listeners of the change.
-	 */
-	private void fireChildEntriesChanged() {
-		Object[] array = getListeners();
-		for (int i = 0; i < array.length; i++) {
-			IPropertySheetEntryListener listener = (IPropertySheetEntryListener) array[i];
-			listener.childEntriesChanged(this);
-		}
-	}
-
-	/**
-	 * The error message of this entry has changed. Notify all listeners of the
-	 * change.
-	 */
-	private void fireErrorMessageChanged() {
-		Object[] array = getListeners();
-		for (int i = 0; i < array.length; i++) {
-			IPropertySheetEntryListener listener = (IPropertySheetEntryListener) array[i];
-			listener.errorMessageChanged(this);
-		}
-	}
-
-	/**
-	 * The values of this entry have changed. Notify all listeners of the
-	 * change.
-	 */
-	private void fireValueChanged() {
-		Object[] array = getListeners();
-		for (int i = 0; i < array.length; i++) {
-			IPropertySheetEntryListener listener = (IPropertySheetEntryListener) array[i];
-			listener.valueChanged(this);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getCategory() {
-		return descriptor.getCategory();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public IPropertySheetEntry[] getChildEntries() {
-		if (childEntries == null) {
-			createChildEntries();
-		}
-		return childEntries;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getDescription() {
-		return descriptor.getDescription();
-	}
-
-	/**
-	 * Returns the descriptor for this entry.
-	 * 
-	 * @return the descriptor for this entry
-	 * @since 3.1 (was previously private)
-	 */
-	protected IPropertyDescriptor getDescriptor() {
-		return descriptor;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getDisplayName() {
-		return descriptor.getDisplayName();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySheetEntry#getEditor(org.eclipse.swt.widgets.Composite)
-	 */
-	public CellEditor getEditor(Composite parent) {
-
-		if (editor == null) {
-			editor = descriptor.createPropertyEditor(parent);
-			if (editor != null) {
-				editor.addListener(cellEditorListener);
-			}
-		}
-		if (editor != null) {
-			editor.setValue(editValue);
-			setErrorText(editor.getErrorMessage());
-		}
-		return editor;
-	}
-
-	/**
-	 * Returns the edit value for the object at the given index.
-	 * 
-	 * @param index
-	 *            the value object index
-	 * @return the edit value for the object at the given index
-	 */
-	protected Object getEditValue(int index) {
-		Object value = values[index];
-		IPropertySource source = getPropertySource(value);
-		if (source != null) {
-			value = source.getEditableValue();
-		}
-		return value;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getErrorText() {
-		return errorText;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getFilters()[] {
-		return descriptor.getFilterFlags();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public Object getHelpContextIds() {
-		return descriptor.getHelpContextIds();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public Image getImage() {
-		ILabelProvider provider = descriptor.getLabelProvider();
-		if (provider == null) {
-			return null;
-		}
-		return provider.getImage(editValue);
-	}
-
-	/**
-	 * Returns the parent of this entry.
-	 * 
-	 * @return the parent entry, or <code>null</code> if it has no parent
-	 * @since 3.1
-	 */
-	protected PropertySheetEntry getParent() {
-		return parent;
-	}
-
-	/**
-	 * Returns an property source for the given object.
-	 * 
-	 * @param object
-	 *            an object for which to obtain a property source or
-	 *            <code>null</code> if a property source is not available
-	 * @return an property source for the given object
-	 * @since 3.1 (was previously private)
-	 */
-	protected IPropertySource getPropertySource(Object object) {
-		if (sources.containsKey(object))
-			return (IPropertySource) sources.get(object);
-
-		IPropertySource result = null;
-		IPropertySourceProvider provider = propertySourceProvider;
-
-		if (provider == null && object != null) {
-			provider = (IPropertySourceProvider) ViewsPlugin.getAdapter(object, 
-                    IPropertySourceProvider.class, false);
-        }
-
-		if (provider != null) {
-			result = provider.getPropertySource(object);
-		} else {
-            result = (IPropertySource)ViewsPlugin.getAdapter(object, IPropertySource.class, false);
-        }
-
-		sources.put(object, result);
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getValueAsString() {
-		if (editValue == null) {
-			return "";//$NON-NLS-1$
-		}
-		ILabelProvider provider = descriptor.getLabelProvider();
-		if (provider == null) {
-			return editValue.toString();
-		}
-		String text = provider.getText(editValue);
-		if (text == null) {
-			return "";//$NON-NLS-1$
-		}
-		return text;
-	}
-
-	/**
-	 * Returns the value objects of this entry.
-	 * 
-	 * @return the value objects of this entry
-	 * @since 3.1 (was previously private)
-	 */
-	public Object[] getValues() {
-		return values;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public boolean hasChildEntries() {
-		if (childEntries != null && childEntries.length > 0) {
-			return true;
-		}
-		// see if we could have entires if we were asked
-		return computeMergedPropertyDescriptors().size() > 0;
-	}
-
-	/**
-	 * Update our child entries. This implementation tries to reuse child
-	 * entries if possible (if the id of the new descriptor matches the
-	 * descriptor id of the old entry).
-	 */
-	private void refreshChildEntries() {
-		if (childEntries == null) {
-			// no children to refresh
-			return;
-		}
-
-		// get the current descriptors
-		List descriptors = computeMergedPropertyDescriptors();
-
-		// cache old entries by their descriptor id
-		Map entryCache = new HashMap(childEntries.length * 2 + 1);
-		for (int i = 0; i < childEntries.length; i++) {
-			PropertySheetEntry childEntry = childEntries[i];
-			if (childEntry != null) {
-				entryCache.put(childEntry.getDescriptor().getId(), childEntry);
-			}
-		}
-
-		// create a list of entries to dispose
-		List entriesToDispose = new ArrayList(Arrays.asList(childEntries));
-
-		// clear the old entries
-		this.childEntries = null;
-
-		// rebuild child entries using old when possible
-		PropertySheetEntry[] newEntries = new PropertySheetEntry[descriptors
-				.size()];
-		boolean entriesChanged = descriptors.size() != entryCache.size();
-		for (int i = 0; i < descriptors.size(); i++) {
-			IPropertyDescriptor d = (IPropertyDescriptor) descriptors.get(i);
-			// see if we have an entry matching this descriptor
-			PropertySheetEntry entry = (PropertySheetEntry) entryCache.get(d
-					.getId());
-			if (entry != null) {
-				// reuse old entry
-				entry.setDescriptor(d);
-				entriesToDispose.remove(entry);
-			} else {
-				// create new entry
-				entry = createChildEntry();
-				entry.setDescriptor(d);
-				entry.setParent(this);
-				entry.setPropertySourceProvider(propertySourceProvider);
-				entriesChanged = true;
-			}
-			entry.refreshValues();
-			newEntries[i] = entry;
-		}
-
-		// only assign if successful
-		this.childEntries = newEntries;
-
-		if (entriesChanged) {
-			fireChildEntriesChanged();
-		}
-
-		// Dispose of entries which are no longer needed
-		for (int i = 0; i < entriesToDispose.size(); i++) {
-			((IPropertySheetEntry) entriesToDispose.get(i)).dispose();
-		}
-	}
-
-	/**
-	 * Refresh the entry tree from the root down.
-	 * 
-	 * @since 3.1 (was previously private)
-	 */
-	protected void refreshFromRoot() {
-		if (parent == null) {
-			refreshChildEntries();
-		} else {
-			parent.refreshFromRoot();
-		}
-	}
-
-	/**
-	 * Update our value objects. We ask our parent for the property values based
-	 * on our descriptor.
-	 */
-	private void refreshValues() {
-		// get our parent's value objects
-		Object[] currentSources = parent.getValues();
-
-		// loop through the objects getting our property value from each
-		Object[] newValues = new Object[currentSources.length];
-		for (int i = 0; i < currentSources.length; i++) {
-			IPropertySource source = parent
-					.getPropertySource(currentSources[i]);
-			newValues[i] = source.getPropertyValue(descriptor.getId());
-		}
-
-		// set our new values
-		setValues(newValues);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void removePropertySheetEntryListener(
-			IPropertySheetEntryListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void resetPropertyValue() {
-		if (parent == null) {
-			// root does not have a default value
-			return;
-		}
-
-		// Use our parent's values to reset our values.
-		boolean change = false;
-		Object[] objects = parent.getValues();
-		for (int i = 0; i < objects.length; i++) {
-			IPropertySource source = getPropertySource(objects[i]);
-			if (source.isPropertySet(descriptor.getId())) {
-				// fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=21756
-				if (source instanceof IPropertySource2) {
-					IPropertySource2 extendedSource = (IPropertySource2) source;
-					// continue with next if property is not resettable
-					if (!extendedSource
-							.isPropertyResettable(descriptor.getId())) {
-						continue;
-					}
-				}
-				source.resetPropertyValue(descriptor.getId());
-				change = true;
-			}
-		}
-		if (change) {
-			refreshFromRoot();
-		}
-	}
-
-	/**
-	 * Set the descriptor.
-	 * 
-	 * @param newDescriptor
-	 */
-	private void setDescriptor(IPropertyDescriptor newDescriptor) {
-		// if our descriptor is changing, we have to get rid
-		// of our current editor if there is one
-		if (descriptor != newDescriptor && editor != null) {
-			editor.dispose();
-			editor = null;
-		}
-		descriptor = newDescriptor;
-	}
-
-	/**
-	 * Set the error text. This should be set to null when the current value is
-	 * valid, otherwise it should be set to a error string
-	 */
-	private void setErrorText(String newErrorText) {
-		errorText = newErrorText;
-		// inform listeners
-		fireErrorMessageChanged();
-	}
-
-	/**
-	 * Sets the parent of the entry to be propertySheetEntry.
-	 * 
-	 * @param propertySheetEntry
-	 */
-	private void setParent(PropertySheetEntry propertySheetEntry) {
-		parent = propertySheetEntry;
-	}
-
-	/**
-	 * Sets a property source provider for this entry. This provider is used to
-	 * obtain an <code>IPropertySource</code> for each of this entries
-	 * objects. If no provider is set then a default provider is used.
-	 * 
-	 * @param provider
-	 *            IPropertySourceProvider
-	 */
-	public void setPropertySourceProvider(IPropertySourceProvider provider) {
-		propertySourceProvider = provider;
-	}
-
-	/**
-	 * Set the value for this entry.
-	 * <p>
-	 * We set the given value as the value for all our value objects. We then
-	 * call our parent to update the property we represent with the given value.
-	 * We then trigger a model refresh.
-	 * <p>
-	 * 
-	 * @param newValue
-	 *            the new value
-	 */
-	private void setValue(Object newValue) {
-		// Set the value
-		for (int i = 0; i < values.length; i++) {
-			values[i] = newValue;
-		}
-
-		// Inform our parent
-		parent.valueChanged(this);
-
-		// Refresh the model
-		refreshFromRoot();
-	}
-
-	/**
-	 * The <code>PropertySheetEntry</code> implmentation of this method
-	 * declared on<code>IPropertySheetEntry</code> will obtain an editable
-	 * value for the given objects and update the child entries.
-	 * <p>
-	 * Updating the child entries will typically call this method on the child
-	 * entries and thus the entire entry tree is updated
-	 * </p>
-	 * 
-	 * @param objects
-	 *            the new values for this entry
-	 */
-	public void setValues(Object[] objects) {
-		values = objects;
-		sources = new HashMap(values.length * 2 + 1);
-
-		if (values.length == 0) {
-			editValue = null;
-		} else {
-			// set the first value object as the entry's value
-			Object newValue = values[0];
-
-			// see if we should convert the value to an editable value
-			IPropertySource source = getPropertySource(newValue);
-			if (source != null) {
-				newValue = source.getEditableValue();
-			}
-			editValue = newValue;
-		}
-
-		// update our child entries
-		refreshChildEntries();
-
-		// inform listeners that our value changed
-		fireValueChanged();
-	}
-
-	/**
-	 * The value of the given child entry has changed. Therefore we must set
-	 * this change into our value objects.
-	 * <p>
-	 * We must inform our parent so that it can update its value objects
-	 * </p>
-	 * <p>
-	 * Subclasses may override to set the property value in some custom way.
-	 * </p>
-	 * 
-	 * @param child
-	 *            the child entry that changed its value
-	 */
-	protected void valueChanged(PropertySheetEntry child) {
-		for (int i = 0; i < values.length; i++) {
-			IPropertySource source = getPropertySource(values[i]);
-			source.setPropertyValue(child.getDescriptor().getId(), child
-					.getEditValue(i));
-		}
-
-		// inform our parent
-		if (parent != null) {
-			parent.valueChanged(this);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java
deleted file mode 100644
index 4e9931f..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java
+++ /dev/null
@@ -1,573 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Gunnar Wagenknecht - fix for bug 21756 [PropertiesView] property view sorting
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.help.IContext;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.internal.ConfigureColumnsDialog;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.window.SameShellProvider;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.HelpEvent;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IContextComputer;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.internal.views.ViewsPlugin;
-import org.eclipse.ui.internal.views.properties.PropertiesMessages;
-import org.eclipse.ui.part.CellEditorActionHandler;
-import org.eclipse.ui.part.Page;
-
-/**
- * The standard implementation of property sheet page which presents
- * a table of property names and values obtained from the current selection
- * in the active workbench part.
- * <p>
- * This page obtains the information about what properties to display from 
- * the current selection (which it tracks). 
- * </p>
- * <p>
- * The model for this page is a hierarchy of <code>IPropertySheetEntry</code>.
- * The page may be configured with a custom model by setting the root entry.
- * <p>
- * If no root entry is set then a default model is created which uses the
- * <code>IPropertySource</code> interface to obtain the properties of
- * the current selection. This requires that the selected objects provide an
- * <code>IPropertySource</code> adapter (or implement 
- * <code>IPropertySource</code> directly). This restiction can be overcome
- * by providing this page with an <code>IPropertySourceProvider</code>. If
- * supplied, this provider will be used by the default model to obtain a
- * property source for the current selection 
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- *
- * @see IPropertySource
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class PropertySheetPage extends Page implements IPropertySheetPage, IAdaptable {
-    /**
-     * Help context id 
-     * (value <code>"org.eclipse.ui.property_sheet_page_help_context"</code>).
-     */
-    public static final String HELP_CONTEXT_PROPERTY_SHEET_PAGE = "org.eclipse.ui.property_sheet_page_help_context"; //$NON-NLS-1$
-
-    private PropertySheetViewer viewer;
-    
-    private PropertySheetSorter sorter;
-
-    private IPropertySheetEntry rootEntry;
-
-    private IPropertySourceProvider provider;
-
-    private DefaultsAction defaultsAction;
-
-    private FilterAction filterAction;
-
-    private CategoriesAction categoriesAction;
-
-    private CopyPropertyAction copyAction;
-
-    private ICellEditorActivationListener cellEditorActivationListener;
-
-    private CellEditorActionHandler cellEditorActionHandler;
-
-    private Clipboard clipboard;
-
-	private IWorkbenchPart sourcePart;
-
-	/**
-	 * Part listener which cleans up this page when the source part is closed.
-	 * This is hooked only when there is a source part.
-	 *  
-	 * @since 3.2
-	 */
-	private class PartListener implements IPartListener {
-		public void partActivated(IWorkbenchPart part) {
-		}
-
-		public void partBroughtToTop(IWorkbenchPart part) {
-		}
-
-		public void partClosed(IWorkbenchPart part) {
-			if (sourcePart == part) {
-				sourcePart = null;
-				if (viewer != null && !viewer.getControl().isDisposed()) {
-					viewer.setInput(new Object[0]);
-				}
-			}
-		}
-
-		public void partDeactivated(IWorkbenchPart part) {
-		}
-
-		public void partOpened(IWorkbenchPart part) {
-		}
-	}
-	
-	private PartListener partListener = new PartListener();
-
-	private Action columnsAction;
-	
-    /**
-     * Creates a new property sheet page.
-     */
-    public PropertySheetPage() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on <code>IPage</code>.
-     */
-    public void createControl(Composite parent) {
-        // create a new viewer
-        viewer = new PropertySheetViewer(parent);
-        viewer.setSorter(sorter);
-        
-        // set the model for the viewer
-        if (rootEntry == null) {
-            // create a new root
-            PropertySheetEntry root = new PropertySheetEntry();
-            if (provider != null) {
-				// set the property source provider
-                root.setPropertySourceProvider(provider);
-			}
-            rootEntry = root;
-        }
-        viewer.setRootEntry(rootEntry);
-        viewer.addActivationListener(getCellEditorActivationListener());
-        // add a listener to track when the entry selection changes
-        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-            public void selectionChanged(SelectionChangedEvent event) {
-                handleEntrySelection(event.getSelection());
-            }
-        });
-        initDragAndDrop();
-        makeActions();
-
-        // Create the popup menu for the page.
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.add(copyAction);
-        menuMgr.add(new Separator());
-        menuMgr.add(defaultsAction);
-        Menu menu = menuMgr.createContextMenu(viewer.getControl());
-        viewer.getControl().setMenu(menu);
-
-        // Set help on the viewer 
-        viewer.getControl().addHelpListener(new HelpListener() {
-            /*
-             * @see HelpListener#helpRequested(HelpEvent)
-             */
-            public void helpRequested(HelpEvent e) {
-                // Get the context for the selected item
-                IStructuredSelection selection = (IStructuredSelection) viewer
-                        .getSelection();
-                if (!selection.isEmpty()) {
-                    IPropertySheetEntry entry = (IPropertySheetEntry) selection
-                            .getFirstElement();
-                    Object helpContextId = entry.getHelpContextIds();
-                    if (helpContextId != null) {
-                        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);
-
-        // Columns...
-        columnsAction = new Action(PropertiesMessages.Columns_text){
-        	public void run() {
-        		Tree tree = (Tree) viewer.getControl();
-        		new ConfigureColumnsDialog(new SameShellProvider(tree), tree).open();
-        	}
-		};
-        columnsAction.setToolTipText(PropertiesMessages.Columns_toolTip);
-        
-        // Copy	
-        Shell shell = viewer.getControl().getShell();
-        clipboard = new Clipboard(shell.getDisplay());
-        copyAction = new CopyPropertyAction(viewer, "copy", clipboard); //$NON-NLS-1$
-        copyAction.setText(PropertiesMessages.CopyProperty_text);
-        copyAction.setImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPage (and Page).
-     */
-    public void makeContributions(IMenuManager menuManager,
-            IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
-
-        // add actions to the tool bar
-        toolBarManager.add(categoriesAction);
-        toolBarManager.add(filterAction);
-        toolBarManager.add(defaultsAction);
-
-        // add actions to the menu
-        menuManager.add(categoriesAction);
-        menuManager.add(filterAction);
-        menuManager.add(columnsAction);
-
-        // set status line manager into the viewer
-        viewer.setStatusLineManager(statusLineManager);
-    }
-
-    /**
-     * Updates the model for the viewer.
-     * <p>
-     * Note that this means ensuring that the model reflects the state
-     * of the current viewer input. 
-     * </p>
-     */
-    public void refresh() {
-        if (viewer == null) {
-			return;
-		}
-        // calling setInput on the viewer will cause the model to refresh
-        viewer.setInput(viewer.getInput());
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionListener.
-     */
-    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-        if (viewer == null) {
-			return;
-		}
-
-        if (sourcePart != null) {
-        	sourcePart.getSite().getPage().removePartListener(partListener);
-        	sourcePart = null;
-        }
-        
-        // change the viewer input since the workbench selection has changed.
-        if (selection instanceof IStructuredSelection) {
-        	sourcePart = part;
-            viewer.setInput(((IStructuredSelection) selection).toArray());
-        }
-
-        if (sourcePart != null) {
-        	sourcePart.getSite().getPage().addPartListener(partListener);
-        }
-    }
-
-    /**
-     * The <code>PropertySheetPage</code> implementation of this <code>IPage</code> method
-     * calls <code>makeContributions</code> for backwards compatibility with
-     * previous versions of <code>IPage</code>. 
-     * <p>
-     * Subclasses may reimplement.
-     * </p>
-     */
-    public void setActionBars(IActionBars actionBars) {
-        super.setActionBars(actionBars);
-        cellEditorActionHandler = new CellEditorActionHandler(actionBars);
-        cellEditorActionHandler.setCopyAction(copyAction);
-    }
-
-    /**
-     * Sets focus to a part in the page.
-     */
-    public void setFocus() {
-        viewer.getControl().setFocus();
-    }
-
-    /**
-     * Sets the given property source provider as
-     * the property source provider.
-     * <p>
-     * Calling this method is only valid if you are using
-     * this page's default root entry.
-     * </p>
-     * @param newProvider the property source provider
-     */
-    public void setPropertySourceProvider(IPropertySourceProvider newProvider) {
-        provider = newProvider;
-        if (rootEntry instanceof PropertySheetEntry) {
-            ((PropertySheetEntry) rootEntry)
-                    .setPropertySourceProvider(provider);
-            // the following will trigger an update
-            viewer.setRootEntry(rootEntry);
-        }
-    }
-
-    /**
-     * Sets the given entry as the model for the page.
-     *
-     * @param entry the root entry
-     */
-    public void setRootEntry(IPropertySheetEntry entry) {
-        rootEntry = entry;
-        if (viewer != null) {
-			// the following will trigger an update
-            viewer.setRootEntry(rootEntry);
-		}
-    }
-
-    /**
-	 * Sets the sorter used for sorting categories and entries in the viewer
-	 * of this page.
-	 * <p>
-	 * The default sorter sorts categories and entries alphabetically. 
-	 * </p>
-	 * @param sorter the sorter to set (<code>null</code> will reset to the
-	 * default sorter)
-     * @since 3.1
-	 */
-	protected void setSorter(PropertySheetSorter sorter) {
-		this.sorter = sorter;
-        if (viewer != null) {
-        	viewer.setSorter(sorter);
-        	
-        	// the following will trigger an update
-        	if(null != viewer.getRootEntry()) {
-				viewer.setRootEntry(rootEntry);
-			}
-        }
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetSorter.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetSorter.java
deleted file mode 100644
index 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 744e604..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetViewer.java
+++ /dev/null
@@ -1,1390 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Gunnar Wagenknecht - fix for bug 21756 [PropertiesView] property view sorting
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TreeEditor;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TreeEvent;
-import org.eclipse.swt.events.TreeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.internal.views.properties.PropertiesMessages;
-
-/**
- * The PropertySheetViewer displays the properties of objects. The model for the
- * viewer consists of a hierarchy of <code>IPropertySheetEntry</code>.
- * <p>
- * This viewer also supports the optional catogorization of the first level
- * <code>IPropertySheetEntry</code> s by using instances of
- * <code>PropertySheetCategory</code>.
- *  
- */
-/* package */
-class PropertySheetViewer extends Viewer {
-    // The input objects for the viewer
-    private Object[] input;
-
-    // The root entry of the viewer
-    private IPropertySheetEntry rootEntry;
-
-    // The current categories
-    private PropertySheetCategory[] categories;
-
-    // SWT widgets
-    private Tree tree;
-
-    /**
-     * Maintain a map from the PropertySheet entry to its
-     * corresponding TreeItem. This is used in 'findItem' to
-     * greatly increase the performance.
-     */
-    private HashMap entryToItemMap = new HashMap();
-    
-    private TreeEditor treeEditor;
-
-    private static String[] columnLabels = {
-            PropertiesMessages.PropertyViewer_property, PropertiesMessages.PropertyViewer_value };
-
-    private static String MISCELLANEOUS_CATEGORY_NAME = PropertiesMessages.PropertyViewer_misc;
-
-    // Cell editor support.
-    private int columnToEdit = 1;
-
-    private CellEditor cellEditor;
-
-    private IPropertySheetEntryListener entryListener;
-
-    private ICellEditorListener editorListener;
-
-    // Flag to indicate if categories (if any) should be shown
-    private boolean isShowingCategories = true;
-
-    // Flag to indicate expert properties should be shown
-    private boolean isShowingExpertProperties = false;
-
-    // The status line manager for showing messages
-    private IStatusLineManager statusLineManager;
-
-    // Cell editor activation listeners
-    private ListenerList activationListeners = new ListenerList();
-    
-    // the property sheet sorter
-    private PropertySheetSorter sorter = new PropertySheetSorter();
-
-    /**
-     * Creates a property sheet viewer on a newly-created tree control
-     * under the given parent. The viewer has no input, and no root entry.
-     * 
-     * @param parent
-     *            the parent control
-     */
-    public PropertySheetViewer(Composite parent) {
-        tree = new Tree(parent, SWT.FULL_SELECTION | SWT.SINGLE
-                | SWT.HIDE_SELECTION);
-
-        // configure the widget
-        tree.setLinesVisible(true);
-        tree.setHeaderVisible(true);
-
-        // configure the columns
-        addColumns();
-
-        // add our listeners to the widget
-        hookControl();
-
-        // create a new tree editor
-        treeEditor = new TreeEditor(tree);
-
-        // create the entry and editor listener
-        createEntryListener();
-        createEditorListener();
-    }
-
-    /**
-     * Activate a cell editor for the given selected tree item.
-     * 
-     * @param item
-     *            the selected tree item
-     */
-    private void activateCellEditor(TreeItem item) {
-        // ensure the cell editor is visible
-        tree.showSelection();
-
-        // Get the entry for this item
-        IPropertySheetEntry activeEntry = (IPropertySheetEntry) item.getData();
-
-        // Get the cell editor for the entry.
-        // Note that the editor parent must be the Tree control
-        cellEditor = activeEntry.getEditor(tree);
-
-        if (cellEditor == null) {
-			// unable to create the editor
-            return;
-		}
-
-        // activate the cell editor
-        cellEditor.activate();
-
-        // if the cell editor has no control we can stop now
-        Control control = cellEditor.getControl();
-        if (control == null) {
-            cellEditor.deactivate();
-            cellEditor = null;
-            return;
-        }
-
-        // add our editor listener
-        cellEditor.addListener(editorListener);
-
-        // set the layout of the tree editor to match the cell editor
-        CellEditor.LayoutData layout = cellEditor.getLayoutData();
-        treeEditor.horizontalAlignment = layout.horizontalAlignment;
-        treeEditor.grabHorizontal = layout.grabHorizontal;
-        treeEditor.minimumWidth = layout.minimumWidth;
-        treeEditor.setEditor(control, item, columnToEdit);
-
-        // set the error text from the cel editor
-        setErrorMessage(cellEditor.getErrorMessage());
-
-        // give focus to the cell editor
-        cellEditor.setFocus();
-
-        // notify of activation
-        fireCellEditorActivated(cellEditor);
-    }
-
-    /**
-     * Adds a cell editor activation listener. Has no effect if an identical
-     * activation listener is already registered.
-     * 
-     * @param listener
-     *            a cell editor activation listener
-     */
-    /* package */
-    void addActivationListener(ICellEditorActivationListener listener) {
-        activationListeners.add(listener);
-    }
-
-    /**
-     * Add columns to the tree and set up the layout manager accordingly.
-     */
-    private void addColumns() {
-
-        // create the columns
-        TreeColumn[] columns = tree.getColumns();
-        for (int i = 0; i < columnLabels.length; i++) {
-            String string = columnLabels[i];
-            if (string != null) {
-                TreeColumn column;
-                if (i < columns.length) {
-					column = columns[i];
-				} else {
-					column = new TreeColumn(tree, 0);
-				}
-                column.setText(string);
-            }
-        }
-
-        tree.addControlListener(new ControlAdapter() {
-            public void controlResized(ControlEvent e) {
-                Rectangle area = tree.getClientArea();
-                TreeColumn[] columns = tree.getColumns();
-                if (area.width > 0) {
-                    columns[0].setWidth(area.width * 40 / 100);
-                    columns[1].setWidth(area.width - columns[0].getWidth() - 4);
-                    tree.removeControlListener(this);
-                }
-            }
-        });
-
-    }
-
-    /**
-     * Asks the entry currently being edited to apply its current cell editor
-     * value.
-     */
-    private void applyEditorValue() {
-        TreeItem treeItem = treeEditor.getItem();
-        // treeItem can be null when view is opened
-        if (treeItem == null || treeItem.isDisposed()) {
-			return;
-		}
-        IPropertySheetEntry entry = (IPropertySheetEntry) treeItem.getData();
-        entry.applyEditorValue();
-    }
-
-    /**
-     * Creates the child items for the given widget (item or tree). This
-     * method is called when the item is expanded for the first time or when an
-     * item is assigned as the root of the tree.
-     * @param widget TreeItem or Tree to create the children in.
-     */
-    private void createChildren(Widget widget) {
-        // get the current child items
-        TreeItem[] childItems = getChildItems(widget);
-
-        if (childItems.length > 0) {
-            Object data = childItems[0].getData();
-            if (data != null) {
-				// children already there!
-                return;
-			}
-            // remove the dummy
-            childItems[0].dispose();
-        }
-
-        // get the children and create their tree items
-        Object node = widget.getData();
-        List children = getChildren(node);
-        if (children.isEmpty()) {
-			// this item does't actually have any children
-            return;
-		}
-        for (int i = 0; i < children.size(); i++) {
-            // create a new tree item
-            createItem(children.get(i), widget, i);
-        }
-    }
-
-    /**
-     * Creates a new cell editor listener.
-     */
-    private void createEditorListener() {
-        editorListener = new ICellEditorListener() {
-            public void cancelEditor() {
-                deactivateCellEditor();
-            }
-
-            public void editorValueChanged(boolean oldValidState,
-                    boolean newValidState) {
-                //Do nothing
-            }
-
-            public void applyEditorValue() {
-                //Do nothing
-            }
-        };
-    }
-
-    /**
-     * Creates a new property sheet entry listener.
-     */
-    private void createEntryListener() {
-        entryListener = new IPropertySheetEntryListener() {
-            public void childEntriesChanged(IPropertySheetEntry entry) {
-                // update the children of the given entry
-                if (entry == rootEntry) {
-					updateChildrenOf(entry, tree);
-				} else {
-                    TreeItem item = findItem(entry);
-                    if (item != null) {
-						updateChildrenOf(entry, item);
-					}
-                }
-            }
-
-            public void valueChanged(IPropertySheetEntry entry) {
-                // update the given entry
-                TreeItem item = findItem(entry);
-                if (item != null) {
-					updateEntry(entry, item);
-				}
-            }
-
-            public void errorMessageChanged(IPropertySheetEntry entry) {
-                // update the error message
-                setErrorMessage(entry.getErrorText());
-            }
-        };
-    }
-
-    /**
-     * Creates a new tree item, sets the given entry or category (node)in
-     * its user data field, and adds a listener to the node if it is an entry.
-     * 
-     * @param node
-     *            the entry or category associated with this item
-     * @param parent
-     *            the parent widget
-     * @param index
-     *            indicates the position to insert the item into its parent
-     */
-    private void createItem(Object node, Widget parent, int index) {
-        // create the item
-        TreeItem item;
-        if (parent instanceof TreeItem) {
-			item = new TreeItem((TreeItem) parent, SWT.NONE, index);
-		} else {
-			item = new TreeItem((Tree) parent, SWT.NONE, index);
-		}
-
-        // set the user data field
-        item.setData(node);
-        
-        // Cache the entry <-> tree item relationship 
-        entryToItemMap.put(node, item);
-        
-        // Always ensure that if the tree item goes away that it's
-        // removed from the cache
-        item.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				Object possibleEntry = e.widget.getData();
-				if (possibleEntry != null)
-					entryToItemMap.remove(possibleEntry);
-			}
-        });        
-
-        // add our listener
-        if (node instanceof IPropertySheetEntry) {
-			((IPropertySheetEntry) node)
-                    .addPropertySheetEntryListener(entryListener);
-		}
-
-        // update the visual presentation
-        if (node instanceof IPropertySheetEntry) {
-			updateEntry((IPropertySheetEntry) node, item);
-		} else {
-			updateCategory((PropertySheetCategory) node, item);
-		}
-    }
-
-    /**
-     * Deactivate the currently active cell editor.
-     */
-    /* package */
-    void deactivateCellEditor() {
-        treeEditor.setEditor(null, null, columnToEdit);
-        if (cellEditor != null) {
-            cellEditor.deactivate();
-            fireCellEditorDeactivated(cellEditor);
-            cellEditor.removeListener(editorListener);
-            cellEditor = null;
-        }
-        // clear any error message from the editor
-        setErrorMessage(null);
-    }
-
-    /**
-     * Sends out a selection changed event for the entry tree to all registered
-     * listeners.
-     */
-    private void entrySelectionChanged() {
-        SelectionChangedEvent changeEvent = new SelectionChangedEvent(this,
-                getSelection());
-        fireSelectionChanged(changeEvent);
-    }
-
-    /**
-     * Return a tree item in the property sheet that has the same entry in
-     * its user data field as the supplied entry. Return <code>null</code> if
-     * there is no such item.
-     * 
-     * @param entry
-     *            the entry to serach for
-     * @return the TreeItem for the entry or <code>null</code> if
-     * there isn't one.
-     */
-    private TreeItem findItem(IPropertySheetEntry entry) {
-        // Iterate through treeItems to find item
-        TreeItem[] items = tree.getItems();
-        for (int i = 0; i < items.length; i++) {
-            TreeItem item = items[i];
-            TreeItem findItem = findItem(entry, item);
-            if (findItem != null) {
-				return findItem;
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Return a tree item in the property sheet that has the same entry in
-     * its user data field as the supplied entry. Return <code>null</code> if
-     * there is no such item.
-     * 
-     * @param entry
-     *            the entry to search for
-     * @param item
-     *            the item look in
-     * @return the TreeItem for the entry or <code>null</code> if
-     * there isn't one.
-     */
-    private TreeItem findItem(IPropertySheetEntry entry, TreeItem item) {
-    	// If we can find the TreeItem in the cache, just return it
-    	Object mapItem = entryToItemMap.get(entry);
-    	if (mapItem != null && mapItem instanceof TreeItem)
-    		return (TreeItem) mapItem;
-    	
-        // compare with current item
-        if (entry == item.getData()) {
-			return item;
-		}
-
-        // recurse over children
-        TreeItem[] items = item.getItems();
-        for (int i = 0; i < items.length; i++) {
-            TreeItem childItem = items[i];
-            TreeItem findItem = findItem(entry, childItem);
-            if (findItem != null) {
-				return findItem;
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Notifies all registered cell editor activation listeners of a cell editor
-     * activation.
-     * 
-     * @param activatedCellEditor
-     *            the activated cell editor
-     */
-    private void fireCellEditorActivated(CellEditor activatedCellEditor) {
-        Object[] listeners = activationListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            ((ICellEditorActivationListener) listeners[i])
-                    .cellEditorActivated(activatedCellEditor);
-        }
-    }
-
-    /**
-     * Notifies all registered cell editor activation listeners of a cell editor
-     * deactivation.
-     * 
-     * @param activatedCellEditor
-     *            the deactivated cell editor
-     */
-    private void fireCellEditorDeactivated(CellEditor activatedCellEditor) {
-        Object[] listeners = activationListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            ((ICellEditorActivationListener) listeners[i])
-                    .cellEditorDeactivated(activatedCellEditor);
-        }
-    }
-
-    /**
-     * Returns the active cell editor of this property sheet viewer or
-     * <code>null</code> if no cell editor is active.
-     * 
-     * @return the active cell editor
-     */
-    public CellEditor getActiveCellEditor() {
-        return cellEditor;
-    }
-
-    private TreeItem[] getChildItems(Widget widget) {
-        if (widget instanceof Tree) {
-            return ((Tree) widget).getItems();
-        }
-        else if (widget instanceof TreeItem) {
-            return ((TreeItem) widget).getItems();
-        }
-        // shouldn't happen
-        return new TreeItem[0];
-    }
-    
-    /**
-     * Returns the sorted children of the given category or entry
-     *
-     * @param node a category or entry
-     * @return the children of the given category or entry
-     *  (element type <code>IPropertySheetEntry</code> or 
-     *  <code>PropertySheetCategory</code>)
-     */
-    private List getChildren(Object node) {
-        // cast the entry or category
-        IPropertySheetEntry entry = null;
-        PropertySheetCategory category = null;
-        if (node instanceof IPropertySheetEntry) {
-			entry = (IPropertySheetEntry) node;
-		} else {
-			category = (PropertySheetCategory) node;
-		}
-
-        // get the child entries or categories
-        List children;
-        if (category == null) {
-			children = getChildren(entry);
-		} else {
-			children = getChildren(category);
-		}
-
-        return children;
-    }
-
-    /**
-     * Returns the child entries of the given entry
-     * @param entry The entry to search
-     * 
-     * @return the children of the given entry (element type
-     *         <code>IPropertySheetEntry</code>)
-     */
-    private List getChildren(IPropertySheetEntry entry) {
-        // if the entry is the root and we are showing categories, and we have
-        // more than the
-        // defualt category, return the categories
-        if (entry == rootEntry && isShowingCategories) {
-            if (categories.length > 1
-                    || (categories.length == 1 && !categories[0]
-                            .getCategoryName().equals(
-                                    MISCELLANEOUS_CATEGORY_NAME))) {
-				return Arrays.asList(categories);
-			}
-        }
-
-        // return the sorted & filtered child entries
-        return getSortedEntries(getFilteredEntries(entry.getChildEntries()));
-    }
-
-    /**
-     * Returns the child entries of the given category
-     * 
-     * @param category The category to search
-     * 
-     * @return the children of the given category (element type
-     *         <code>IPropertySheetEntry</code>)
-     */
-    private List getChildren(PropertySheetCategory category) {
-        return getSortedEntries(getFilteredEntries(category.getChildEntries()));
-    }
-
-    /*
-     * (non-Javadoc) Method declared on Viewer.
-     */
-    public Control getControl() {
-        return tree;
-    }
-
-    /**
-     * Returns the entries which match the current filter.
-     *
-     * @param entries the entries to filter
-     * @return the entries which match the current filter
-     *  (element type <code>IPropertySheetEntry</code>)
-     */
-    private List getFilteredEntries(IPropertySheetEntry[] entries) {
-        // if no filter just return all entries
-        if (isShowingExpertProperties) {
-			return Arrays.asList(entries);
-		}
-
-        // check each entry for the filter
-        List filteredEntries = new ArrayList(entries.length);
-        for (int i = 0; i < entries.length; i++) {
-            IPropertySheetEntry entry = entries[i];
-            if (entry != null) {
-                String[] filters = entry.getFilters();
-                boolean expert = false;
-                if (filters != null) {
-                    for (int j = 0; j < filters.length; j++) {
-                        if (filters[j].equals(IPropertySheetEntry.FILTER_ID_EXPERT)) {
-                            expert = true;
-                            break;
-                        }
-                    }
-                }
-                if (!expert) {
-					filteredEntries.add(entry);
-				}
-            }
-        }
-        return filteredEntries;
-    }
-    
-    /**
-	 * Returns a sorted list of <code>IPropertySheetEntry</code> entries.
-	 * 
-	 * @param unsortedEntries
-	 *            unsorted list of <code>IPropertySheetEntry</code>
-	 * @return a sorted list of the specified entries
-	 */
-	private List getSortedEntries(List unsortedEntries) {
-		IPropertySheetEntry[] propertySheetEntries = (IPropertySheetEntry[]) unsortedEntries
-				.toArray(new IPropertySheetEntry[unsortedEntries.size()]);
-		sorter.sort(propertySheetEntries);
-		return Arrays.asList(propertySheetEntries);
-	}
-    
-
-    /**
-	 * The <code>PropertySheetViewer</code> implementation of this method
-	 * declared on <code>IInputProvider</code> returns the objects for which
-	 * the viewer is currently showing properties. It returns an
-	 * <code>Object[]</code> or <code>null</code>.
-	 */
-    public Object getInput() {
-        return input;
-    }
-
-    /**
-     * Returns the root entry for this property sheet viewer. The root entry is
-     * not visible in the viewer.
-     * 
-     * @return the root entry or <code>null</code>.
-     */
-    public IPropertySheetEntry getRootEntry() {
-        return rootEntry;
-    }
-
-    /**
-     * The <code>PropertySheetViewer</code> implementation of this
-     * <code>ISelectionProvider</code> method returns the result as a
-     * <code>StructuredSelection</code>.
-     * <p>
-     * Note that this method only includes <code>IPropertySheetEntry</code> in
-     * the selection (no categories).
-     * </p>
-     */
-    public ISelection getSelection() {
-        if (tree.getSelectionCount() == 0) {
-			return StructuredSelection.EMPTY;
-		}
-        TreeItem[] sel = tree.getSelection();
-        List entries = new ArrayList(sel.length);
-        for (int i = 0; i < sel.length; i++) {
-            TreeItem ti = sel[i];
-            Object data = ti.getData();
-            if (data instanceof IPropertySheetEntry) {
-				entries.add(data);
-			}
-        }
-        return new StructuredSelection(entries);
-    }
-
-    /**
-     * Selection in the viewer occurred. Check if there is an active cell
-     * editor. If yes, deactivate it and check if a new cell editor must be
-     * activated.
-     * 
-     * @param selection
-     *            the TreeItem that is selected
-     */
-    private void handleSelect(TreeItem selection) {
-        // deactivate the current cell editor
-        if (cellEditor != null) {
-            applyEditorValue();
-            deactivateCellEditor();
-        }
-
-        // 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);
-        
-        // We explicitly remove the entry from the map since it's data has been null'd
-        entryToItemMap.remove(data);
-
-        item.dispose();
-    }
-
-    /**
-     * Reset the selected properties to their default values.
-     */
-    public void resetProperties() {
-        // Determine the selection
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-
-        // Iterate over entries and reset them
-        Iterator itr = selection.iterator();
-        while (itr.hasNext()) {
-			((IPropertySheetEntry) itr.next()).resetPropertyValue();
-		}
-    }
-
-    /**
-     * Sets the error message to be displayed in the status line.
-     * 
-     * @param errorMessage
-     *            the message to be displayed, or <code>null</code>
-     */
-    private void setErrorMessage(String errorMessage) {
-        // show the error message
-        if (statusLineManager != null) {
-			statusLineManager.setErrorMessage(errorMessage);
-		}
-    }
-
-    /**
-     * The <code>PropertySheetViewer</code> implementation of this method
-     * declared on <code>Viewer</code> method sets the objects for which the
-     * viewer is currently showing properties.
-     * <p>
-     * The input must be an <code>Object[]</code> or <code>null</code>.
-     * </p>
-     * 
-     * @param newInput
-     *            the input of this viewer, or <code>null</code> if none
-     */
-    public void setInput(Object newInput) {
-        // need to save any changed value when user clicks elsewhere
-        applyEditorValue();
-        // deactivate our cell editor
-        deactivateCellEditor();
-
-        // set the new input to the root entry
-        input = (Object[]) newInput;
-        if (input == null) {
-			input = new Object[0];
-		}
-
-        if (rootEntry != null) {
-            rootEntry.setValues(input);
-            // ensure first level children are visible
-            updateChildrenOf(rootEntry, tree);
-        }
-        
-        // Clear any previous StatusLine messages
-    	updateStatusLine(null);
-    }
-
-    /**
-     * Sets the message to be displayed in the status line. This message is
-     * displayed when there is no error message.
-     * 
-     * @param message
-     *            the message to be displayed, or <code>null</code>
-     */
-    private void setMessage(String message) {
-        // show the message
-        if (statusLineManager != null) {
-			statusLineManager.setMessage(message);
-		}
-    }
-
-    /**
-     * Sets the root entry for this property sheet viewer. The root entry is not
-     * visible in the viewer.
-     * 
-     * @param root
-     *            the root entry
-     */
-    public void setRootEntry(IPropertySheetEntry root) {
-        // If we have a root entry, remove our entry listener
-        if (rootEntry != null) {
-			rootEntry.removePropertySheetEntryListener(entryListener);
-		}
-
-        rootEntry = root;
-
-        // Set the root as user data on the tree
-        tree.setData(rootEntry);
-
-        // Add an IPropertySheetEntryListener to listen for entry change
-        // notifications
-        rootEntry.addPropertySheetEntryListener(entryListener);
-
-        // Pass our input to the root, this will trigger entry change
-        // callbacks to update this viewer
-        setInput(input);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers.ISelection, boolean)
-     */
-    public void setSelection(ISelection selection, boolean reveal) {
-        //Do nothing by default
-    }
-
-    /**
-	 * Sets the sorter for this viewer.
-	 * <p>
-	 * The default sorter sorts categories and entries alphabetically. 
-	 * A viewer update needs to be triggered after the sorter has changed.
-	 * </p>
-	 * @param sorter the sorter to set (<code>null</code> will reset to the
-	 * default sorter)
-     * @since 3.1
-	 */
-	public void setSorter(PropertySheetSorter sorter) {
-		if (null == sorter) {
-			sorter = new PropertySheetSorter();
-		}
-		this.sorter = sorter;
-	}
-
-    /**
-     * Sets the status line manager this view will use to show messages.
-     * 
-     * @param manager
-     *            the status line manager
-     */
-    public void setStatusLineManager(IStatusLineManager manager) {
-        statusLineManager = manager;
-    }
-
-    /**
-     * Shows the categories.
-     */
-    /* package */
-    void showCategories() {
-        isShowingCategories = true;
-        refresh();
-    }
-
-    /**
-     * Shows the expert properties.
-     */
-    /* package */
-    void showExpert() {
-        isShowingExpertProperties = true;
-        refresh();
-    }
-
-    /**
-     * Updates the categories. Reuses old categories if possible.
-     */
-    private void updateCategories() {
-        // lazy initialize
-        if (categories == null) {
-			categories = new PropertySheetCategory[0];
-		}
-
-        // get all the filtered child entries of the root
-        List childEntries = getFilteredEntries(rootEntry.getChildEntries());
-
-        // if the list is empty, just set an empty categories array
-        if (childEntries.size() == 0) {
-            categories = new PropertySheetCategory[0];
-            return;
-        }
-
-        // cache old categories by their descriptor name
-        Map categoryCache = new HashMap(categories.length * 2 + 1);
-        for (int i = 0; i < categories.length; i++) {
-            categories[i].removeAllEntries();
-            categoryCache.put(categories[i].getCategoryName(), categories[i]);
-        }
-
-        // create a list of categories to get rid of
-        List categoriesToRemove = new ArrayList(Arrays.asList(categories));
-
-        // Determine the categories
-        PropertySheetCategory misc = (PropertySheetCategory) categoryCache
-                .get(MISCELLANEOUS_CATEGORY_NAME);
-        if (misc == null) {
-			misc = new PropertySheetCategory(MISCELLANEOUS_CATEGORY_NAME);
-		}
-        boolean addMisc = false;
-
-        for (int i = 0; i < childEntries.size(); i++) {
-            IPropertySheetEntry childEntry = (IPropertySheetEntry) childEntries
-                    .get(i);
-            String categoryName = childEntry.getCategory();
-            if (categoryName == null) {
-                misc.addEntry(childEntry);
-                addMisc = true;
-                categoriesToRemove.remove(misc);
-            } else {
-                PropertySheetCategory category = (PropertySheetCategory) categoryCache
-                        .get(categoryName);
-                if (category == null) {
-                    category = new PropertySheetCategory(categoryName);
-                    categoryCache.put(categoryName, category);
-                } else {
-                    categoriesToRemove.remove(category);
-                }
-                category.addEntry(childEntry);
-            }
-        }
-
-        // Add the PSE_MISC category if it has entries
-        if (addMisc) {
-			categoryCache.put(MISCELLANEOUS_CATEGORY_NAME, misc);
-		}
-        
-        // Sort the categories.
-        // Rather than just sorting categoryCache.values(), we'd like the original order to be preserved
-        // (with misc added at the end, if needed) before passing to the sorter.
-        ArrayList categoryList = new ArrayList();
-        Set seen = new HashSet(childEntries.size());
-        for (int i = 0; i < childEntries.size(); i++) {
-            IPropertySheetEntry childEntry = (IPropertySheetEntry) childEntries
-                    .get(i);
-            String categoryName = childEntry.getCategory();
-            if (categoryName != null && !seen.contains(categoryName)) {
-                seen.add(categoryName);
-                PropertySheetCategory category = (PropertySheetCategory) categoryCache
-                        .get(categoryName);
-                if (category != null) { 
-                    categoryList.add(category);
-                }
-            }
-        }
-        if (addMisc && !seen.contains(MISCELLANEOUS_CATEGORY_NAME)) {
-            categoryList.add(misc);
-        }
-        
-        PropertySheetCategory[] categoryArray = (PropertySheetCategory[]) categoryList
-        	.toArray(new PropertySheetCategory[categoryList.size()]);
-        sorter.sort(categoryArray);
-        categories = categoryArray;
-    }
-
-    /**
-     * Update the category (but not its parent or children).
-     * 
-     * @param category
-     *            the category to update
-     * @param item
-     *            the tree item for the given entry
-     */
-    private void updateCategory(PropertySheetCategory category,
-            TreeItem item) {
-        // ensure that backpointer is correct
-        item.setData(category);
-        
-        // Update the map accordingly
-        entryToItemMap.put(category, item);
-
-        // Update the name and value columns
-        item.setText(0, category.getCategoryName());
-        item.setText(1, ""); //$NON-NLS-1$
-
-        // update the "+" icon
-        if (category.getAutoExpand()) {
-            // we auto expand categories when they first appear
-            createChildren(item);
-            item.setExpanded(true);
-            category.setAutoExpand(false);
-        } else {
-            // we do not want to auto expand categories if the user has
-            // collpased them
-            updatePlus(category, item);
-        }
-    }
-
-    /**
-     * Update the child entries or categories of the given entry or category. If
-     * the given node is the root entry and we are showing categories then the
-     * child entries are categories, otherwise they are entries.
-     * 
-     * @param node
-     *            the entry or category whose children we will update
-     * @param widget
-     *            the widget for the given entry, either a
-     *            <code>TableTree</code> if the node is the root node or a
-     *            <code>TreeItem</code> otherwise.
-     */
-    private void updateChildrenOf(Object node, Widget widget) {
-        // cast the entry or category
-        IPropertySheetEntry entry = null;
-        PropertySheetCategory category = null;
-        if (node instanceof IPropertySheetEntry) {
-			entry = (IPropertySheetEntry) node;
-		} else {
-			category = (PropertySheetCategory) node;
-		}
-
-        // get the current child tree items
-        TreeItem[] childItems = getChildItems(widget);
-
-        // optimization! prune collapsed subtrees
-        TreeItem item = null;
-        if (widget instanceof TreeItem) {
-            item = (TreeItem) widget;
-        }
-        if (item != null && !item.getExpanded()) {
-            // remove all children
-            for (int i = 0; i < childItems.length; i++) {
-                if (childItems[i].getData() != null) {
-                    removeItem(childItems[i]);
-                }
-            }
-
-            // append a dummy if necessary
-            if (category != null || entry.hasChildEntries()) {
-                // may already have a dummy
-                // It is either a category (which always has at least one child)
-                // or an entry with chidren.
-                // Note that this test is not perfect, if we have filtering on
-                // then there in fact may be no entires to show when the user
-                // presses the "+" expand icon. But this is an acceptable
-                // compromise.
-                childItems = getChildItems(widget);
-                if (childItems.length == 0) {
-                    new TreeItem(item, SWT.NULL);
-                }
-            }
-            return;
-        }
-
-        // get the child entries or categories
-        if (node == rootEntry && isShowingCategories) {
-			// update the categories
-            updateCategories();
-		}
-        List children = getChildren(node);
-
-        // remove items
-        Set set = new HashSet(childItems.length * 2 + 1);
-
-        for (int i = 0; i < childItems.length; i++) {
-            Object data = childItems[i].getData();
-            if (data != null) {
-                Object e = data;
-                int ix = children.indexOf(e);
-                if (ix < 0) { // not found
-                    removeItem(childItems[i]);
-                } else { // found
-                    set.add(e);
-                }
-            } else if (data == null) { // the dummy
-                childItems[i].dispose();
-            }
-        }
-
-        // WORKAROUND
-        int oldCnt = -1;
-        if (widget == tree) {
-			oldCnt = tree.getItemCount();
-		}
-
-        // add new items
-        int newSize = children.size();
-        for (int i = 0; i < newSize; i++) {
-            Object el = children.get(i);
-            if (!set.contains(el)) {
-				createItem(el, widget, i);
-			}
-        }
-
-        // WORKAROUND
-        if (widget == tree && oldCnt == 0 && tree.getItemCount() == 1) {
-            tree.setRedraw(false);
-            tree.setRedraw(true);
-        }
-
-        // get the child tree items after our changes
-        childItems = getChildItems(widget);
-
-        // update the child items
-        // This ensures that the children are in the correct order
-        // are showing the correct values.
-        for (int i = 0; i < newSize; i++) {
-            Object el = children.get(i);
-            if (el instanceof IPropertySheetEntry) {
-				updateEntry((IPropertySheetEntry) el, childItems[i]);
-			} else {
-                updateCategory((PropertySheetCategory) el, childItems[i]);
-                updateChildrenOf(el, childItems[i]);
-            }
-        }
-        // The tree's original selection may no longer apply after the update,
-        // so fire the selection changed event.
-        entrySelectionChanged();
-    }
-
-    /**
-     * Update the given entry (but not its children or parent)
-     * 
-     * @param entry
-     *            the entry we will update
-     * @param item
-     *            the tree item for the given entry
-     */
-    private void updateEntry(IPropertySheetEntry entry, TreeItem item) {
-        // ensure that backpointer is correct
-        item.setData(entry);
-        
-        // update the map accordingly
-        entryToItemMap.put(entry, item);
-
-        // update the name and value columns
-        item.setText(0, entry.getDisplayName());
-        item.setText(1, entry.getValueAsString());
-        Image image = entry.getImage();
-        if (item.getImage(1) != image) {
-			item.setImage(1, image);
-		}
-
-        // update the "+" icon
-        updatePlus(entry, item);
-    }
-
-    /**
-     * Updates the "+"/"-" icon of the tree item from the given entry
-     * or category.
-     *
-     * @param node the entry or category
-     * @param item the tree item being updated
-     */
-    private void updatePlus(Object node, TreeItem item) {
-        // cast the entry or category
-        IPropertySheetEntry entry = null;
-        PropertySheetCategory category = null;
-        if (node instanceof IPropertySheetEntry) {
-			entry = (IPropertySheetEntry) node;
-		} else {
-			category = (PropertySheetCategory) node;
-		}
-
-        boolean hasPlus = item.getItemCount() > 0;
-        boolean needsPlus = category != null || entry.hasChildEntries();
-        boolean removeAll = false;
-        boolean addDummy = false;
-
-        if (hasPlus != needsPlus) {
-            if (needsPlus) {
-                addDummy = true;
-            } else {
-                removeAll = true;
-            }
-        }
-        if (removeAll) {
-            // remove all children
-            TreeItem[] items = item.getItems();
-            for (int i = 0; i < items.length; i++) {
-                removeItem(items[i]);
-            }
-        }
-
-        if (addDummy) {
-            new TreeItem(item, SWT.NULL); // append a dummy to create the
-            // plus sign
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.java
deleted file mode 100644
index c9ff7c4..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Descriptor for a property that has a value which should be edited with a 
- * text cell editor.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IPropertyDescriptor pd = new TextPropertyDescriptor("surname", "Last Name");
- * </pre>
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class TextPropertyDescriptor extends PropertyDescriptor {
-    /**
-     * Creates an property descriptor with the given id and display name.
-     * 
-     * @param id the id of the property
-     * @param displayName the name to display for the property
-     */
-    public TextPropertyDescriptor(Object id, String displayName) {
-        super(id, displayName);
-    }
-
-    /**
-     * The <code>TextPropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method creates and returns a new
-     * <code>TextCellEditor</code>.
-     * <p>
-     * The editor is configured with the current validator if there is one.
-     * </p>
-     */
-    public CellEditor createPropertyEditor(Composite parent) {
-        CellEditor editor = new TextCellEditor(parent);
-        if (getValidator() != null) {
-			editor.setValidator(getValidator());
-		}
-        return editor;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/package.html b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/package.html
deleted file mode 100644
index 1a6a1b5..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/package.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="IBM">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the standard Property Sheet view which displays
-custom properties of the active workbench part's current selection.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.win32/.classpath b/bundles/org.eclipse.ui.win32/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.win32/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.win32/.cvsignore b/bundles/org.eclipse.ui.win32/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.win32/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.win32/.project b/bundles/org.eclipse.ui.win32/.project
deleted file mode 100644
index 9e21dbf..0000000
--- a/bundles/org.eclipse.ui.win32/.project
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.win32</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.help</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.ui.ide</project>
-		<project>org.eclipse.ui.views</project>
-		<project>org.eclipse.update.core</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 59e432f..0000000
--- a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Tue Sep 11 09:39:08 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8d20c9f..0000000
--- a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:21:10 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.1\n *\n * ${tags}\n */</template><template context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/bundles/org.eclipse.ui.win32/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.win32/META-INF/MANIFEST.MF
deleted file mode 100644
index fc72144..0000000
--- a/bundles/org.eclipse.ui.win32/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.ui.win32
-Bundle-Version: 3.2.100.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)"
-Bundle-Localization: fragment-win32
-Export-Package: org.eclipse.ui.internal.editorsupport.win32;x-internal:=true
-Eclipse-PlatformFilter: (osgi.ws=win32)
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.ui.win32/about.html b/bundles/org.eclipse.ui.win32/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.win32/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.win32/build.properties b/bundles/org.eclipse.ui.win32/build.properties
deleted file mode 100644
index f15b424..0000000
--- a/bundles/org.eclipse.ui.win32/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source..=src/
-src.includes=about.html
-bin.includes = .,\
-               META-INF/,\
-               fragment-win32.properties,\
-               about.html
diff --git a/bundles/org.eclipse.ui.win32/fragment-win32.properties b/bundles/org.eclipse.ui.win32/fragment-win32.properties
deleted file mode 100644
index 1d259fc..0000000
--- a/bundles/org.eclipse.ui.win32/fragment-win32.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-providerName=Eclipse.org
-fragmentName=Eclipse UI Win32 Enhancements
diff --git a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java b/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java
deleted file mode 100644
index f4af7d1..0000000
--- a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java
+++ /dev/null
@@ -1,738 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.editorsupport.win32;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.ole.win32.OLE;
-import org.eclipse.swt.ole.win32.OleAutomation;
-import org.eclipse.swt.ole.win32.OleClientSite;
-import org.eclipse.swt.ole.win32.OleFrame;
-import org.eclipse.swt.ole.win32.Variant;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.part.EditorPart;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- */
-public class OleEditor extends EditorPart {
-
-    /**
-     * The resource listener updates the receiver when
-     * a change has occurred.
-     */
-    private IResourceChangeListener resourceListener = new IResourceChangeListener() {
-
-        /*
-         * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
-         */
-        public void resourceChanged(IResourceChangeEvent event) {
-            IResourceDelta mainDelta = event.getDelta();
-            if (mainDelta == null)
-                return;
-            IResourceDelta affectedElement = mainDelta.findMember(resource
-                    .getFullPath());
-            if (affectedElement != null)
-                processDelta(affectedElement);
-        }
-
-        /*
-         * Process the delta for the receiver
-         */
-        private boolean processDelta(final IResourceDelta delta) {
-
-            Runnable changeRunnable = null;
-
-            switch (delta.getKind()) {
-            case IResourceDelta.REMOVED:
-                if ((IResourceDelta.MOVED_TO & delta.getFlags()) != 0) {
-                    changeRunnable = new Runnable() {
-                        public void run() {
-                            IPath path = delta.getMovedToPath();
-                            IFile newFile = delta.getResource().getWorkspace()
-                                    .getRoot().getFile(path);
-                            if (newFile != null) {
-                                sourceChanged(newFile);
-                            }
-                        }
-                    };
-                } else {
-                    changeRunnable = new Runnable() {
-                        public void run() {
-                            sourceDeleted = true;
-                            getSite().getPage().closeEditor(OleEditor.this,
-                                    true);
-                        }
-                    };
-
-                }
-
-                break;
-            }
-
-            if (changeRunnable != null)
-                update(changeRunnable);
-
-            return true; // because we are sitting on files anyway
-        }
-
-    };
-
-    private OleFrame clientFrame;
-
-    private OleClientSite clientSite;
-
-    private File source;
-
-    private IFile resource;
-
-    private Image oleTitleImage;
-
-    //The sourceDeleted flag makes sure that the receiver is not
-    //dirty when shutting down
-    boolean sourceDeleted = false;
-
-    //The sourceChanged flag indicates whether or not the save from the ole component
-    //can be used or if the input changed
-    boolean sourceChanged = false;
-
-    /**
-     * Keep track of whether we have an active client so we do not
-     * deactivate multiple times
-     */
-    private boolean clientActive = false;
-
-    /**
-     * Keep track of whether we have activated OLE or not as some applications
-     * will only allow single activations.
-     */
-    private boolean oleActivated = false;
-
-    private IPartListener partListener = new IPartListener() {
-        public void partActivated(IWorkbenchPart part) {
-            activateClient(part);
-        }
-
-        public void partBroughtToTop(IWorkbenchPart part) {
-        }
-
-        public void partClosed(IWorkbenchPart part) {
-        }
-
-        public void partOpened(IWorkbenchPart part) {
-        }
-
-        public void partDeactivated(IWorkbenchPart part) {
-            deactivateClient(part);
-        }
-    };
-
-    private static final String RENAME_ERROR_TITLE = OleMessages
-            .getString("OleEditor.errorSaving"); //$NON-NLS-1$
-
-    private static final String OLE_EXCEPTION_TITLE = OleMessages
-            .getString("OleEditor.oleExceptionTitle"); //$NON-NLS-1$
-
-    private static final String OLE_EXCEPTION_MESSAGE = OleMessages
-            .getString("OleEditor.oleExceptionMessage"); //$NON-NLS-1$
-
-    private static final String OLE_CREATE_EXCEPTION_MESSAGE = OleMessages
-            .getString("OleEditor.oleCreationExceptionMessage"); //$NON-NLS-1$
-
-    private static final String OLE_CREATE_EXCEPTION_REASON = OleMessages
-            .getString("OleEditor.oleCreationExceptionReason"); //$NON-NLS-1$
-
-    private static final String SAVE_ERROR_TITLE = OleMessages
-            .getString("OleEditor.savingTitle"); //$NON-NLS-1$
-
-    private static final String SAVE_ERROR_MESSAGE = OleMessages
-            .getString("OleEditor.savingMessage"); //$NON-NLS-1$
-
-    /**
-     * Return a new ole editor.
-     */
-    public OleEditor() {
-        //Do nothing
-    }
-
-    private void activateClient(IWorkbenchPart part) {
-        if (part == this) {
-            oleActivate();
-            this.clientActive = true;
-        }
-    }
-
-    /**
-     * createPartControl method comment.
-     */
-    public void createPartControl(Composite parent) {
-
-        // Create a frame.
-        clientFrame = new OleFrame(parent, SWT.CLIP_CHILDREN);
-        clientFrame.setBackground(JFaceColors.getBannerBackground(clientFrame
-                .getDisplay()));
-
-        initializeWorkbenchMenus();
-
-        createClientSite();
-        updateDirtyFlag();
-    }
-
-    /**
-     * Create the client site for the receiver
-     */
-
-    private void createClientSite() {
-        //If there was an OLE Error or nothing has been created yet
-        if (clientFrame == null || clientFrame.isDisposed())
-            return;
-        // Create a OLE client site.
-        try {
-            clientSite = new OleClientSite(clientFrame, SWT.NONE, source);
-        } catch (SWTException exception) {
-
-            IStatus errorStatus = new Status(IStatus.ERROR,
-                    WorkbenchPlugin.PI_WORKBENCH, IStatus.ERROR,
-                    OLE_CREATE_EXCEPTION_REASON, exception);
-            //ErrorDialog.openError(null, OLE_EXCEPTION_TITLE, OLE_CREATE_EXCEPTION_REASON, errorStatus);
-            ErrorDialog.openError(null, OLE_EXCEPTION_TITLE, OLE_CREATE_EXCEPTION_MESSAGE, errorStatus);
-            return;
-        }
-        clientSite.setBackground(JFaceColors.getBannerBackground(clientFrame
-                .getDisplay()));
-
-    }
-
-    private void deactivateClient(IWorkbenchPart part) {
-        //Check the client active flag. Set it to false when we have deactivated
-        //to prevent multiple de-activations.
-        if (part == this && clientActive) {
-            if (clientSite != null)
-                clientSite.deactivateInPlaceClient();
-            this.clientActive = false;
-            this.oleActivated = false;
-        }
-    }
-
-    /**
-     * Display an error dialog with the supplied title and message.
-     * @param title
-     * @param message
-     */
-    private void displayErrorDialog(String title, String message) {
-        Shell parent = null;
-        if (getClientSite() != null)
-            parent = getClientSite().getShell();
-        MessageDialog.openError(parent, title, message);
-    }
-
-    /**
-     * @see IWorkbenchPart#dispose
-     */
-    public void dispose() {
-        if (resource != null) {
-            ResourcesPlugin.getWorkspace().removeResourceChangeListener(
-                    resourceListener);
-            resource = null;
-        }
-
-        //can dispose the title image because it was created in init
-        if (oleTitleImage != null) {
-            oleTitleImage.dispose();
-            oleTitleImage = null;
-        }
-
-        if (getSite() != null && getSite().getPage() != null)
-            getSite().getPage().removePartListener(partListener);
-
-    }
-
-    /**
-     *	Print this object's contents
-     */
-    public void doPrint() {
-        if (clientSite == null)
-            return;
-        BusyIndicator.showWhile(clientSite.getDisplay(), new Runnable() {
-            public void run() {
-                clientSite.exec(OLE.OLECMDID_PRINT,
-                        OLE.OLECMDEXECOPT_PROMPTUSER, null, null);
-                // note: to check for success: above == SWTOLE.S_OK
-            }
-        });
-    }
-
-    /**
-     *	Save the viewer's contents to the source file system file
-     */
-    public void doSave(final IProgressMonitor monitor) {
-        if (clientSite == null)
-            return;
-        BusyIndicator.showWhile(clientSite.getDisplay(), new Runnable() {
-
-            /*
-             *  (non-Javadoc)
-             * @see java.lang.Runnable#run()
-             */
-            public void run() {
-
-                //Do not try and use the component provided save if the source has
-                //changed in Eclipse
-                if (!sourceChanged) {
-                    int result = clientSite.queryStatus(OLE.OLECMDID_SAVE);
-                    if ((result & OLE.OLECMDF_ENABLED) != 0) {
-                        result = clientSite.exec(OLE.OLECMDID_SAVE,
-                                OLE.OLECMDEXECOPT_PROMPTUSER, null, null);
-                        if (result == OLE.S_OK) {
-                            try {
-                                resource.refreshLocal(IResource.DEPTH_ZERO,
-                                        monitor);
-                            } catch (CoreException ex) {
-                                //Do nothing on a failed refresh
-                            }
-                            return;
-                        }
-                        displayErrorDialog(OLE_EXCEPTION_TITLE,
-                                OLE_EXCEPTION_MESSAGE + String.valueOf(result));
-                        return;
-                    }
-                }
-                if (saveFile(source)) {
-                    try {
-                    	if (resource != null)
-                    		resource.refreshLocal(IResource.DEPTH_ZERO, monitor);
-                    } catch (CoreException ex) {
-                        //Do nothing on a failed refresh
-                    }
-                } else
-                    displayErrorDialog(SAVE_ERROR_TITLE, SAVE_ERROR_MESSAGE
-                            + source.getName());
-            }
-        });
-    }
-
-    /**
-     *	Save the viewer's contents into the provided resource.
-     */
-    public void doSaveAs() {
-        if (clientSite == null)
-            return;
-        WorkspaceModifyOperation op = saveNewFileOperation();
-        Shell shell = clientSite.getShell();
-        try {
-            new ProgressMonitorDialog(shell).run(false, true, op);
-        } catch (InterruptedException interrupt) {
-            //Nothing to reset so do nothing
-        } catch (InvocationTargetException invocationException) {
-            MessageDialog.openError(shell, RENAME_ERROR_TITLE,
-                    invocationException.getTargetException().getMessage());
-        }
-
-    }
-
-    /**
-     *	Answer self's client site
-     *
-     *	@return org.eclipse.swt.ole.win32.OleClientSite
-     */
-    public OleClientSite getClientSite() {
-        return clientSite;
-    }
-
-    /**
-     *	Answer the file system representation of self's input element
-     *
-     *	@return java.io.File
-     */
-    public File getSourceFile() {
-        return source;
-    }
-
-    private void handleWord() {
-        OleAutomation dispInterface = new OleAutomation(clientSite);
-        // Get Application
-        int[] appId = dispInterface
-                .getIDsOfNames(new String[] { "Application" }); //$NON-NLS-1$
-        if (appId != null) {
-            Variant pVarResult = dispInterface.getProperty(appId[0]);
-            if (pVarResult != null) {
-                OleAutomation application = pVarResult.getAutomation();
-                int[] dispid = application
-                        .getIDsOfNames(new String[] { "DisplayScrollBars" }); //$NON-NLS-1$
-                if (dispid != null) {
-                    Variant rgvarg = new Variant(true);
-                    application.setProperty(dispid[0], rgvarg);
-                }
-                application.dispose();
-            }
-        }
-        dispInterface.dispose();
-    }
-
-    /* (non-Javadoc)
-     * Initializes the editor when created from scratch.
-     * 
-     * This method is called soon after part construction and marks 
-     * the start of the extension lifecycle.  At the end of the
-     * extension lifecycle <code>shutdown</code> will be invoked
-     * to terminate the lifecycle.
-     *
-     * @param container an interface for communication with the part container
-     * @param input The initial input element for the editor.  In most cases
-     *    it is an <code>IFile</code> but other types are acceptable.
-     * @see IWorkbenchPart#shutdown
-     */
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-    	
-    	validatePathEditorInput(input);
-
-        // Save input.
-        setSite(site);
-        setInputWithNotify(input);
-
-        // Update titles.
-        setPartName(input.getName());
-        setTitleToolTip(input.getToolTipText());
-        ImageDescriptor desc = input.getImageDescriptor();
-        if (desc != null) {
-            oleTitleImage = desc.createImage();
-            setTitleImage(oleTitleImage);
-        }
-
-        // Listen for part activation.
-        site.getPage().addPartListener(partListener);
-
-    }
-    
-    /**
-     * Validates the given input
-     * 
-     * @param input the editor input to validate
-     * @throws PartInitException if the editor input is not OK
-     */
-    private boolean validatePathEditorInput(IEditorInput input) throws PartInitException {
-        // Check input type.
-    	IPathEditorInput pathEditorInput = (IPathEditorInput)input.getAdapter(IPathEditorInput.class);
-        if (pathEditorInput == null)
-            throw new PartInitException(OleMessages.format(
-                    "OleEditor.invalidInput", new Object[] { input })); //$NON-NLS-1$
-        
-        IPath path = pathEditorInput.getPath();
-
-        //Cannot create this with a file and no physical location
-        if (!(new File(path.toOSString()).exists()))
-            throw new PartInitException(
-                    OleMessages
-                            .format(
-                                    "OleEditor.noFileInput", new Object[] { path.toOSString() })); //$NON-NLS-1$
-        return true;
-    }
-    
-    /**
-     *	Initialize the workbench menus for proper merging
-     */
-    protected void initializeWorkbenchMenus() {
-        //If there was an OLE Error or nothing has been created yet
-        if (clientFrame == null || clientFrame.isDisposed())
-            return;
-        // Get the browser menu bar.  If one does not exist then
-        // create it.
-        Shell shell = clientFrame.getShell();
-        Menu menuBar = shell.getMenuBar();
-        if (menuBar == null) {
-            menuBar = new Menu(shell, SWT.BAR);
-            shell.setMenuBar(menuBar);
-        }
-
-        // Swap the file and window menus.
-        MenuItem[] windowMenu = new MenuItem[1];
-        MenuItem[] fileMenu = new MenuItem[1];
-        Vector containerItems = new Vector();
-
-        IWorkbenchWindow window = getSite().getWorkbenchWindow();
-
-        for (int i = 0; i < menuBar.getItemCount(); i++) {
-            MenuItem item = menuBar.getItem(i);
-            String id = ""; //$NON-NLS-1$
-            if (item.getData() instanceof IMenuManager)
-                id = ((IMenuManager) item.getData()).getId();
-            if (id.equals(IWorkbenchActionConstants.M_FILE))
-                fileMenu[0] = item;
-            else if (id.equals(IWorkbenchActionConstants.M_WINDOW))
-                windowMenu[0] = item;
-            else {
-                if (window.isApplicationMenu(id)) {
-                    containerItems.addElement(item);
-                }
-            }
-        }
-        MenuItem[] containerMenu = new MenuItem[containerItems.size()];
-        containerItems.copyInto(containerMenu);
-        clientFrame.setFileMenus(fileMenu);
-        clientFrame.setContainerMenus(containerMenu);
-        clientFrame.setWindowMenus(windowMenu);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#isDirty()
-     */
-    public boolean isDirty() {
-        /*Return only if we have a clientSite which is dirty 
-         as this can be asked before anything is opened*/
-        return clientSite != null && clientSite.isDirty();
-    }
-
-    /* 
-     * (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-     */
-    public boolean isSaveAsAllowed() {
-        return true;
-    }
-
-    /**
-     *Since we don't know when a change has been made, always answer true
-     * @return <code>false</code> if it was not opened and <code>true</code> 
-     * only if it is dirty
-     */
-    public boolean isSaveNeeded() {
-        return isDirty();
-    }
-
-    /**
-     * Save the supplied file using the SWT API.
-     * @param file java.io.File
-     * @return <code>true</code> if the save was successful
-     */
-    private boolean saveFile(File file) {
-
-        File tempFile = new File(file.getAbsolutePath() + ".tmp"); //$NON-NLS-1$
-        file.renameTo(tempFile);
-        boolean saved = false;
-        if (OLE.isOleFile(file) || usesStorageFiles(clientSite.getProgramID())) {
-            saved = clientSite.save(file, true);
-        } else {
-            saved = clientSite.save(file, false);
-        }
-
-        if (saved) {
-            // save was successful so discard the backup
-            tempFile.delete();
-            return true;
-        }
-        // save failed so restore the backup
-        tempFile.renameTo(file);
-        return false;
-    }
-
-    /**
-     * Save the new File using the client site.
-     * @return WorkspaceModifyOperation
-     */
-    private WorkspaceModifyOperation saveNewFileOperation() {
-
-        return new WorkspaceModifyOperation() {
-            public void execute(final IProgressMonitor monitor)
-                    throws CoreException {
-                SaveAsDialog dialog = new SaveAsDialog(clientFrame.getShell());
-                IFile sFile = ResourceUtil.getFile(getEditorInput());
-                if (sFile != null) {
-                    dialog.setOriginalFile(sFile);
-                    dialog.open();
-    
-                    IPath newPath = dialog.getResult();
-                    if (newPath == null)
-                        return;
-    
-                    if (dialog.getReturnCode() == Window.OK) {
-                        String projectName = newPath.segment(0);
-                        newPath = newPath.removeFirstSegments(1);
-                        IProject project = resource.getWorkspace().getRoot()
-                                .getProject(projectName);
-                        newPath = project.getLocation().append(newPath);
-                        File newFile = newPath.toFile();
-                        if (saveFile(newFile)) {
-                            IFile newResource = resource.getWorkspace().getRoot()
-                                    .getFileForLocation(newPath);
-                            if (newResource != null) {
-                                sourceChanged(newResource);
-                                newResource.refreshLocal(IResource.DEPTH_ZERO,
-                                        monitor);
-                            }
-                        } else {
-                            displayErrorDialog(SAVE_ERROR_TITLE, SAVE_ERROR_MESSAGE
-                                    + newFile.getName());
-                            return;
-                        }
-                    }
-                }
-            }
-        };
-
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        //Do not take focus
-    }
-
-    /**
-     * Make ole active so that the controls are rendered.
-     */
-    private void oleActivate() {
-        //If there was an OLE Error or nothing has been created yet
-        if (clientSite == null || clientFrame == null
-                || clientFrame.isDisposed())
-            return;
-
-        if (!oleActivated) {
-            clientSite.doVerb(OLE.OLEIVERB_SHOW);
-            oleActivated = true;
-            String progId = clientSite.getProgramID();
-            if (progId != null && progId.startsWith("Word.Document")) { //$NON-NLS-1$
-                handleWord();
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.EditorPart#setInputWithNotify(org.eclipse.ui.IEditorInput)
-     */
-    protected void setInputWithNotify(IEditorInput input) {
-    	IPathEditorInput pathEditorInput = (IPathEditorInput)input.getAdapter(IPathEditorInput.class);
-    	if (pathEditorInput != null)
-    		source = new File(pathEditorInput.getPath().toOSString());
-    	
-        if (input instanceof IFileEditorInput) {
-        	if (resource == null)
-        		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceListener);
-        	resource = ((IFileEditorInput)input).getFile();
-        } else if (resource != null) {
-        	ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceListener);
-        	resource = null;
-        }
-        
-        super.setInputWithNotify(input);
-    }
-
-    /**
-     * See if it is one of the known types that use OLE Storage.
-     * @param progID the type to test
-     * @return <code>true</code> if it is one of the known types
-     */
-    private static boolean usesStorageFiles(String progID) {
-        return (progID != null && (progID.startsWith("Word.", 0) //$NON-NLS-1$
-                || progID.startsWith("MSGraph", 0) //$NON-NLS-1$
-                || progID.startsWith("PowerPoint", 0) //$NON-NLS-1$
-        || progID.startsWith("Excel", 0))); //$NON-NLS-1$
-    }
-
-    /**
-     * The source has changed to the newFile. Update
-     * editors and set any required flags
-     * @param newFile The file to get the new contents from.
-     */
-    private void sourceChanged(IFile newFile) {
-
-        FileEditorInput newInput = new FileEditorInput(newFile);
-        setInputWithNotify(newInput);
-        sourceChanged = true;
-        setPartName(newInput.getName());
-
-    }
-
-    /* 
-     * See IEditorPart.isSaveOnCloseNeeded() 
-     */
-    public boolean isSaveOnCloseNeeded() {
-        return !sourceDeleted && super.isSaveOnCloseNeeded();
-    }
-
-    /**
-     * Posts the update code "behind" the running operation.
-     *
-     * @param runnable the update code
-     */
-    private void update(Runnable runnable) {
-        IWorkbench workbench = PlatformUI.getWorkbench();
-        IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
-        if (windows != null && windows.length > 0) {
-            Display display = windows[0].getShell().getDisplay();
-            display.asyncExec(runnable);
-        } else
-            runnable.run();
-    }
-
-    private boolean isDirty = false;
-    private void updateDirtyFlag() {
-    	final Runnable dirtyFlagUpdater = new Runnable() {
-			public void run() {
-				if (clientSite == null || resource == null) return;
-				boolean dirty = isDirty(); 
-				if (isDirty != dirty) {
-					isDirty = dirty;
-					firePropertyChange(PROP_DIRTY);
-				}
-				clientSite.getDisplay().timerExec(1000, this);
-			}
-    	};
-    	dirtyFlagUpdater.run();
-    }
-}
diff --git a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleMessages.java b/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleMessages.java
deleted file mode 100644
index 91f658d..0000000
--- a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleMessages.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.editorsupport.win32;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps managing messages
- */
-public class OleMessages {
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.internal.editorsupport.win32.messages";//$NON-NLS-1$
-
-    private static ResourceBundle bundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    private OleMessages() {
-        // prevent instantiation of class
-    }
-
-    /**
-     * Returns the formatted message for the given key in the resource bundle.
-     * 
-     * @param key
-     *            the resource name
-     * @param args
-     *            the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in the resource bundle. If
-     * there isn't any value under the given key, the key is returned.
-     * 
-     * @param key
-     *            the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return key;
-        }
-    }
-
-    /**
-     * Returns the resource object with the given key in the resource bundle. If
-     * there isn't any value under the given key, the default value is returned.
-     * 
-     * @param key
-     *            the resource name
-     * @param def
-     *            the default value
-     * @return the string
-     */
-    public static String getString(String key, String def) {
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return def;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/messages.properties b/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/messages.properties
deleted file mode 100644
index 13507d7..0000000
--- a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/messages.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-OleEditor.errorSaving = Exception saving file
-OleEditor.oleExceptionTitle = OLE Exception
-OleEditor.oleExceptionMessage = OLE Error Saving 
-OleEditor.oleCreationExceptionMessage = Cannot create the in-place editor
-OleEditor.oleCreationExceptionReason = This is probably because there is no OLE editor registered against the type of file you were trying to open.
-OleEditor.savingTitle = Error Saving
-OleEditor.savingMessage = Could not save 
-OleEditor.invalidInput = Invalid Input: {0}.  Input must adapt to IFile
-OleEditor.noFileInput = Invalid Input: {0}.  Input must also exist in the filesystem
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.classpath b/bundles/org.eclipse.ui.workbench.compatibility/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.cvsignore b/bundles/org.eclipse.ui.workbench.compatibility/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.project b/bundles/org.eclipse.ui.workbench.compatibility/.project
deleted file mode 100644
index 85354bd..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.project
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.workbench.compatibility</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.help</project>
-		<project>org.eclipse.jface</project>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.ui.workbench</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8bbcd5e..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Tue Sep 11 09:38:54 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 2341629..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 08:58:52 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 7f9ef27..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 23 11:21:27 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.workbench.compatibility/META-INF/MANIFEST.MF
deleted file mode 100644
index 539ec02..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.ui.workbench.compatibility
-Bundle-Version: 3.2.0.qualifier
-Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.ui.workbench;bundle-version="[3.0.0,4.0.0)"
-Bundle-Localization: fragment-compatibility
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ClassPath: compatibility.jar
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/about.html b/bundles/org.eclipse.ui.workbench.compatibility/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/build.properties b/bundles/org.eclipse.ui.workbench.compatibility/build.properties
deleted file mode 100644
index 2bb5ca5..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-source.compatibility.jar=src/
-src.includes=about.html
-bin.includes = fragment-compatibility.properties,\
-               about.html,\
-               compatibility.jar,\
-               META-INF/
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/fragment-compatibility.properties b/bundles/org.eclipse.ui.workbench.compatibility/fragment-compatibility.properties
deleted file mode 100644
index f667586..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/fragment-compatibility.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName=Eclipse.org
-fragmentName=Workbench Compatibility
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/CompatibleWorkbenchPage.java b/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/CompatibleWorkbenchPage.java
deleted file mode 100644
index 5db7cbb..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/CompatibleWorkbenchPage.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-/**
- * Internal class used in providing increased binary compatibility for pre-3.0
- * plug-ins. This declaration masks the empty class of the same name declared in
- * the Workbench proper. This class implements IWorkbenchPage that existed in
- * 2.1 but were removed in 3.0 because they referenced resource API.
- * <p>
- * Plug-ins should not refer to this type or its containing fragment from their
- * class path. It is intended only to provide binary compatibility for pre-3.0
- * plug-ins, and should not be referenced at development time.
- * </p>
- * 
- * @since 3.0
- */
-public class CompatibleWorkbenchPage implements ICompatibleWorkbenchPage {
-
-    /**
-     * openEditor(IFile) is declared on IWorkbenchPage in 2.1. This method was
-     * removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IFile input) throws PartInitException {
-        // invoke org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage, IFile,
-        // boolean);
-        return openEditor(new Class[] { IWorkbenchPage.class, IFile.class,
-                boolean.class },
-                new Object[] { this, input, new Boolean(true) });
-    }
-
-    /**
-     * openEditor(IFile,String) is declared on IWorkbenchPage in 2.1. This
-     * method was removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IFile input, String editorID)
-            throws PartInitException {
-        return openEditor(input, editorID, true);
-    }
-
-    /**
-     * openEditor(IFile,String,boolean) is declared on IWorkbenchPage in 2.1.
-     * This method was removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IFile input, String editorID, boolean activate)
-            throws PartInitException {
-        return ((IWorkbenchPage) this).openEditor(getFileEditorInput(input),
-                editorID);
-    }
-
-    /**
-     * openEditor(IMarker) is declared on IWorkbenchPage in 2.1. This method was
-     * removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IMarker marker) throws PartInitException {
-        return openEditor(marker, true);
-    }
-
-    /**
-     * openEditor(IMarker,boolean) is declared on IWorkbenchPage in 2.1. This
-     * method was removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IMarker marker, boolean activate)
-            throws PartInitException {
-        // invoke org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage, IMarker,
-        // boolean);
-        return openEditor(new Class[] { IWorkbenchPage.class, IMarker.class,
-                boolean.class }, new Object[] { this, marker,
-                new Boolean(activate) });
-    }
-
-    /**
-     * openSystemEditor(IFile) is declared on IWorkbenchPage in 2.1. This method
-     * was removed in 3.0 because it references resource API.
-     */
-    public void openSystemEditor(IFile file) throws PartInitException {
-        ((IWorkbenchPage) this).openEditor(getFileEditorInput(file),
-                IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID);
-
-    }
-
-    /*
-     * Implementation support: Use reflection for the following code pattern:
-     * new org.eclipse.ui.part.FileEditorInput(file) The class FileEditorInput
-     * is found in the org.eclipse.ui.ide plug-in.
-     */
-    private IEditorInput getFileEditorInput(IFile file)
-            throws PartInitException {
-        IPluginDescriptor desc = Platform.getPluginRegistry()
-                .getPluginDescriptor("org.eclipse.ui.ide"); //$NON-NLS-1$		
-        Exception problem;
-        try {
-            Class clazz = desc.getPluginClassLoader().loadClass(
-                    "org.eclipse.ui.part.FileEditorInput"); //$NON-NLS-1$
-            Constructor constructor = clazz
-                    .getConstructor(new Class[] { IFile.class });
-            return (IEditorInput) constructor
-                    .newInstance(new Object[] { file });
-        } catch (NullPointerException e) {
-            problem = e;
-        } catch (ClassNotFoundException e) {
-            problem = e;
-        } catch (NoSuchMethodException e) {
-            problem = e;
-        } catch (IllegalArgumentException e) {
-            problem = e;
-        } catch (IllegalAccessException e) {
-            problem = e;
-        } catch (InvocationTargetException e) {
-            problem = e;
-        } catch (InstantiationException e) {
-            problem = e;
-        }
-        IStatus status = new Status(
-                IStatus.ERROR,
-                WorkbenchPlugin.PI_WORKBENCH,
-                0,
-                "openEditor() compatibility support failed - new FileEditorInput(file)", problem); //$NON-NLS-1$
-        WorkbenchPlugin.log(status.getMessage(), status);
-        throw new PartInitException(status);
-    }
-
-    /*
-     * Implementation support: Use reflection to invoke the appropriate static
-     * openEditor(...) method on IDE The IDE class is found in the
-     * org.eclipse.ui.ide plug-in.
-     */
-    private IEditorPart openEditor(Class[] argTypes, Object[] args)
-            throws PartInitException {
-        IPluginDescriptor desc = Platform.getPluginRegistry()
-                .getPluginDescriptor("org.eclipse.ui.ide"); //$NON-NLS-1$
-        Throwable problem;
-        try {
-            Class clazz = desc.getPluginClassLoader().loadClass(
-                    "org.eclipse.ui.ide.IDE"); //$NON-NLS-1$
-            Method method = clazz.getMethod("openEditor", argTypes); //$NON-NLS-1$
-            return (IEditorPart) method.invoke(null, args);
-        } catch (NullPointerException e) {
-            problem = e;
-        } catch (ClassNotFoundException e) {
-            problem = e;
-        } catch (NoSuchMethodException e) {
-            problem = e;
-        } catch (IllegalArgumentException e) {
-            problem = e;
-        } catch (IllegalAccessException e) {
-            problem = e;
-        } catch (InvocationTargetException e) {
-            problem = e;
-        }
-        IStatus status = new Status(
-                IStatus.ERROR,
-                WorkbenchPlugin.PI_WORKBENCH,
-                0,
-                "openEditor() compatibility support failed - IDE.openEditor()", problem); //$NON-NLS-1$
-        WorkbenchPlugin.log(status.getMessage(), status);
-        throw new PartInitException(status);
-    }
-}
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/ICompatibleWorkbenchPage.java b/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/ICompatibleWorkbenchPage.java
deleted file mode 100644
index 1258328..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/ICompatibleWorkbenchPage.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-
-/**
- * Internal interface used in providing increased binary compatibility for
- * pre-3.0 plug-ins. This declaration masks the empty interface of the same name
- * declared in the Workbench proper. This interface declares IWorkbenchPage that
- * existed in 2.1 but were removed in 3.0 because they referenced resource API.
- * <p>
- * Plug-ins should not refer to this type or its containing fragment from their
- * class path. It is intended only to provide binary compatibility for pre-3.0
- * plug-ins, and should not be referenced at development time.
- * </p>
- * 
- * @since 3.0
- */
-public interface ICompatibleWorkbenchPage {
-
-    /**
-     * Opens an editor on the given file resource.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is activated; otherwise, a new editor is opened.
-     * <p>
-     * <p>
-     * An appropriate editor for the input is determined using a multistep
-     * process.
-     * </p>
-     * <ol>
-     * <li>The workbench editor registry is consulted to determine if an editor
-     * extension has been registered for the file type. If so, an instance of
-     * the editor extension is opened on the file. See
-     * <code>IEditorRegistry.getDefaultEditor(IFile)</code>.
-     * <li>Next, the native operating system will be consulted to determine if
-     * a native editor exists for the file type. If so, a new process is started
-     * and the native editor is opened on the file.
-     * <li>If all else fails the file will be opened in a default text editor.
-     * </li>
-     * </ol>
-     * </p>
-     * 
-     * @param input
-     *            the file to edit
-     * @return an open and active editor, or <code>null</code> if a system
-     *         editor was opened
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IFile)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IFile input) throws PartInitException;
-
-    /**
-     * Opens an editor on the given file resource.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is brought to front; otherwise, a new editor is opened. If
-     * <code>activate == true</code> the editor will be activated.
-     * <p>
-     * <p>
-     * The editor type is determined by mapping <code>editorId</code> to an
-     * editor extension registered with the workbench. An editor id is passed
-     * rather than an editor object to prevent the accidental creation of more
-     * than one editor for the same input. It also guarantees a consistent
-     * lifecycle for editors, regardless of whether they are created by the user
-     * or restored from saved data.
-     * </p>
-     * 
-     * @param input
-     *            the file to edit
-     * @param editorId
-     *            the id of the editor extension to use or null
-     * @param activate
-     *            if <code>true</code> the editor will be activated
-     * @return an open and active editor
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IFile,String,boolean)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IFile input, String editorId, boolean activate)
-            throws PartInitException;
-
-    /**
-     * Opens an editor on the given file resource.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is activated; otherwise, a new editor is opened.
-     * <p>
-     * <p>
-     * The editor type is determined by mapping <code>editorId</code> to an
-     * editor extension registered with the workbench. An editor id is passed
-     * rather than an editor object to prevent the accidental creation of more
-     * than one editor for the same input. It also guarantees a consistent
-     * lifecycle for editors, regardless of whether they are created by the user
-     * or restored from saved data.
-     * </p>
-     * 
-     * @param editorId
-     *            the id of the editor extension to use
-     * @param input
-     *            the file to edit
-     * @return an open and active editor
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IFile,String)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IFile input, String editorId)
-            throws PartInitException;
-
-    /**
-     * Opens an editor on the file resource of the given marker.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is activated; otherwise, a new editor is opened. The cursor and selection
-     * state of the editor is then updated from information recorded in the
-     * marker.
-     * <p>
-     * <p>
-     * If the marker contains an <code>EDITOR_ID_ATTR</code> attribute the
-     * attribute value will be used to determine the editor type to be opened.
-     * If not, the registered editor for the marker resource will be used.
-     * </p>
-     * 
-     * @param marker
-     *            the marker to open
-     * @return an open and active editor, or null if a system editor was opened
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IMarker)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IMarker marker) throws PartInitException;
-
-    /**
-     * Opens an editor on the file resource of the given marker.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is brought to front; otherwise, a new editor is opened. If
-     * <code>activate == true</code> the editor will be activated. The cursor
-     * and selection state of the editor are then updated from information
-     * recorded in the marker.
-     * <p>
-     * <p>
-     * If the marker contains an <code>EDITOR_ID_ATTR</code> attribute the
-     * attribute value will be used to determine the editor type to be opened.
-     * If not, the registered editor for the marker resource will be used.
-     * </p>
-     * 
-     * @param marker
-     *            the marker to open
-     * @param activate
-     *            if <code>true</code> the editor will be activated
-     * @return an open editor, or null if a system editor was opened
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IMarker,boolean)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IMarker marker, boolean activate)
-            throws PartInitException;
-
-    /**
-     * Opens an operating system editor on a given file. Once open, the
-     * workbench has no knowledge of the editor or the state of the file being
-     * edited. Users are expected to perform a "Local Refresh" from the
-     * workbench user interface.
-     * 
-     * @param input
-     *            the file to edit
-     * @exception PartInitException
-     *                if the editor could not be opened.
-     * @deprecated In 3.0 this resource-specific method was removed. Use
-     *             <code>openEditor(new FileEditorInput(file), IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID)</code>
-     *             instead. This method should not be referenced at development
-     *             time. See the class comment for more details.
-     */
-    public void openSystemEditor(IFile input) throws PartInitException;
-}
diff --git a/bundles/org.eclipse.ui/buildnotes_workbench.html b/bundles/org.eclipse.ui/buildnotes_workbench.html
index 286a06d..00d0f48 100644
--- a/bundles/org.eclipse.ui/buildnotes_workbench.html
+++ b/bundles/org.eclipse.ui/buildnotes_workbench.html
@@ -12,6 +12,27 @@
 <h1>Eclipse Platform Build Notes (3.3)<br>
 JFace and Workbench</h1>
 
+<p>Integration Build (August 26, 2008, 4:32 p.m.)</p>
+  <p>Problem reports updated</p>
+  <p>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=169559">Bug 169559</a>. [CommonNavigator] [DND] - Drag/drop within the project explorer; doesn't scroll (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=185561">Bug 185561</a>. [CommonNavigator] When hideAvailableExtensionsTab sets to true, all available content will be removed upon filter select changed (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=204700">Bug 204700</a>. [CommonNavigator] ConcurrentModificationException trying to see phys - view (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=213891">Bug 213891</a>. [CommonNavigator] Project Explorer (in platform - NOT SDK!) is not refreshed on changes (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=228359">Bug 228359</a>. [CommonNavigator] CommonNavigator.selectReveal() should not expand selected elements (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=233618">Bug 233618</a>. [CommonNavigator] Cannot copy/paste a linked resources into a Folder. (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=235379">Bug 235379</a>. [GlobalActions] GlobalUndoAction / GlobalRedoAction causes NPE by unsafely disposing old delegate (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=241632">Bug 241632</a>. [KeyBindings] Emacs Binding not visible (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=242394">Bug 242394</a>. Arithmetic exception in AbstractColumnLayout (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=243210">Bug 243210</a>. [KeyBindings] AWT Text fields no longer receive delete key pressed event in workbench (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=243466">Bug 243466</a>. [CommonNavigator] documentation missing about how to configure linkHelper (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=244013">Bug 244013</a>. [Metadata] Branched org.eclipse.ui should have version 3.4.1 (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=244610">Bug 244610</a>. [CommonNavigator] tests - test file not correctly closed, causes exception in tearDown (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=244754">Bug 244754</a>. [PropertiesDialog] propertyPages extension point does not allow forcePluginActivation when using core.expression's property tester (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=245125">Bug 245125</a>. [Trim] Cheese when calling Shell#layout() on invisible Shell in RCP (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=245206">Bug 245206</a>. [CommonNavigator] Add test code for dependsOn with overrides in actionProvider (FIXED)<br>
+  </p>
+
 <p>Integration Build (August 19, 2008, 3:51 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 ce73933..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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.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 26cba41..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,357 +0,0 @@
-#Wed Apr 02 12:20:32 GMT-07:00 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=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=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=80
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/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 8079ff0..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,116 +0,0 @@
-#Mon Dec 03 13:55:50 EST 2007
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=false
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.2\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/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 122c936..0000000
--- a/examples/org.eclipse.jface.examples.databinding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Mon Dec 03 13:55:50 EST 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/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 add7803..0000000
--- a/examples/org.eclipse.jface.examples.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +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.core.databinding,
- org.eclipse.core.runtime,
- org.eclipse.core.databinding.beans,
- org.eclipse.jface.databinding
-Export-Package: org.eclipse.jface.examples.databinding;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
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
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 72c23de..0000000
--- a/examples/org.eclipse.jface.examples.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.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/ModelObject.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ModelObject.java
deleted file mode 100644
index 3e2acf3..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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/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 9669115..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, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.core.databinding.observable.Diffs;
-import org.eclipse.core.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() * (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 736f7b5..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.contentprovider.test;
-
-import java.util.Collections;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ListeningLabelProvider;
-import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.dialogs.InputDialog;
-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 = ViewersObservables.observeSingleSelection(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(ValueChangeEvent event) {
-								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) {
-		final Display display = Display.getDefault();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-
-			public void run() {
-				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 3089982..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/LabelProviderTest2.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.contentprovider.test;
-
-import java.util.Collections;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ListeningLabelProvider;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.dialogs.InputDialog;
-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 = ViewersObservables.observeSingleSelection(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(ValueChangeEvent event) {
-								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) {
-		final Display display = Display.getDefault();
-        Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				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 970b061..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, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 7d34d94..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.core.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 88ec454..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/SomeMathFunction.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.examples.databinding.contentprovider.test;
-
-import java.util.Collections;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.map.ComputedObservableMap;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-
-/**
- * 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 ComputedObservableMap {
-
-	/**
-	 * 
-	 */
-	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(domain);
-		init();
-	}
-
-	/**
-	 * @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()
-		fireMapChange(new MapDiff() {
-
-			public Set getAddedKeys() {
-				return Collections.EMPTY_SET;
-			}
-
-			public Set getChangedKeys() {
-				return keySet();
-			}
-
-			public Object getNewValue(Object key) {
-				return doComputeResult(key, operation);
-			}
-
-			public Object getOldValue(Object key) {
-				return doComputeResult(key, oldOp);
-			}
-
-			public Set getRemovedKeys() {
-				return Collections.EMPTY_SET;
-			}
-		});
-	}
-
-	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 Object doGet(Object key) {
-		return doComputeResult(key, this.op);
-	}
-
-	protected Object doPut(Object key, Object value) {
-		throw new UnsupportedOperationException();
-	}
-
-	protected void hookListener(Object addedKey) {
-		// ignore, no need to listen to immutable Double objects
-	}
-
-	protected void unhookListener(Object removedKey) {
-		// ignore, no need to listen to immutable Double objects
-	}
-
-}
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 20efc8e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/StructuredContentProviderTest.java
+++ /dev/null
@@ -1,396 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.examples.databinding.contentprovider.test;
-
-import java.util.Iterator;
-import java.util.Random;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.MappedSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater;
-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 {
-
-	private static Realm realm;
-
-	/**
-	 * 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(realm);
-
-		// 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(realm, new Integer(
-				SomeMathFunction.OP_MULTIPLY), null);
-
-		// mathFunction implements the selected function
-		mathFunction = new SomeMathFunction(inputSet);
-		currentFunction.addValueChangeListener(new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-				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(realm) {
-			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 = ViewersObservables.observeSingleSelection(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();
-		realm = SWTObservables.getRealm(display);
-		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 8019357..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/contentprovider/test/TreeContentProviderTest.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.examples.databinding.contentprovider.test;
-
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.UnionSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.internal.databinding.observable.tree.IUnorderedTreeProvider;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.provisional.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;
-			}
-
-			public Realm getRealm() {
-				// TODO Auto-generated method stub
-				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...", false);
-
-		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) {
-		final Display display = Display.getDefault();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				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/ducks/DuckType.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/DuckType.java
deleted file mode 100644
index 031ac20..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/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.ducks;
-
-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/ducks/ReflectedMethod.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/ReflectedMethod.java
deleted file mode 100644
index c3b78ea..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/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.ducks;
-
-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/ducks/ReflectedProperty.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/ReflectedProperty.java
deleted file mode 100644
index 3ec9a58..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/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.ducks;
-
-/**
- * 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/ducks/RelaxedDuckType.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/RelaxedDuckType.java
deleted file mode 100644
index fa43397..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/ducks/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.ducks;
-
-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/mask/EditMask.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMask.java
deleted file mode 100644
index 484922e..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMask.java
+++ /dev/null
@@ -1,451 +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.jface.examples.databinding.mask.internal.SWTUtil;
-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;
-   			}
-            // If the machine is loaded down (ie: spyware, malware), we might
-            // get another keystroke before asyncExec can process, so we use 
-            // greedyExec instead.
-            SWTUtil.greedyExec(Display.getCurrent(), updateTextField);
-//				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 49c9c1c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/EditMaskTest.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.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/mask/internal/SWTUtil.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/SWTUtil.java
deleted file mode 100644
index 8bd2b2a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/SWTUtil.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.examples.databinding.mask.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 1.0
- */
-public class SWTUtil {
-    /**
-     * Stores a work queue for each display
-     */
-    private static Map mapDisplayOntoWorkQueue = new HashMap();
-
-    private SWTUtil() {
-    }
-
-    /**
-     * Runs the given runnable on the given display as soon as possible. If
-     * possible, the runnable will be executed before the next widget is
-     * repainted, but this behavior is not guaranteed. Use this method to
-     * schedule work will affect the way one or more widgets are drawn.
-     * 
-     * <p>
-     * This is threadsafe.
-     * </p>
-     * 
-     * @param d
-     *            display
-     * @param r
-     *            runnable to execute in the UI thread.
-     */
-    public static void greedyExec(Display d, Runnable r) {
-        if (d.isDisposed()) {
-            return;
-        }
-
-        // if (Display.getCurrent() == d) {
-        // r.run();
-        // } else {
-        WorkQueue queue = getQueueFor(d);
-        queue.asyncExec(r);
-        // }
-    }
-
-    /**
-     * Runs the given runnable on the given display as soon as possible. Unlike
-     * greedyExec, this has no effect if the given runnable has already been
-     * scheduled for execution. Use this method to schedule work that will
-     * affect the way one or more wigdets are drawn, but that should only happen
-     * once.
-     * 
-     * <p>
-     * This is threadsafe.
-     * </p>
-     * 
-     * @param d
-     *            display
-     * @param r
-     *            runnable to execute in the UI thread. Has no effect if the
-     *            given runnable has already been scheduled but has not yet run.
-     */
-    public static void runOnce(Display d, Runnable r) {
-        if (d.isDisposed()) {
-            return;
-        }
-        WorkQueue queue = getQueueFor(d);
-        queue.runOnce(r);
-    }
-
-    /**
-     * Cancels a greedyExec or runOnce that was previously scheduled on the
-     * given display. Has no effect if the given runnable is not in the queue
-     * for the given display
-     * 
-     * @param d
-     *            target display
-     * @param r
-     *            runnable to execute
-     */
-    public static void cancelExec(Display d, Runnable r) {
-        if (d.isDisposed()) {
-            return;
-        }
-        WorkQueue queue = getQueueFor(d);
-        queue.cancelExec(r);
-    }
-
-    /**
-     * Returns the work queue for the given display. Creates a work queue if
-     * none exists yet.
-     * 
-     * @param d
-     *            display to return queue for
-     * @return a work queue (never null)
-     */
-    private static WorkQueue getQueueFor(final Display d) {
-        WorkQueue result;
-        synchronized (mapDisplayOntoWorkQueue) {
-            // Look for existing queue
-            result = (WorkQueue) mapDisplayOntoWorkQueue.get(d);
-
-            if (result == null) {
-                // If none, create new queue
-                result = new WorkQueue(d);
-                final WorkQueue q = result;
-                mapDisplayOntoWorkQueue.put(d, result);
-                d.asyncExec(new Runnable() {
-                    public void run() {
-                        d.disposeExec(new Runnable() {
-                            public void run() {
-                                synchronized (mapDisplayOntoWorkQueue) {
-                                    q.cancelAll();
-                                    mapDisplayOntoWorkQueue.remove(d);
-                                }
-                            }
-                        });
-                    }
-                });
-            }
-            return result;
-        }
-    }
-    
-    /**
-     * @param rgb1
-     * @param rgb2
-     * @param ratio
-     * @return the RGB object
-     */
-    public static RGB mix(RGB rgb1, RGB rgb2, double ratio) {
-        return new RGB(interp(rgb1.red, rgb2.red, ratio), 
-                interp(rgb1.green, rgb2.green, ratio),
-                interp(rgb1.blue, rgb2.blue, ratio));
-    }
-    
-    private static int interp(int i1, int i2, double ratio) {
-        int result = (int)(i1 * ratio + i2 * (1.0d - ratio));
-        if (result < 0) result = 0;
-        if (result > 255) result = 255;
-        return result;
-    }
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/WorkQueue.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/WorkQueue.java
deleted file mode 100644
index e5eeaea..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/mask/internal/WorkQueue.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.jface.examples.databinding.mask.internal;
-
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.Set;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * @since 3.2
- *
- */
-public class WorkQueue {
-	
-    private boolean updateScheduled = false;
-
-    private boolean paintListenerAttached = false;
-
-    private LinkedList pendingWork = new LinkedList();
-
-    private Display d;
-
-    private Set pendingWorkSet = new HashSet();
-
-    private Runnable updateJob = new Runnable() {
-        public void run() {
-            doUpdate();
-            updateScheduled = false;
-        }
-    };
-
-    private Listener paintListener = new Listener() {
-        public void handleEvent(Event event) {
-            paintListenerAttached = false;
-            d.removeFilter(SWT.Paint, this);
-            doUpdate();
-        }
-    };
-
-    /**
-     * @param targetDisplay
-     */
-    public WorkQueue(Display targetDisplay) {
-        d = targetDisplay;
-    }
-
-    private void doUpdate() {
-        for (;;) {
-            Runnable next;
-            synchronized (pendingWork) {
-                if (pendingWork.isEmpty()) {
-                    break;
-                }
-                next = (Runnable) pendingWork.removeFirst();
-                pendingWorkSet.remove(next);
-            }
-
-            next.run();
-        }
-        
-    }
-
-    /**
-     * Schedules some work to happen in the UI thread as soon as possible. If
-     * possible, the work will happen before the next control redraws. The given
-     * runnable will only be run once. Has no effect if this runnable has
-     * already been queued for execution.
-     * 
-     * @param work
-     *            runnable to execute
-     */
-    public void runOnce(Runnable work) {
-        synchronized (pendingWork) {
-            if (pendingWorkSet.contains(work)) {
-                return;
-            }
-
-            pendingWorkSet.add(work);
-
-            asyncExec(work);
-        }
-    }
-
-    /**
-     * Schedules some work to happen in the UI thread as soon as possible. If
-     * possible, the work will happen before the next control redraws. Unlike
-     * runOnce, calling asyncExec twice with the same runnable will cause that
-     * runnable to run twice.
-     * 
-     * @param work
-     *            runnable to execute
-     */
-    public void asyncExec(Runnable work) {
-        synchronized (pendingWork) {
-            pendingWork.add(work);
-            if (!updateScheduled) {
-                updateScheduled = true;
-                d.asyncExec(updateJob);
-            }
-
-            // If we're in the UI thread, add an event filter to ensure
-            // the work happens ASAP
-            if (Display.getCurrent() == d) {
-                if (!paintListenerAttached) {
-                    paintListenerAttached = true;
-                    d.addFilter(SWT.Paint, paintListener);
-                }
-            }
-        }
-    }
-
-    /**
-     * Cancels a previously-scheduled runnable. Has no effect if the given
-     * runnable was not previously scheduled or has already executed.
-     * 
-     * @param toCancel
-     *            runnable to cancel
-     */
-    public void cancelExec(Runnable toCancel) {
-        synchronized (pendingWork) {
-            pendingWork.remove(toCancel);
-            pendingWorkSet.remove(toCancel);
-        }
-    }
-
-    /**
-     * Cancels all pending work.
-     */
-    public void cancelAll() {
-        synchronized (pendingWork) {
-            pendingWork.clear();
-            pendingWorkSet.clear();
-        }
-    }
-}
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 d78eed0..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Adventure.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.examples.databinding.model;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-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 IValidator getMaxNumberOfPeopleDomainValidator() {
-		return new IValidator() {
-			public IStatus validate(Object value) {
-				int intValue = ((Integer)value).intValue();
-				if (intValue < 1 || intValue > 20) {
-					return ValidationStatus
-							.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 0606d43..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/AggregateObservableValue.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
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-package org.eclipse.jface.examples.databinding.model;
-
-import java.util.StringTokenizer;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-
-/**
- * @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(ValueChangeEvent event) {
-			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 doSetValue(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 edbae49..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/Catalog.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.examples.databinding.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-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 778a31c..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 0b9d081..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 35e3f5e..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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 f30a159..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SampleData.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 116920
- *******************************************************************************/
-package org.eclipse.jface.examples.databinding.model;
-
-
-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;
-
-	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();
-	}
-}
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 f6fae9f..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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/SimpleCart.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleCart.java
deleted file mode 100644
index 8fa45fa..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleCart.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.model;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-/**
- * @since 3.2
- *
- */
-public class SimpleCart extends ModelObject {
-
-	private int numItems;
-
-	public int getNumItems() {
-		return numItems;
-	}
-
-	public void setNumItems(int numItems) {
-		firePropertyChange("numItems", this.numItems, this.numItems = numItems);
-	}
-	
-}
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 7636a4c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimpleOrder.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Pampered Chef - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.model;
-
-import java.util.Date;
-
-import org.eclipse.jface.examples.databinding.ModelObject;
-
-/**
- * @since 1.0
- *
- */
-public class SimpleOrder extends ModelObject {
-
-	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 5bdddf5..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/model/SimplePerson.java
+++ /dev/null
@@ -1,118 +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 SimpleCart cart = new SimpleCart();
-	
-	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;
-	}
-
-	public SimpleCart getCart() {
-		return cart;
-	}
-
-	public void setCart(SimpleCart cart) {
-		firePropertyChange("cart", this.cart, this.cart = cart); //$NON-NLS-1$
-	}
-}
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 39fbc08..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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/TestMasterDetail.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/TestMasterDetail.java
deleted file mode 100644
index 980c75a..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/nestedselection/TestMasterDetail.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.nestedselection;
-
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.conversion.ObjectToStringConverter;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.examples.databinding.model.SimpleModel;
-import org.eclipse.jface.examples.databinding.model.SimpleOrder;
-import org.eclipse.jface.examples.databinding.model.SimplePerson;
-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 {
-	/**
-	 * @since 3.2
-	 * 
-	 */
-	private static final class CustomUpdateValueStrategy extends
-			UpdateValueStrategy {
-		protected IStatus doSet(IObservableValue observableValue, Object value) {
-			IStatus result = super.doSet(observableValue, value);
-			if (result.isOK()) {
-				Object changed = observableValue;
-				if (changed instanceof IObserving) {
-					changed = ((IObserving) changed).getObserved();
-				}
-				System.out.println("changed: " + changed);
-			}
-			return result;
-		}
-	}
-
-	/**
-	 * @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 Text validationStatus;
-
-	/**
-	 * 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();
-		validationStatus = new Text(shell, SWT.READ_ONLY | SWT.BORDER);
-	}
-
-	private void run() {
-		final Display display = new Display();
-
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				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) {
-		Realm realm = SWTObservables.getRealm(parent.getDisplay());
-
-		TableViewer peopleViewer = new TableViewer(personsTable);
-		ObservableListContentProvider peopleViewerContent = new ObservableListContentProvider();
-		peopleViewer.setContentProvider(peopleViewerContent);
-
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				peopleViewerContent.getKnownElements(), SimplePerson.class,
-				new String[] { "name", "state" });
-		peopleViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMaps));
-
-		peopleViewer.setInput(new WritableList(realm, model.getPersonList(),
-				SimpleModel.class));
-
-		IObservableValue selectedPerson = ViewersObservables
-				.observeSingleSelection(peopleViewer);
-
-		DataBindingContext dbc = new DataBindingContext(realm) {
-			protected UpdateValueStrategy createTargetToModelUpdateValueStrategy(
-					IObservableValue fromValue, IObservableValue toValue) {
-				return new CustomUpdateValueStrategy();
-			}
-		};
-		IConverter upperCaseConverter = new IConverter() {
-			public Object convert(Object fromObject) {
-				return ((String) fromObject).toUpperCase();
-			}
-
-			public Object getFromType() {
-				return String.class;
-			}
-
-			public Object getToType() {
-				return String.class;
-			}
-		};
-		IValidator vowelValidator = new IValidator() {
-			public IStatus validate(Object value) {
-				String s = (String) value;
-				if (!s.matches("[aeiouAEIOU]*")) {
-					return ValidationStatus.error("only vowels allowed");
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		Binding b = dbc.bindValue(SWTObservables.observeText(name, SWT.Modify),
-				BeansObservables.observeDetailValue(realm, selectedPerson,
-						"name", String.class), new CustomUpdateValueStrategy()
-						.setConverter(upperCaseConverter).setAfterGetValidator(
-								vowelValidator), null);
-
-//		AggregateValidationStatus status = new AggregateValidationStatus(dbc
-//				.getBindings(), AggregateValidationStatus.MAX_SEVERITY);
-		dbc.bindValue(SWTObservables.observeText(validationStatus, SWT.NONE),
-				b.getValidationStatus(), null, new UpdateValueStrategy().setConverter(new ObjectToStringConverter()));
-		
-		dbc.bindValue(SWTObservables.observeText(address, SWT.Modify),
-				BeansObservables.observeDetailValue(realm, selectedPerson,
-						"address", String.class), null, null);
-
-		dbc.bindValue(SWTObservables.observeText(city, SWT.Modify),
-				BeansObservables.observeDetailValue(realm, selectedPerson,
-						"city", String.class), null, null);
-
-		dbc.bindValue(SWTObservables.observeText(state, SWT.Modify),
-				BeansObservables.observeDetailValue(realm, selectedPerson,
-						"state", String.class), null, null);
-
-		TableViewer ordersViewer = new TableViewer(ordersTable);
-		ObservableListContentProvider ordersViewerContent = new ObservableListContentProvider();
-		ordersViewer.setContentProvider(ordersViewerContent);
-		ordersViewer.setLabelProvider(new ObservableMapLabelProvider(
-				BeansObservables.observeMaps(ordersViewerContent
-						.getKnownElements(), SimpleOrder.class, new String[] {
-						"orderNumber", "date" })));
-
-		IObservableList orders = BeansObservables.observeDetailList(realm,
-				selectedPerson, "orders", SimpleOrder.class);
-		ordersViewer.setInput(orders);
-	}
-}
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 02e8f5d..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/RadioGroup.java
+++ /dev/null
@@ -1,559 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.radioGroup;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.examples.databinding.ducks.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 86f5d7b..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/radioGroup/VetoableSelectionListener.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.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 492dcdc..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet000HelloWorld.java
+++ /dev/null
@@ -1,121 +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
- *     Brad Reynolds - bug 116920
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-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) {
-		Display display = new Display();
-		final ViewModel viewModel = new ViewModel();
-
-		Realm.runWithDefault(SWTObservables.getRealm(display),
-				new Runnable() {
-					public void run() {
-						final 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;
-		private Text name;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-
-		public Shell createShell() {
-			// Build a UI
-			Display display = Display.getDefault();
-			Shell shell = new Shell(display);
-			shell.setLayout(new RowLayout(SWT.VERTICAL));
-			name = new Text(shell, SWT.BORDER);
-
-			// Bind it
-			DataBindingContext bindingContext = new DataBindingContext();
-			Person person = viewModel.getPerson();
-
-			bindingContext.bindValue(SWTObservables.observeText(name,
-					SWT.Modify), BeansObservables.observeValue(person, "name"),
-					null, 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 c701255..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet001NestedSelectionWithCombo.java
+++ /dev/null
@@ -1,215 +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
- *     Brad Reynolds - bug 116920
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.HashSet;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-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
-	public 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.
-	public 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());
-			Realm realm = SWTObservables.getRealm(shell.getDisplay());
-
-			List peopleList = new List(shell, SWT.BORDER);
-			Text name = new Text(shell, SWT.BORDER);
-			Combo city = new Combo(shell, SWT.BORDER | SWT.READ_ONLY);
-
-			ListViewer peopleListViewer = new ListViewer(peopleList);
-			IObservableMap attributeMap = BeansObservables.observeMap(
-					Observables.staticObservableSet(realm, new HashSet(
-							viewModel.getPeople())), Person.class, "name");
-			peopleListViewer.setLabelProvider(new ObservableMapLabelProvider(
-					attributeMap));
-			peopleListViewer.setContentProvider(new ArrayContentProvider());
-			peopleListViewer.setInput(viewModel.getPeople());
-
-			DataBindingContext dbc = new DataBindingContext(realm);
-			IObservableValue selectedPerson = ViewersObservables
-					.observeSingleSelection(peopleListViewer);
-			dbc.bindValue(SWTObservables.observeText(name, SWT.Modify),
-					BeansObservables.observeDetailValue(realm, selectedPerson,
-							"name", String.class), null, null);
-
-			ComboViewer cityViewer = new ComboViewer(city);
-			cityViewer.setContentProvider(new ArrayContentProvider());
-			cityViewer.setInput(viewModel.getCities());
-
-			IObservableValue citySelection = ViewersObservables
-					.observeSingleSelection(cityViewer);
-			dbc.bindValue(citySelection, BeansObservables.observeDetailValue(
-					realm, selectedPerson, "city", String.class), null, null);
-
-			GridLayoutFactory.swtDefaults().applyTo(shell);
-			// 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 09882e7..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet002UpdateComboRetainSelection.java
+++ /dev/null
@@ -1,185 +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
- *     Brad Reynolds - bug 116920
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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) {
-    	final Display display = new Display();
-    	Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-    		public void run() {
-    			ViewModel viewModel = new ViewModel();
-    			Shell shell = new View(viewModel).createShell();
-    			
-    			// The SWT event loop
-    			while (!shell.isDisposed()) {
-    				if (!display.readAndDispatch()) {
-    					display.sleep();
-    				}
-    			}
-    			
-    			// Print the results
-    			System.out.println(viewModel.getText());
-    		}
-    	});
-    	display.dispose();
-    }
-
-    // Minimal JavaBeans support
-    public 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.
-    public 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) {
-            List old = this.choices;
-            this.choices = choices;
-            firePropertyChange("choices", old, choices);
-        }
-
-        public String getText() {
-            return text;
-        }
-
-        public void setText(String text) {
-            String oldValue = this.text;
-            this.text = text;
-            firePropertyChange("text", oldValue, text);
-        }
-    }
-
-    // The GUI view
-    static class View {
-        private ViewModel viewModel;
-        /**
-         * used to make a new choices array unique
-         */
-        static int count;
-
-        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");
-                    newList.add(Integer.toString(++count));
-                    viewModel.setChoices(newList);
-                }
-            });
-
-            // Print value out first
-            System.out.println(viewModel.getText());
-
-            DataBindingContext dbc = new DataBindingContext();
-            
-            IObservableList list = MasterDetailObservables.detailList(BeansObservables.observeValue(viewModel, "choices"),
-                    getListDetailFactory(),
-                    String.class);
-            dbc.bindList(SWTObservables.observeItems(combo), list, null, null); 
-            dbc.bindValue(SWTObservables.observeText(combo), BeansObservables.observeValue(viewModel, "text"), null, null);
-            
-            // Open and return the Shell
-            shell.pack();
-            shell.open();
-            return shell;
-        }
-    }
-
-    private static IObservableFactory getListDetailFactory() {
-        return new IObservableFactory() {
-            public IObservable createObservable(Object target) {
-                WritableList list = WritableList.withElementType(String.class);
-                list.addAll((Collection) target);
-                return list;
-            }
-        };
-    }
-}
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 dd61634..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet003UpdateComboBindUsingViewer.java
+++ /dev/null
@@ -1,191 +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
- *     Brad Reynolds - bug 116920
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-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) {
-		final Display display = new Display();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				ViewModel viewModel = new ViewModel();
-				Shell shell = new View(viewModel).createShell();
-
-				// The SWT event loop
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch()) {
-						display.sleep();
-					}
-				}
-				// Print the results
-				System.out.println(viewModel.getText());
-			}
-		});
-		display.dispose();
-	}
-
-	// Minimal JavaBeans support
-	public 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.
-	public 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("text", 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());
-
-			DataBindingContext dbc = new DataBindingContext();
-			IObservableList list = MasterDetailObservables.detailList(
-					BeansObservables.observeValue(viewModel, "choices"),
-					getListDetailFactory(), String.class);
-			viewer.setContentProvider(new ObservableListContentProvider());
-			viewer.setInput(list);
-
-			dbc.bindValue(ViewersObservables.observeSingleSelection(viewer),
-					BeansObservables.observeValue(viewModel, "text"), null, null);
-
-			// Open and return the Shell
-			shell.pack();
-			shell.open();
-			return shell;
-		}
-	}
-
-	private static IObservableFactory getListDetailFactory() {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				WritableList list = WritableList.withElementType(String.class);
-				list.addAll((Collection) target);
-				return list;
-			}
-		};
-	}
-}
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 ac674aa..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet004DataBindingContextErrorLabel.java
+++ /dev/null
@@ -1,96 +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
- *     Brad Reynolds - bug 116920, 159768
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import org.eclipse.core.databinding.AggregateValidationStatus;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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. http://www.eclipse.org
- * 
- * @since 3.2
- */
-public class Snippet004DataBindingContextErrorLabel {
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				Shell shell = new Shell(display);
-				shell.setText("Data Binding Snippet 004");
-				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 = WritableValue.withValueType(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 = new DataBindingContext();
-
-				// Bind the text to the value.
-				dbc.bindValue(
-						SWTObservables.observeText(text, SWT.Modify),
-						value,
-						new UpdateValueStrategy().setAfterConvertValidator(new FiveValidator()),
-						null);
-
-				// Bind the error label to the validation error on the dbc.
-				dbc.bindValue(SWTObservables.observeText(errorLabel),
-						new AggregateValidationStatus(dbc.getBindings(),
-								AggregateValidationStatus.MAX_SEVERITY), null,
-						null);
-
-				shell.pack();
-				shell.open();
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch())
-						display.sleep();
-				}
-			}
-		});
-		display.dispose();
-	}
-
-	/**
-	 * Validator that returns validation errors for any value other than 5.
-	 * 
-	 * @since 3.2
-	 */
-	private static class FiveValidator implements IValidator {
-		public IStatus validate(Object value) {
-			return ("5".equals(value)) ? Status.OK_STATUS : ValidationStatus
-					.error("the value was '" + value + "', not '5'");
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet005MenuUpdater.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet005MenuUpdater.java
deleted file mode 100644
index f84b40c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet005MenuUpdater.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.util.Date;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.provisional.swt.MenuUpdater;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- */
-public class Snippet005MenuUpdater {
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				Shell shell = new Shell(display);
-
-				final WritableList menuItemStrings = new WritableList();
-				display.asyncExec(new Runnable() {
-					public void run() {
-						System.out.println("adding item");
-						menuItemStrings.add(new Date().toString());
-						display.timerExec(5000, this);
-					}
-				});
-
-				Menu bar = new Menu(shell, SWT.BAR);
-				shell.setMenuBar(bar);
-				MenuItem fileItem = new MenuItem(bar, SWT.CASCADE);
-				fileItem.setText("&Test Menu");
-				final Menu submenu = new Menu(shell, SWT.DROP_DOWN);
-				fileItem.setMenu(submenu);
-				new MenuUpdater(submenu) {
-					protected void updateMenu() {
-						System.out.println("updating menu");
-						MenuItem[] items = submenu.getItems();
-						int itemIndex = 0;
-						for (Iterator it = menuItemStrings.iterator(); it
-								.hasNext();) {
-							MenuItem item;
-							if (itemIndex < items.length) {
-								item = items[itemIndex++];
-							} else {
-								item = new MenuItem(submenu, SWT.NONE);
-							}
-							String string = (String) it.next();
-							item.setText(string);
-						}
-						while (itemIndex < items.length) {
-							items[itemIndex++].dispose();
-						}
-					}
-				};
-
-				shell.open();
-
-				// The SWT event loop
-				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/snippets/Snippet006Spreadsheet.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet006Spreadsheet.java
deleted file mode 100644
index 214b4f1..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet006Spreadsheet.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.text.NumberFormat;
-import java.text.ParseException;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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 Snippet006Spreadsheet {
-
-	private static final int COUNTER_UPDATE_DELAY = 1000;
-
-	private static final int NUM_COLUMNS = 6;
-
-	private static final int NUM_ROWS = 16;
-
-	/**
-	 * 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 = false;
-
-	/**
-	 * // * 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();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				Shell shell = new Shell(display);
-				shell.setText("Data Binding Snippet 006");
-
-				final Table table = new Table(shell, SWT.BORDER | SWT.MULTI
-						| SWT.FULL_SELECTION | SWT.VIRTUAL);
-				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(60);
-				}
-				WritableList list = new WritableList();
-				for (int i = 0; i < NUM_ROWS; i++) {
-					list.add(new Object());
-					for (int j = 0; j < NUM_COLUMNS; j++) {
-						cellFormulas[i][j] = new WritableValue();
-						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, list) {
-					protected void updateItem(int rowIndex, TableItem item, Object element) {
-						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();
-					}
-				}
-			}
-		});
-		display.dispose();
-	}
-
-	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/examples/databinding/snippets/Snippet007ColorLabelProvider.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet007ColorLabelProvider.java
deleted file mode 100644
index aac19d2..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet007ColorLabelProvider.java
+++ /dev/null
@@ -1,220 +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
- *     IBM Corporation - see bug 137934
- ******************************************************************************/
-
-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.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * An example showing how to create a {@link ILabelProvider label provider} that
- * to provide colors.
- * 
- * @since 3.2
- */
-public class Snippet007ColorLabelProvider {
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final List persons = new ArrayList();
-		persons.add(new Person("Fiona Apple", Person.FEMALE));
-		persons.add(new Person("Elliot Smith", Person.MALE));
-		persons.add(new Person("Diana Krall", Person.FEMALE));
-		persons.add(new Person("David Gilmour", Person.MALE));
-
-		final Display display = new Display();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				Shell shell = new Shell(display);
-				shell.setText("Gender Bender");
-				shell.setLayout(new GridLayout());
-
-				Table table = new Table(shell, SWT.SINGLE | SWT.H_SCROLL
-						| SWT.V_SCROLL | SWT.BORDER);
-				GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
-				table.setLayoutData(gridData);
-				table.setHeaderVisible(true);
-				table.setLinesVisible(true);
-				TableColumn column = new TableColumn(table, SWT.NONE);
-				column.setText("No");
-				column.setWidth(20);
-				column = new TableColumn(table, SWT.NONE);
-				column.setText("Name");
-				column.setWidth(100);
-				final TableViewer viewer = new TableViewer(table);
-
-				IObservableList observableList = Observables
-						.staticObservableList(persons);
-				ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-
-				viewer.setContentProvider(contentProvider);
-
-				// this does not have to correspond to the columns in the table,
-				// we just list all attributes that affect the table content.
-				IObservableMap[] attributes = BeansObservables.observeMaps(
-						contentProvider.getKnownElements(), Person.class,
-						new String[] { "name", "gender" });
-
-				class ColorLabelProvider extends ObservableMapLabelProvider
-						implements ITableColorProvider {
-					Color male = display.getSystemColor(SWT.COLOR_BLUE);
-
-					Color female = new Color(display, 255, 192, 203);
-
-					ColorLabelProvider(IObservableMap[] attributes) {
-						super(attributes);
-					}
-
-					// to drive home the point that attributes does not have to
-					// match
-					// the columns
-					// in the table, we change the column text as follows:
-					public String getColumnText(Object element, int index) {
-						if (index == 0) {
-							return Integer
-									.toString(persons.indexOf(element) + 1);
-						}
-						return ((Person) element).getName();
-					}
-
-					public Color getBackground(Object element, int index) {
-						return null;
-					}
-
-					public Color getForeground(Object element, int index) {
-						if (index == 0)
-							return null;
-						Person person = (Person) element;
-						return (person.getGender() == Person.MALE) ? male
-								: female;
-					}
-
-					public void dispose() {
-						super.dispose();
-						female.dispose();
-					}
-				}
-				viewer.setLabelProvider(new ColorLabelProvider(attributes));
-
-				viewer.setInput(observableList);
-
-				table.getColumn(0).pack();
-
-				Button button = new Button(shell, SWT.PUSH);
-				button.setText("Toggle Gender");
-				button.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent arg0) {
-						StructuredSelection selection = (StructuredSelection) viewer
-								.getSelection();
-						if (selection != null && !selection.isEmpty()) {
-							Person person = (Person) selection
-									.getFirstElement();
-							person
-									.setGender((person.getGender() == Person.MALE) ? Person.FEMALE
-											: Person.MALE);
-						}
-					}
-				});
-
-				shell.setSize(300, 400);
-				shell.open();
-
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch())
-						display.sleep();
-				}
-			}
-		});
-		display.dispose();
-	}
-
-	private static class Person {
-		static final int MALE = 0;
-
-		static final int FEMALE = 1;
-
-		private String name;
-
-		private int gender;
-
-		private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
-				this);
-
-		Person(String name, int gender) {
-			this.name = name;
-			this.gender = gender;
-		}
-
-		/**
-		 * Returns the name. Method declared public to satisfy Java bean
-		 * conventions
-		 * 
-		 * @return the name
-		 */
-		public String getName() {
-			return name;
-		}
-
-		/**
-		 * @param listener
-		 */
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.addPropertyChangeListener(listener);
-		}
-		
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.removePropertyChangeListener(listener);
-		}
-
-		/**
-		 * Returns the gender. Method declared public to satisfy Java bean
-		 * conventions
-		 * 
-		 * @return the gender
-		 */
-		public int getGender() {
-			return gender;
-		}
-
-		void setGender(int gender) {
-			changeSupport.firePropertyChange("gender", this.gender,
-					this.gender = gender);
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet008ComputedValue.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet008ComputedValue.java
deleted file mode 100644
index 38433d9..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet008ComputedValue.java
+++ /dev/null
@@ -1,168 +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.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Snippet that demostrates a simple use case using ComputedValue to format a
- * name as the user enters first and last name.
- * 
- * @since 3.2
- */
-public class Snippet008ComputedValue {
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				Shell shell = new Shell(display);
-				shell.setLayout(new FillLayout());
-
-				final UI ui = new UI(shell);
-				final Data data = new Data();
-
-				// Bind the UI to the Data.
-				DataBindingContext dbc = new DataBindingContext();
-				dbc.bindValue(SWTObservables.observeText(ui.firstName,
-						SWT.Modify), data.firstName, null, null);
-				dbc.bindValue(SWTObservables.observeText(ui.lastName,
-						SWT.Modify), data.lastName, null, null);
-
-				// Construct the formatted name observable.
-				FormattedName formattedName = new FormattedName(data.firstName,
-						data.lastName);
-
-				// Bind the formatted name Text to the formatted name
-				// observable.
-				dbc.bindValue(SWTObservables.observeText(ui.formattedName,
-						SWT.None), formattedName, new UpdateValueStrategy(false, UpdateValueStrategy.POLICY_NEVER), null);
-
-				shell.pack();
-				shell.open();
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch())
-						display.sleep();
-				}
-			}
-		});
-		display.dispose();
-	}
-
-	/**
-	 * Creates the formatted name on change of the first or last name
-	 * observables.
-	 * <p>
-	 * The key to understanding ComputedValue is understanding that it knows of
-	 * the observables that are queried without being told. This is done with
-	 * {@link ObservableTracker} voodoo. When calculate() is invoked
-	 * <code>ObservableTracker</code> records the observables that are
-	 * queried. It then exposes those observables and <code>ComputedValue</code>
-	 * can listen to changes in those objects and react accordingly.
-	 * </p>
-	 * 
-	 * @since 3.2
-	 */
-	static class FormattedName extends ComputedValue {
-		private IObservableValue firstName;
-
-		private IObservableValue lastName;
-
-		FormattedName(IObservableValue firstName, IObservableValue lastName) {
-			this.firstName = firstName;
-			this.lastName = lastName;
-		}
-
-		protected Object calculate() {
-			String lastName = (String) this.lastName.getValue();
-			String firstName = (String) this.firstName.getValue();
-			lastName = (lastName != null && lastName.length() > 0) ? lastName
-					: "[Last Name]";
-			firstName = (firstName != null && firstName.length() > 0) ? firstName
-					: "[First Name]";
-
-			StringBuffer buffer = new StringBuffer();
-			buffer.append(lastName).append(", ").append(firstName);
-
-			return buffer.toString();
-		}
-	}
-
-	static class Data {
-		final WritableValue firstName;
-
-		final WritableValue lastName;
-
-		Data() {
-			firstName = new WritableValue("", String.class);
-			lastName = new WritableValue("", String.class);
-		}
-	}
-
-	/**
-	 * Composite that creates the UI.
-	 * 
-	 * @since 3.2
-	 */
-	static class UI extends Composite {
-		final Text firstName;
-
-		final Text lastName;
-
-		final Text formattedName;
-
-		UI(Composite parent) {
-			super(parent, SWT.NONE);
-
-			GridLayoutFactory.swtDefaults().numColumns(2).applyTo(this);
-
-			new Label(this, SWT.NONE).setText("First Name:");
-			new Label(this, SWT.NONE).setText("Last Name");
-
-			GridDataFactory gdf = GridDataFactory.swtDefaults().align(SWT.FILL,
-					SWT.FILL).grab(true, false);
-			firstName = new Text(this, SWT.BORDER);
-			gdf.applyTo(firstName);
-
-			lastName = new Text(this, SWT.BORDER);
-			gdf.applyTo(lastName);
-
-			gdf = GridDataFactory.swtDefaults().span(2, 1).grab(true, false)
-					.align(SWT.FILL, SWT.BEGINNING);
-			Label label = new Label(this, SWT.NONE);
-			label.setText("Formatted Name:");
-			gdf.applyTo(label);
-
-			formattedName = new Text(this, SWT.BORDER);
-			formattedName.setEditable(false);
-			gdf.applyTo(formattedName);
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet009TableViewer.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet009TableViewer.java
deleted file mode 100644
index a96d5ec..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet009TableViewer.java
+++ /dev/null
@@ -1,180 +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:
- *     Coconut Palm Software, Inc. - Initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-
-/**
- * Demonstrates binding a TableViewer to a collection.
- */
-public class Snippet009TableViewer {
-	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
-	public 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.
-	static class Person extends AbstractModelObject {
-		// A property...
-		String name = "John Smith";
-
-		public Person(String name) {
-			this.name = name;
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			String oldValue = this.name;
-			this.name = name;
-			firePropertyChange("name", oldValue, 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
-	// data access tier. Since this snippet doesn't have any persistent objects 
-	// ro retrieve, this ViewModel just instantiates a model object to edit.
-	static class ViewModel {
-		// The model to bind
-		private List people = new LinkedList(); {
-			people.add(new Person("Steve Northover"));
-			people.add(new Person("Grant Gayed"));
-			people.add(new Person("Veronika Irvine"));
-			people.add(new Person("Mike Wilson"));
-			people.add(new Person("Christophe Cornu"));
-			people.add(new Person("Lynne Kues"));
-			people.add(new Person("Silenio Quarti"));
-		}
-
-		public List getPeople() {
-			return people;
-		}
-	}
-
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-		private Table committers;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-
-		public Shell createShell() {
-			// Build a UI
-			Display display = Display.getDefault();
-			Shell shell = new Shell(display);
-			shell.setLayout(new FillLayout());
-			committers = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-			committers.setLinesVisible(true);
-			
-			// Set up data binding. In an RCP application, the threading Realm
-			// will be set for you automatically by the Workbench. In an SWT
-			// application, you can do this once, wrpping your binding
-			// method call.
-			Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-				public void run() {
-					DataBindingContext bindingContext = new DataBindingContext();
-					bindGUI(bindingContext);
-				}
-			});
-
-			// Open and return the Shell
-			shell.setSize(100, 300);
-			shell.open();
-			return shell;
-		}
-
-		protected void bindGUI(DataBindingContext bindingContext) {
-			// Since we're using a JFace Viewer, we do first wrap our Table...
-			TableViewer peopleViewer = new TableViewer(committers);
-			
-			// Create a standard content provider
-			ObservableListContentProvider peopleViewerContentProvider = 
-				new ObservableListContentProvider();
-			peopleViewer.setContentProvider(peopleViewerContentProvider);
-			
-			// And a standard label provider that maps columns
-			IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-					peopleViewerContentProvider.getKnownElements(), Person.class,
-					new String[] { "name" });
-			peopleViewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps));
-			
-			// Now set the Viewer's input
-			peopleViewer.setInput(new WritableList(viewModel.getPeople(), Person.class));
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet010MasterDetail.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet010MasterDetail.java
deleted file mode 100644
index b4cb426..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet010MasterDetail.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Snippet that displays a simple master detail use case. A list of persons is
- * displayed in a list and upon selection the name of the selected person will
- * be displayed in a Text widget.
- */
-public class Snippet010MasterDetail {
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				Shell shell = new Shell(display);
-				shell.setLayout(new GridLayout());
-
-				Person[] persons = new Person[] { new Person("Me"),
-						new Person("Myself"), new Person("I") };
-
-				ListViewer viewer = new ListViewer(shell);
-				viewer.setContentProvider(new ArrayContentProvider());
-				viewer.setInput(persons);
-
-				Text name = new Text(shell, SWT.BORDER | SWT.READ_ONLY);
-
-				// 1. Observe changes in selection.
-				IObservableValue selection = ViewersObservables
-						.observeSingleSelection(viewer);
-
-				// 2. Observe the name property of the current selection.
-				IObservableValue detailObservable = BeansObservables
-						.observeDetailValue(Realm.getDefault(), selection,
-								"name", String.class);
-
-				// 3. Bind the Text widget to the name detail (selection's
-				// name).
-				new DataBindingContext().bindValue(SWTObservables.observeText(
-						name, SWT.None), detailObservable,
-						new UpdateValueStrategy(false,
-								UpdateValueStrategy.POLICY_NEVER), null);
-
-				shell.open();
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch())
-						display.sleep();
-				}
-			}
-		});
-		display.dispose();
-	}
-
-	public static class Person {
-		private String name;
-		private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
-
-		Person(String name) {
-			this.name = name;
-		}
-
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.addPropertyChangeListener(listener);
-		}
-		
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.removePropertyChangeListener(listener);
-		}
-		
-		/**
-		 * @return Returns the name.
-		 */
-		public String getName() {
-			return name;
-		}
-
-		public String toString() {
-			return name;
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet011ValidateMultipleBindingsSnippet.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet011ValidateMultipleBindingsSnippet.java
deleted file mode 100644
index 59ae4c2..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet011ValidateMultipleBindingsSnippet.java
+++ /dev/null
@@ -1,129 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Snippet that validates values across multiple bindings on change of each
- * observable. If the values of the target observables are not equal the model
- * is not updated. When the values are equal they will be written to sysout.
- * 
- * @author Brad Reynolds
- */
-public class Snippet011ValidateMultipleBindingsSnippet {
-	public static void main(String[] args) {
-		Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()),
-				new Runnable() {
-					public void run() {
-						Snippet011ValidateMultipleBindingsSnippet.run();
-					}
-				});
-	}
-
-	private static void run() {
-		Shell shell = new Shell();
-
-		View view = new View(shell);
-		final Model model = new Model();
-
-		DataBindingContext dbc = new DataBindingContext();
-		dbc.bindValue(SWTObservables.observeText(view.text1, SWT.Modify),
-				model.value1, new UpdateValueStrategy()
-						.setAfterConvertValidator(new CrossFieldValidator(
-								model.value2)), null);
-		dbc.bindValue(SWTObservables.observeText(view.text2, SWT.Modify),
-				model.value2, new UpdateValueStrategy()
-						.setAfterConvertValidator(new CrossFieldValidator(
-								model.value1)), null);
-
-		// DEBUG - print to show value change
-		model.value1.addValueChangeListener(new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-				System.out.println("Value 1: " + model.value1.getValue());
-			}
-		});
-
-		// DEBUG - print to show value change
-		model.value2.addValueChangeListener(new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-				System.out.println("Value 2: " + model.value2.getValue());
-			}
-		});
-
-		shell.pack();
-		shell.open();
-		Display display = shell.getDisplay();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	/**
-	 * @since 3.2
-	 * 
-	 */
-	private static final class CrossFieldValidator implements IValidator {
-		/**
-		 * 
-		 */
-		private final IObservableValue other;
-
-		/**
-		 * @param model
-		 */
-		private CrossFieldValidator(IObservableValue other) {
-			this.other = other;
-		}
-
-		public IStatus validate(Object value) {
-			if (!value.equals(other.getValue())) {
-				return ValidationStatus.ok();
-			}
-			return ValidationStatus.error("values cannot be the same");
-		}
-	}
-
-	static class Model {
-		WritableValue value1 = new WritableValue();
-		WritableValue value2 = new WritableValue();
-	}
-
-	static class View {
-		Text text1;
-		Text text2;
-
-		View(Composite composite) {
-			composite.setLayout(new GridLayout(2, true));
-			text1 = new Text(composite, SWT.BORDER);
-			text2 = new Text(composite, SWT.BORDER);
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet012CompositeUpdater.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet012CompositeUpdater.java
deleted file mode 100644
index af9fee0..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet012CompositeUpdater.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.util.Timer;
-import java.util.TimerTask;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.provisional.swt.CompositeUpdater;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * @since 3.2
- * 
- */
-public class Snippet012CompositeUpdater {
-
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				Shell shell = new Shell(display);
-
-				final WritableList list = new WritableList();
-
-				Button button = new Button(shell, SWT.PUSH);
-				button.setText("add");
-				button.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(
-							org.eclipse.swt.events.SelectionEvent e) {
-						list.add(0, new Counter());
-					}
-				});
-
-				final Composite composite = new Composite(shell, SWT.None);
-
-				new CompositeUpdater(composite, list) {
-					protected Widget createWidget(int index) {
-						Label label = new Label(composite, SWT.BORDER);
-						//requestLayout(label);
-						return label;
-					}
-
-					protected void updateWidget(Widget widget, Object element) {
-						((Label) widget).setText(((Counter) element).getValue()
-								+ "");
-						requestLayout((Label)widget);
-					}
-				};
-				GridLayoutFactory.fillDefaults().numColumns(10).generateLayout(composite);
-
-				GridDataFactory.fillDefaults().grab(true, true).applyTo(
-						composite);
-
-				GridLayoutFactory.fillDefaults().generateLayout(shell);
-				shell.pack();
-				shell.open();
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch())
-						display.sleep();
-				}
-			}
-		});
-		display.dispose();
-	}
-
-	static Timer timer = new Timer(true);
-
-	static class Counter extends WritableValue {
-		Counter() {
-			super(new Integer(0), Integer.class);
-			scheduleIncrementTask();
-		}
-
-		private void scheduleIncrementTask() {
-			timer.schedule(new TimerTask() {
-				public void run() {
-					// we have to get onto the realm (UI thread) to perform the
-					// increment
-					getRealm().asyncExec(new Runnable() {
-						public void run() {
-							Integer currentVal = (Integer) getValue();
-							setValue(new Integer(currentVal.intValue() + 1));
-						}
-					});
-					scheduleIncrementTask();
-				}
-			}, 1000);
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet013TableViewerEditing.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet013TableViewerEditing.java
deleted file mode 100644
index b5cf3f4..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet013TableViewerEditing.java
+++ /dev/null
@@ -1,247 +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
- *     Tom Schindl - cell editing
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-
-/**
- * Demonstrates binding a TableViewer to a collection using the 3.3 Viewer APIs.
- */
-public class Snippet013TableViewerEditing {
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				ViewModel viewModel = new ViewModel();
-				Shell shell = new View(viewModel).createShell();
-
-				// The SWT event loop
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch()) {
-						display.sleep();
-					}
-				}
-			}
-		});
-	}
-
-	// Minimal JavaBeans support
-	public 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.
-	static class Person extends AbstractModelObject {
-		// A property...
-		String name = "John Smith";
-
-		public Person(String name) {
-			this.name = name;
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			String oldValue = this.name;
-			this.name = name;
-			firePropertyChange("name", oldValue, 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
-	// data access tier. Since this snippet doesn't have any persistent objects
-	// ro retrieve, this ViewModel just instantiates a model object to edit.
-	static class ViewModel {
-		// The model to bind
-		private List people = new LinkedList();
-		{
-			people.add(new Person("Steve Northover"));
-			people.add(new Person("Grant Gayed"));
-			people.add(new Person("Veronika Irvine"));
-			people.add(new Person("Mike Wilson"));
-			people.add(new Person("Christophe Cornu"));
-			people.add(new Person("Lynne Kues"));
-			people.add(new Person("Silenio Quarti"));
-		}
-
-		public List getPeople() {
-			return people;
-		}
-	}
-
-	/**
-	 * Editing support that uses JFace Data Binding to control the editing
-	 * lifecycle. The standard EditingSupport get/setValue(...) lifecycle is not
-	 * used.
-	 * 
-	 * @since 3.3
-	 */
-	private static class InlineEditingSupport extends ObservableValueEditingSupport {
-		private CellEditor cellEditor;
-		
-		/**
-		 * @param viewer
-		 * @param dbc
-		 */
-		public InlineEditingSupport(ColumnViewer viewer,
-				DataBindingContext dbc) {
-			
-			super(viewer, dbc);
-			cellEditor = new TextCellEditor((Composite) viewer.getControl());
-		}
-		
-		protected CellEditor getCellEditor(Object element) {
-			return cellEditor;
-		}
-
-		protected IObservableValue doCreateCellEditorObservable(
-				CellEditor cellEditor) {
-			
-			return SWTObservables.observeText(cellEditor
-					.getControl(), SWT.Modify);
-		}
-
-		protected IObservableValue doCreateElementObservable(Object element,
-				ViewerCell cell) {
-			return BeansObservables.observeValue(element, "name");
-		}		
-	}
-
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-		private Table committers;
-		private Label selectedCommitter;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-
-		public Shell createShell() {
-			// Build a UI
-			Display display = Display.getDefault();
-			Shell shell = new Shell(display);
-			shell.setLayout(new FillLayout(SWT.VERTICAL));
-			committers = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-			committers.setLinesVisible(true);
-
-			selectedCommitter = new Label(shell, SWT.NONE);
-			// Set up data binding. In an RCP application, the threading
-			// Realm
-			// will be set for you automatically by the Workbench. In an SWT
-			// application, you can do this once, wrpping your binding
-			// method call.
-			DataBindingContext bindingContext = new DataBindingContext();
-			bindGUI(bindingContext);
-
-			// Open and return the Shell
-			shell.setSize(100, 300);
-			shell.open();
-			return shell;
-		}
-
-		protected void bindGUI(DataBindingContext bindingContext) {
-			// Since we're using a JFace Viewer, we do first wrap our Table...
-			TableViewer peopleViewer = new TableViewer(committers);
-			TableViewerColumn column = new TableViewerColumn(peopleViewer,
-					SWT.NONE);
-			column.setEditingSupport(new InlineEditingSupport(peopleViewer,
-					bindingContext));
-			column.getColumn().setWidth(100);
-
-			// Create a standard content provider
-			ObservableListContentProvider peopleViewerContentProvider = new ObservableListContentProvider();
-			peopleViewer.setContentProvider(peopleViewerContentProvider);
-
-			// And a standard label provider that maps columns
-			IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-					peopleViewerContentProvider.getKnownElements(),
-					Person.class, new String[] { "name" });
-			peopleViewer.setLabelProvider(new ObservableMapLabelProvider(
-					attributeMaps));
-
-			// Now set the Viewer's input
-			peopleViewer.setInput(new WritableList(viewModel.getPeople(),
-					Person.class));
-
-			// bind selectedCommitter label to the name of the current selection
-			IObservableValue selection = ViewersObservables
-					.observeSingleSelection(peopleViewer);
-			bindingContext.bindValue(SWTObservables
-					.observeText(selectedCommitter), BeansObservables
-					.observeDetailValue(Realm.getDefault(), selection, "name",
-							String.class), null, null);
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet014WizardDialog.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet014WizardDialog.java
deleted file mode 100644
index 788a51d..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet014WizardDialog.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Boris Bokowski, IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.util.Date;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.wizard.WizardPageSupport;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Creates and opens a wizard dialog with two simple wizard pages.
- */
-public class Snippet014WizardDialog {
-
-	static class FirstWizardPage extends WizardPage {
-		private final class SingleDigitValidator implements IValidator {
-			public IStatus validate(Object value) {
-				Integer i = (Integer) value;
-				if (i == null) {
-					return ValidationStatus
-							.info("Please enter a value.");
-				}
-				if (i.intValue() < 0 || i.intValue() > 9) {
-					return ValidationStatus
-							.error("Value must be between 0 and 9.");
-				}
-				return ValidationStatus.ok();
-			}
-		}
-
-		protected FirstWizardPage() {
-			super("First", "First Page", ImageDescriptor
-					.createFromImage(new Image(Display.getDefault(), 16, 16)));
-		}
-
-		public void createControl(Composite parent) {
-			DataBindingContext dbc = new DataBindingContext();
-			WizardPageSupport.create(this, dbc);
-			Composite composite = new Composite(parent, SWT.NONE);
-			Label label = new Label(composite, SWT.NONE);
-			label.setText("Enter a number between 0 and 9:");
-			Text text = new Text(composite, SWT.BORDER);
-			
-			dbc.bindValue(
-							SWTObservables.observeText(text, SWT.Modify),
-							((SampleWizard) getWizard()).getModel().intValue,
-							new UpdateValueStrategy().setAfterConvertValidator(new SingleDigitValidator()),
-							null);
-			
-			GridLayoutFactory.swtDefaults().numColumns(2).generateLayout(
-					composite);
-			setControl(composite);
-		}
-	}
-
-	static class SecondWizardPage extends WizardPage {
-		protected SecondWizardPage() {
-			super("Second", "Second Page", ImageDescriptor
-					.createFromImage(new Image(Display.getDefault(), 16, 16)));
-		}
-
-		public void createControl(Composite parent) {
-			DataBindingContext dbc = new DataBindingContext();
-			WizardPageSupport.create(this, dbc);
-			Composite composite = new Composite(parent, SWT.NONE);
-			Label label = new Label(composite, SWT.NONE);
-			label.setText("Enter a date:");
-			Text text = new Text(composite, SWT.BORDER);
-			
-			dbc.bindValue(
-							SWTObservables.observeText(text, SWT.Modify),
-							((SampleWizard) getWizard()).getModel().dateValue,
-							null,
-							null);
-
-			GridLayoutFactory.swtDefaults().numColumns(2).generateLayout(
-					composite);
-			setControl(composite);
-		}
-	}
-
-	static class SampleWizardModel {
-		IObservableValue intValue = new WritableValue(null, Integer.class);
-		IObservableValue dateValue = new WritableValue(null, Date.class);
-	}
-
-	static class SampleWizard extends Wizard {
-
-		private SampleWizardModel model = new SampleWizardModel();
-
-		public void addPages() {
-			addPage(new FirstWizardPage());
-			addPage(new SecondWizardPage());
-		}
-
-		public SampleWizardModel getModel() {
-			return model;
-		}
-		
-		public String getWindowTitle() {
-			return "Data Binding Snippet014";
-		}
-
-		public boolean performFinish() {
-			return true;
-		}
-
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		// note that the "runWithDefault" will be done for you if you are using
-		// the
-		// Workbench as opposed to just JFace/SWT.
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				IWizard wizard = new SampleWizard();
-				WizardDialog dialog = new WizardDialog(null, wizard);
-				dialog.open();
-				// The SWT event loop
-				Display display = Display.getCurrent();
-				while (dialog.getShell() != null
-						&& !dialog.getShell().isDisposed()) {
-					if (!display.readAndDispatch()) {
-						display.sleep();
-					}
-				}
-			}
-		});
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet015DelayTextModifyEvents.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet015DelayTextModifyEvents.java
deleted file mode 100644
index eb132cf..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet015DelayTextModifyEvents.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/************************************************************************************************************
- * Copyright (c) 2007 Matthew Hall and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * 		Matthew Hall - initial API and implementation (bug 180746)
- * 		Boris Bokowski, IBM - initial API and implementation
- ***********************************************************************************************************/
-package org.eclipse.jface.examples.databinding.snippets;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.ISWTObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.resource.FontDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.LocalResourceManager;
-import org.eclipse.jface.resource.ResourceManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class Snippet015DelayTextModifyEvents {
-
-	private static void createControls(Shell shell) {
-		final Label field1 = createLabel(shell, SWT.NONE, "Field 1 ");
-
-		Text text1 = new Text(shell, SWT.BORDER);
-		GridDataFactory.fillDefaults().grab(true, false).hint(200, SWT.DEFAULT)
-				.applyTo(text1);
-		createLabel(shell, SWT.NONE, "200ms delay");
-
-		final Label field2 = createLabel(shell, SWT.NONE, "Field 2 ");
-
-		Text text2 = new Text(shell, SWT.BORDER);
-		GridDataFactory.fillDefaults().grab(true, false).hint(200, SWT.DEFAULT)
-				.applyTo(text2);
-
-		createLabel(shell, SWT.NONE, "1000ms delay");
-
-		final ISWTObservableValue delayed1 = SWTObservables.observeDelayedValue(200,
-				SWTObservables.observeText(text1, SWT.Modify));
-		final ISWTObservableValue delayed2 = SWTObservables.observeDelayedValue(1000,
-				SWTObservables.observeText(text2, SWT.Modify));
-		
-		// (In a real application,you would want to dispose the resource manager
-		// when you are done with it)
-		ResourceManager resourceManager = new LocalResourceManager(JFaceResources.getResources());
-		final Font shellFont = shell.getFont();
-		final Font italicFont = resourceManager.createFont(FontDescriptor.createFrom(
-				shellFont).setStyle(SWT.ITALIC));
-		
-		final IObservableValue stale1 = Observables.observeStale(delayed1);
-		new ControlUpdater(field2) {
-			protected void updateControl() {
-				boolean stale = ((Boolean)stale1.getValue()).booleanValue();
-				field2.setFont(stale ? italicFont : shellFont);
-			}
-		};
-		
-		final IObservableValue stale2 = Observables.observeStale(delayed2);
-		new ControlUpdater(field1) {
-			protected void updateControl() {
-				boolean stale = ((Boolean)stale2.getValue()).booleanValue();
-				field1.setFont(stale ? italicFont : shellFont);
-			}
-		};
-		
-		String info = "Pending changes are applied immediately if the observed control loses focus";
-		GridDataFactory.fillDefaults().span(3, 1).applyTo(
-				createLabel(shell, SWT.WRAP, info));
-
-		DataBindingContext dbc = new DataBindingContext();
-
-		dbc.bindValue(delayed1, delayed2, null, null);
-	}
-
-	private static Label createLabel(Composite parent, int style, String text) {
-		Label label = new Label(parent, style);
-		label.setText(text);
-		return label;
-	}
-
-	public static void main(String[] args) {
-		final Display display = new Display();
-
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				Shell shell = new Shell();
-				shell.setLayout(new GridLayout(3, false));
-
-				createControls(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/snippets/Snippet016TableUpdater.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet016TableUpdater.java
deleted file mode 100644
index c0316fa..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet016TableUpdater.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.provisional.swt.TableUpdater;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * @since 3.2
- * 
- */
-public class Snippet016TableUpdater {
-	public static void main(String[] args) {
-		final Display display = new Display();
-
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				final Shell shell = createShell(display);
-				GridLayoutFactory.fillDefaults().generateLayout(shell);
-				shell.open();
-				// The SWT event loop
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch()) {
-						display.sleep();
-					}
-				}
-			}
-		});
-	}
-
-	static class Stuff {
-		private WritableValue counter = new WritableValue(new Integer(1), Integer.class);
-
-		public Stuff(final Display display) {
-			display.timerExec(1000, new Runnable() {
-				public void run() {
-					counter.setValue(new Integer(1 + ((Integer) counter
-							.getValue()).intValue()));
-					display.timerExec(1000, this);
-				}
-			});
-		}
-		
-		public String toString() {
-			return counter.getValue().toString();
-		}
-	}
-
-	protected static Shell createShell(final Display display) {
-		Shell shell = new Shell();
-		Table t = new Table(shell, SWT.VIRTUAL);
-		final WritableList list = new WritableList();
-		new TableUpdater(t, list) {
-
-			protected void updateItem(int index, TableItem item, Object element) {
-				item.setText(element.toString());
-			}
-		};
-		display.timerExec(2000, new Runnable() {
-			public void run() {
-				list.add(new Stuff(display));
-				display.timerExec(2000, this);
-			}
-		});
-		return shell;
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet017TableViewerWithDerivedColumns.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet017TableViewerWithDerivedColumns.java
deleted file mode 100644
index 7ac98ae..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet017TableViewerWithDerivedColumns.java
+++ /dev/null
@@ -1,317 +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:
- *     Coconut Palm Software, Inc. - Initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.CompositeMap;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-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;
-
-/**
- * Demonstrates binding a TableViewer to a collection.
- */
-public class Snippet017TableViewerWithDerivedColumns {
-	public static void main(String[] args) {
-		final Display display = new Display();
-
-		// Set up data binding. In an RCP application, the threading Realm
-		// will be set for you automatically by the Workbench. In an SWT
-		// application, you can do this once, wrapping your binding
-		// method call.
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				ViewModel viewModel = new ViewModel();
-				Shell shell = new View(viewModel).createShell();
-
-				// The SWT event loop
-				while (!shell.isDisposed()) {
-					if (!display.readAndDispatch()) {
-						display.sleep();
-					}
-				}
-			}
-		});
-	}
-
-	// Minimal JavaBeans support
-	public 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);
-		}
-	}
-
-	private static Person UNKNOWN = new Person("unknown", null, null);
-
-	// The data model class. This is normally a persistent class of some sort.
-	static class Person extends AbstractModelObject {
-		// A property...
-		String name = "Donald Duck";
-		Person mother;
-		Person father;
-
-		public Person(String name, Person mother, Person father) {
-			this.name = name;
-			this.mother = mother;
-			this.father = father;
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			String oldValue = this.name;
-			this.name = name;
-			firePropertyChange("name", oldValue, name);
-		}
-
-		public Person getMother() {
-			return mother;
-		}
-
-		public void setMother(Person mother) {
-			firePropertyChange("mother", this.mother, this.mother = mother);
-		}
-
-		public Person getFather() {
-			return father;
-		}
-
-		public void setFather(Person father) {
-			firePropertyChange("father", this.father, this.father = father);
-		}
-
-		public String toString() {
-			return 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
-	// data access tier. Since this snippet doesn't have any persistent objects
-	// ro retrieve, this ViewModel just instantiates a model object to edit.
-	static class ViewModel {
-		// The model to bind
-		private IObservableList people = new WritableList();
-		{
-			Person fergus = new Person("Fergus McDuck", UNKNOWN, UNKNOWN);
-			Person downy = new Person("Downy O'Drake", UNKNOWN, UNKNOWN);
-			Person scrooge = new Person("Scrooge McDuck", downy, fergus);
-			Person hortense = new Person("Hortense McDuck", downy, fergus);
-			Person quackmore = new Person("Quackmore Duck", UNKNOWN, UNKNOWN);
-			Person della = new Person("Della Duck", hortense, quackmore);
-			Person donald = new Person("Donald Duck", hortense, quackmore);
-			donald.setFather(quackmore);
-			donald.setMother(hortense);
-			della.setFather(quackmore);
-			della.setMother(hortense);
-			hortense.setMother(downy);
-			hortense.setFather(fergus);
-			scrooge.setMother(downy);
-			scrooge.setFather(fergus);
-			people.add(UNKNOWN);
-			people.add(downy);
-			people.add(fergus);
-			people.add(scrooge);
-			people.add(quackmore);
-			people.add(hortense);
-			people.add(della);
-			people.add(donald);
-		}
-
-		public IObservableList getPeople() {
-			return people;
-		}
-	}
-
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-		private Table duckFamily;
-		private Text nameText;
-		private Combo motherCombo;
-		private Combo fatherCombo;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-
-		public Shell createShell() {
-			// Build a UI
-			Display display = Display.getDefault();
-			Shell shell = new Shell(display);
-			duckFamily = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-			duckFamily.setHeaderVisible(true);
-			GridDataFactory.defaultsFor(duckFamily).span(2, 1).applyTo(
-					duckFamily);
-			createColumn("Name");
-			createColumn("Mother");
-			createColumn("Father");
-			createColumn("Grandmother");
-			duckFamily.setLinesVisible(true);
-
-			new Label(shell, SWT.NONE).setText("Name:");
-			nameText = new Text(shell, SWT.BORDER);
-			GridDataFactory.defaultsFor(nameText).grab(true, false).applyTo(
-					nameText);
-
-			new Label(shell, SWT.NONE).setText("Mother:");
-			motherCombo = new Combo(shell, SWT.READ_ONLY);
-
-			new Label(shell, SWT.NONE).setText("Father:");
-			fatherCombo = new Combo(shell, SWT.READ_ONLY);
-
-			DataBindingContext bindingContext = new DataBindingContext();
-			bindGUI(bindingContext);
-
-			GridLayoutFactory.swtDefaults().numColumns(2).applyTo(shell);
-			// Open and return the Shell
-			shell.setSize(500, 300);
-			shell.open();
-			return shell;
-		}
-
-		private void createColumn(String string) {
-			final TableColumn column = new TableColumn(duckFamily, SWT.NONE);
-			column.setWidth(100);
-			column.setText(string);
-		}
-
-		protected void bindGUI(DataBindingContext bindingContext) {
-			// Since we're using a JFace Viewer, we do first wrap our Table...
-			TableViewer peopleViewer = new TableViewer(duckFamily);
-			peopleViewer.addFilter(new ViewerFilter() {
-				public boolean select(Viewer viewer, Object parentElement,
-						Object element) {
-					return element != UNKNOWN;
-				}
-			});
-
-			// Create a standard content provider
-			ObservableListContentProvider peopleViewerContentProvider = new ObservableListContentProvider();
-			peopleViewer.setContentProvider(peopleViewerContentProvider);
-
-			// And a standard label provider that maps columns
-			IObservableMap nameMap = BeansObservables.observeMap(
-					peopleViewerContentProvider.getKnownElements(),
-					Person.class, "name");
-			IObservableMap motherMap = BeansObservables.observeMap(
-					peopleViewerContentProvider.getKnownElements(),
-					Person.class, "mother");
-			IObservableMap fatherMap = BeansObservables.observeMap(
-					peopleViewerContentProvider.getKnownElements(),
-					Person.class, "father");
-			IObservableMap grandmotherMap = new CompositeMap(motherMap,
-					BeansObservables.setToMapFactory(Person.class, "mother"));
-			IObservableMap[] columnMaps = new IObservableMap[] {
-					nameMap,
-					new CompositeMap(motherMap, BeansObservables.setToMapFactory(
-							Person.class, "name")),
-					new CompositeMap(fatherMap, BeansObservables.setToMapFactory(
-							Person.class, "name")),
-					new CompositeMap(grandmotherMap, BeansObservables.setToMapFactory(
-							Person.class, "name")) };
-			peopleViewer.setLabelProvider(new ObservableMapLabelProvider(
-					columnMaps));
-
-			// Now set the Viewer's input
-			peopleViewer.setInput(viewModel.getPeople());
-
-			IObservableValue selection = ViewersObservables
-					.observeSingleSelection(peopleViewer);
-			bindingContext
-					.bindValue(
-							SWTObservables.observeText(nameText, SWT.Modify),
-							BeansObservables.observeDetailValue(Realm
-									.getDefault(), selection, "name",
-									String.class), null, null);
-
-			ComboViewer mothercomboViewer = new ComboViewer(motherCombo);
-			ObservableListContentProvider motherComboContentProvider = new ObservableListContentProvider();
-			mothercomboViewer.setContentProvider(motherComboContentProvider);
-			mothercomboViewer.setLabelProvider(new ObservableMapLabelProvider(
-					BeansObservables.observeMap(motherComboContentProvider
-							.getKnownElements(), Person.class, "name")));
-			mothercomboViewer.setInput(viewModel.getPeople());
-			bindingContext.bindValue(ViewersObservables
-					.observeSingleSelection(mothercomboViewer),
-					BeansObservables.observeDetailValue(Realm.getDefault(),
-							selection, "mother", Person.class), null, null);
-
-			ComboViewer fatherComboViewer = new ComboViewer(fatherCombo);
-			ObservableListContentProvider fatherComboContentProvider = new ObservableListContentProvider();
-			fatherComboViewer
-					.setContentProvider(fatherComboContentProvider);
-			fatherComboViewer.setLabelProvider(new ObservableMapLabelProvider(
-					BeansObservables.observeMap(fatherComboContentProvider
-							.getKnownElements(), Person.class, "name")));
-			fatherComboViewer.setInput(viewModel.getPeople());
-			bindingContext.bindValue(ViewersObservables
-					.observeSingleSelection(fatherComboViewer),
-					BeansObservables.observeDetailValue(Realm.getDefault(),
-							selection, "father", Person.class), null, null);
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet018CheckboxTableViewerCheckedSelection.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet018CheckboxTableViewerCheckedSelection.java
deleted file mode 100644
index afdde9bf..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet018CheckboxTableViewerCheckedSelection.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 124684)
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Snippet 018: Binding to the checked elements in a CheckboxTableViewer.
- */
-public class Snippet018CheckboxTableViewerCheckedSelection {
-	public static void main(String[] args) {
-		// The SWT event loop
-		final Display display = Display.getDefault();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				ViewModel viewModel = createSampleModel();
-
-				Shell shell = new View(viewModel).createShell();
-				shell.open();
-				while (!shell.isDisposed())
-					if (!display.readAndDispatch())
-						display.sleep();
-			}
-		});
-		display.dispose();
-	}
-
-	private static ViewModel createSampleModel() {
-		ViewModel viewModel = new ViewModel();
-
-		Person stan = createPerson("Stan");
-		Person kyle = createPerson("Kyle");
-		Person eric = createPerson("Eric");
-		Person kenny = createPerson("Kenny");
-		Person wendy = createPerson("Wendy");
-		Person butters = createPerson("Butters");
-
-		setFriends(stan, new Person[] { kyle, eric, kenny, wendy });
-		setFriends(kyle, new Person[] { stan, eric, kenny });
-		setFriends(eric, new Person[] { eric });
-		setFriends(kenny, new Person[] { stan, kyle, eric });
-		setFriends(wendy, new Person[] { stan });
-		setFriends(butters, new Person[0]);
-
-		Person[] people = new Person[] { stan, kyle, eric, kenny, wendy,
-				butters };
-		viewModel.setPeople(Arrays.asList(people));
-		return viewModel;
-	}
-
-	private static Person createPerson(String name) {
-		Person person = new Person();
-		person.setName(name);
-		return person;
-	}
-
-	private static void setFriends(Person person, Person[] friends) {
-		person.setFriends(new HashSet(Arrays.asList(friends)));
-	}
-
-	// Minimal JavaBeans support
-	public 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.
-	static class Person extends AbstractModelObject {
-		private String name;
-		private Set friends = new HashSet();
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			firePropertyChange("name", this.name, this.name = name);
-		}
-
-		public Set getFriends() {
-			return new HashSet(friends);
-		}
-
-		public void setFriends(Set friends) {
-			firePropertyChange("friends", this.friends,
-					this.friends = new HashSet(friends));
-		}
-
-		public String toString() {
-			return 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
-	// data access tier. Since this snippet doesn't have any persistent objects
-	// to retrieve, this ViewModel just instantiates a model object to edit.
-	static class ViewModel extends AbstractModelObject {
-		private List people = new ArrayList();
-
-		public List getPeople() {
-			return new ArrayList(people);
-		}
-
-		public void setPeople(List people) {
-			firePropertyChange("people", this.people,
-					this.people = new ArrayList(people));
-		}
-	}
-
-	// The GUI view
-	static class View {
-		private ViewModel viewModel;
-
-		private Shell shell;
-
-		private Button addPersonButton;
-		private Button removePersonButton;
-		private TableViewer peopleViewer;
-		private Text personName;
-		private CheckboxTableViewer friendsViewer;
-
-		public View(ViewModel viewModel) {
-			this.viewModel = viewModel;
-		}
-
-		public Shell createShell() {
-			// Build a UI
-			final Display display = Display.getCurrent();
-			shell = new Shell(display);
-
-			createUI(shell);
-
-			// Bind UI
-			bindUI();
-
-			// Open and return the Shell
-			shell.setSize(shell.computeSize(400, SWT.DEFAULT));
-			shell.open();
-			return shell;
-		}
-
-		private void createUI(Shell shell) {
-			shell.setText("Binding checked elements in CheckboxTableViewer");
-			shell.setLayout(new GridLayout(2, false));
-
-			new Label(shell, SWT.NONE).setText("People");
-
-			Composite buttons = new Composite(shell, SWT.NONE);
-			GridDataFactory.swtDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(
-					buttons);
-			GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(true)
-					.applyTo(buttons);
-			addPersonButton = new Button(buttons, SWT.PUSH);
-			addPersonButton.setText("Add");
-			GridDataFactory.fillDefaults().applyTo(addPersonButton);
-			removePersonButton = new Button(buttons, SWT.PUSH);
-			removePersonButton.setText("Remove");
-			GridDataFactory.fillDefaults().applyTo(removePersonButton);
-
-			Composite peopleComposite = new Composite(shell, SWT.NONE);
-			GridDataFactory.fillDefaults().grab(true, true).span(2, 1).applyTo(
-					peopleComposite);
-			TableColumnLayout peopleColumnLayout = new TableColumnLayout();
-			peopleComposite.setLayout(peopleColumnLayout);
-
-			peopleViewer = new TableViewer(peopleComposite, SWT.SINGLE
-					| SWT.BORDER | SWT.FULL_SELECTION);
-
-			Table peopleTable = peopleViewer.getTable();
-			peopleTable.setHeaderVisible(true);
-			peopleTable.setLinesVisible(true);
-
-			TableColumn nameColumn = new TableColumn(peopleTable, SWT.NONE);
-			nameColumn.setText("Name");
-			peopleColumnLayout.setColumnData(nameColumn,
-					new ColumnWeightData(1));
-
-			TableColumn friendsColumn = new TableColumn(peopleTable, SWT.NONE);
-			friendsColumn.setText("Friends");
-			peopleColumnLayout.setColumnData(friendsColumn,
-					new ColumnWeightData(3));
-
-			new Label(shell, SWT.NONE).setText("Name");
-
-			personName = new Text(shell, SWT.BORDER);
-			GridDataFactory.fillDefaults().grab(true, false)
-					.applyTo(personName);
-
-			new Label(shell, SWT.NONE).setText("Friends");
-
-			Composite friendsComposite = new Composite(shell, SWT.NONE);
-			GridDataFactory.fillDefaults().grab(true, true).applyTo(
-					friendsComposite);
-			TableColumnLayout friendsColumnLayout = new TableColumnLayout();
-			friendsComposite.setLayout(friendsColumnLayout);
-
-			friendsViewer = CheckboxTableViewer.newCheckList(friendsComposite,
-					SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
-
-			Table friendsTable = friendsViewer.getTable();
-			friendsTable.setHeaderVisible(true);
-			friendsTable.setLinesVisible(true);
-			TableColumn friendNameColumn = new TableColumn(friendsTable,
-					SWT.NONE);
-			friendNameColumn.setText("Name");
-			friendsColumnLayout.setColumnData(friendNameColumn,
-					new ColumnWeightData(1));
-
-			GridDataFactory.fillDefaults().grab(true, true).applyTo(
-					friendsViewer.getTable());
-		}
-
-		private void bindUI() {
-			DataBindingContext dbc = new DataBindingContext();
-
-			final IObservableList people = BeansObservables.observeList(Realm
-					.getDefault(), viewModel, "people");
-
-			addPersonButton.addListener(SWT.Selection, new Listener() {
-				public void handleEvent(Event event) {
-					InputDialog dlg = new InputDialog(shell, "Add Person",
-							"Enter name:", "<Name>", new IInputValidator() {
-								public String isValid(String newText) {
-									if (newText == null
-											|| newText.length() == 0)
-										return "Name cannot be empty";
-									return null;
-								}
-							});
-					if (dlg.open() == Window.OK) {
-						Person person = new Person();
-						person.setName(dlg.getValue());
-						people.add(person);
-						peopleViewer.setSelection(new StructuredSelection(
-								person));
-					}
-				}
-			});
-
-			removePersonButton.addListener(SWT.Selection, new Listener() {
-				public void handleEvent(Event event) {
-					IStructuredSelection selected = (IStructuredSelection) peopleViewer
-							.getSelection();
-					if (selected.isEmpty())
-						return;
-					Person person = (Person) selected.getFirstElement();
-					if (MessageDialog.openConfirm(shell, "Remove person",
-							"Remove " + person.getName() + "?"))
-						people.remove(person);
-				}
-			});
-
-			ObservableListContentProvider peopleContentProvider = new ObservableListContentProvider();
-			peopleViewer.setContentProvider(peopleContentProvider);
-			peopleViewer.setLabelProvider(new ObservableMapLabelProvider(
-					BeansObservables.observeMaps(peopleContentProvider
-							.getKnownElements(), Person.class, new String[] {
-							"name", "friends" })));
-			peopleViewer.setInput(people);
-
-			final IObservableValue selectedPerson = ViewersObservables
-					.observeSingleSelection(peopleViewer);
-
-			IObservableValue personSelected = new ComputedValue(Boolean.TYPE) {
-				protected Object calculate() {
-					return Boolean.valueOf(selectedPerson.getValue() != null);
-				}
-			};
-			dbc.bindValue(SWTObservables.observeEnabled(removePersonButton),
-					personSelected, null, null);
-			dbc.bindValue(SWTObservables.observeEnabled(friendsViewer
-					.getTable()), personSelected, null, null);
-
-			dbc.bindValue(SWTObservables.observeText(personName, SWT.Modify),
-					BeansObservables.observeDetailValue(Realm.getDefault(),
-							selectedPerson, "name", String.class), null, null);
-
-			ObservableListContentProvider friendsContentProvider = new ObservableListContentProvider();
-			friendsViewer.setContentProvider(friendsContentProvider);
-			friendsViewer.setLabelProvider(new ObservableMapLabelProvider(
-					BeansObservables.observeMap(friendsContentProvider
-							.getKnownElements(), Person.class, "name")));
-			friendsViewer.setInput(people);
-
-			dbc.bindSet(ViewersObservables.observeCheckedElements(
-					friendsViewer, Person.class), BeansObservables
-					.observeDetailSet(Realm.getDefault(), selectedPerson,
-							"friends", Person.class), null, null);
-		}
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet019TreeViewerWithListFactory.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet019TreeViewerWithListFactory.java
deleted file mode 100644
index a356793..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet019TreeViewerWithListFactory.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-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.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-public class Snippet019TreeViewerWithListFactory {
-
-	private Button pasteButton;
-	private Button copyButton;
-	private Shell shell;
-	private Button addChildBeanButton;
-	private Button removeBeanButton;
-	private TreeViewer beanViewer;
-	private Tree tree;
-	private Text beanText;
-	private DataBindingContext m_bindingContext;
-
-	private Bean input = createBean("input");
-	private IObservableValue clipboard;
-
-	/**
-	 * Launch the application
-	 * 
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				try {
-					Snippet019TreeViewerWithListFactory window = new Snippet019TreeViewerWithListFactory();
-					window.open();
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Open the window
-	 */
-	public void open() {
-		final Display display = Display.getDefault();
-		createContents();
-		shell.open();
-		shell.layout();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-	}
-
-	/**
-	 * Create contents of the window
-	 */
-	protected void createContents() {
-		shell = new Shell();
-		final GridLayout gridLayout_1 = new GridLayout();
-		gridLayout_1.numColumns = 2;
-		shell.setLayout(gridLayout_1);
-		shell.setSize(535, 397);
-		shell.setText("SWT Application");
-
-		final Composite group = new Composite(shell, SWT.NONE);
-		final RowLayout rowLayout = new RowLayout();
-		rowLayout.marginTop = 0;
-		rowLayout.marginRight = 0;
-		rowLayout.marginLeft = 0;
-		rowLayout.marginBottom = 0;
-		rowLayout.pack = false;
-		group.setLayout(rowLayout);
-		group
-				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false,
-						2, 1));
-
-		final Button addRootButton = new Button(group, SWT.NONE);
-		addRootButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				List list = input.getList();
-				Bean root = createBean("root");
-				list.add(root);
-				input.setList(list);
-
-				beanViewer.setSelection(new StructuredSelection(root));
-				beanText.selectAll();
-				beanText.setFocus();
-			}
-		});
-		addRootButton.setText("Add Root");
-
-		addChildBeanButton = new Button(group, SWT.NONE);
-		addChildBeanButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				Bean parent = getSelectedBean();
-				List list = new ArrayList(parent.getList());
-				Bean child = createBean("child");
-				list.add(child);
-				parent.setList(list);
-
-				beanViewer.setSelection(new StructuredSelection(child));
-				beanText.selectAll();
-				beanText.setFocus();
-			}
-		});
-		addChildBeanButton.setText("Add Child");
-
-		removeBeanButton = new Button(group, SWT.NONE);
-		removeBeanButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				TreeItem selectedItem = beanViewer.getTree().getSelection()[0];
-				TreeItem parentItem = selectedItem.getParentItem();
-				Bean parent;
-				int index;
-				if (parentItem == null) {
-					parent = input;
-					index = beanViewer.getTree().indexOf(selectedItem);
-				} else {
-					parent = (Bean) parentItem.getData();
-					index = parentItem.indexOf(selectedItem);
-				}
-
-				List list = new ArrayList(parent.getList());
-				list.remove(index);
-				parent.setList(list);
-			}
-		});
-		removeBeanButton.setText("Remove");
-
-		copyButton = new Button(group, SWT.NONE);
-		copyButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				clipboard.setValue(getSelectedBean());
-			}
-		});
-		copyButton.setText("Copy");
-
-		pasteButton = new Button(group, SWT.NONE);
-		pasteButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				Bean copy = (Bean) clipboard.getValue();
-				if (copy == null)
-					return;
-				Bean parent = getSelectedBean();
-				if (parent == null)
-					parent = input;
-
-				List list = new ArrayList(parent.getList());
-				list.add(copy);
-				parent.setList(list);
-
-				beanViewer.setSelection(new StructuredSelection(copy));
-				beanText.selectAll();
-				beanText.setFocus();
-			}
-		});
-		pasteButton.setText("Paste");
-
-		final Button refreshButton = new Button(group, SWT.NONE);
-		refreshButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				beanViewer.refresh();
-			}
-		});
-		refreshButton.setText("Refresh");
-
-		beanViewer = new TreeViewer(shell, SWT.FULL_SELECTION | SWT.BORDER);
-		beanViewer.setUseHashlookup(true);
-		tree = beanViewer.getTree();
-		tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-
-		final Label itemNameLabel = new Label(shell, SWT.NONE);
-		itemNameLabel.setText("Item Name");
-
-		beanText = new Text(shell, SWT.BORDER);
-		final GridData gd_beanValue = new GridData(SWT.FILL, SWT.CENTER, true,
-				false);
-		beanText.setLayoutData(gd_beanValue);
-		m_bindingContext = initDataBindings();
-		//
-		initExtraBindings(m_bindingContext);
-	}
-
-	private static Bean createBean(String name) {
-		return new Bean(name);
-	}
-
-	protected DataBindingContext initDataBindings() {
-		IObservableValue treeViewerSelectionObserveSelection = ViewersObservables
-				.observeSingleSelection(beanViewer);
-		IObservableValue textTextObserveWidget = SWTObservables.observeText(
-				beanText, SWT.Modify);
-		IObservableValue treeViewerValueObserveDetailValue = BeansObservables
-				.observeDetailValue(Realm.getDefault(),
-						treeViewerSelectionObserveSelection, "text",
-						java.lang.String.class);
-		//
-		//
-		DataBindingContext bindingContext = new DataBindingContext();
-		//
-		bindingContext.bindValue(textTextObserveWidget,
-				treeViewerValueObserveDetailValue, null, null);
-		//
-		return bindingContext;
-	}
-
-	private Bean getSelectedBean() {
-		IStructuredSelection selection = (IStructuredSelection) beanViewer
-				.getSelection();
-		if (selection.isEmpty())
-			return null;
-		return (Bean) selection.getFirstElement();
-	}
-
-	private void initExtraBindings(DataBindingContext dbc) {
-		final IObservableValue beanViewerSelection = ViewersObservables
-				.observeSingleSelection(beanViewer);
-		IObservableValue beanSelected = new ComputedValue(Boolean.TYPE) {
-			protected Object calculate() {
-				return Boolean.valueOf(beanViewerSelection.getValue() != null);
-			}
-		};
-		dbc.bindValue(SWTObservables.observeEnabled(addChildBeanButton),
-				beanSelected, null, null);
-		dbc.bindValue(SWTObservables.observeEnabled(removeBeanButton),
-				beanSelected, null, null);
-
-		clipboard = new WritableValue();
-		dbc.bindValue(SWTObservables.observeEnabled(copyButton), beanSelected,
-				null, null);
-		dbc.bindValue(SWTObservables.observeEnabled(pasteButton),
-				new ComputedValue(Boolean.TYPE) {
-					protected Object calculate() {
-						return Boolean.valueOf(clipboard.getValue() != null);
-					}
-				}, null, null);
-
-		ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
-				BeansObservables.listFactory(Realm.getDefault(), "list",
-						Bean.class), null);
-		beanViewer.setContentProvider(contentProvider);
-		beanViewer.setLabelProvider(new ObservableMapLabelProvider(
-				BeansObservables.observeMap(contentProvider.getKnownElements(),
-						Bean.class, "text")));
-		beanViewer.setInput(input);
-	}
-
-	static class Bean {
-		/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(
-				this);
-		private String text;
-		private List list;
-
-		public Bean(String text) {
-			this.text = text;
-			list = new ArrayList();
-		}
-
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.addPropertyChangeListener(listener);
-		}
-
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.removePropertyChangeListener(listener);
-		}
-
-		public String getText() {
-			return text;
-		}
-
-		public void setText(String value) {
-			changeSupport.firePropertyChange("text", this.text,
-					this.text = value);
-		}
-
-		public List getList() {
-			if (list == null)
-				return null;
-			return new ArrayList(list);
-		}
-
-		public void setList(List list) {
-			if (list != null)
-				list = new ArrayList(list);
-			changeSupport.firePropertyChange("list", this.list,
-					this.list = list);
-		}
-
-		public boolean hasListeners(String propertyName) {
-			return changeSupport.hasListeners(propertyName);
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet020TreeViewerWithSetFactory.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet020TreeViewerWithSetFactory.java
deleted file mode 100644
index 979412c..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet020TreeViewerWithSetFactory.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ObservableSetTreeContentProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-public class Snippet020TreeViewerWithSetFactory {
-
-	private Button pasteButton;
-	private Button copyButton;
-	private Shell shell;
-	private Button addChildBeanButton;
-	private Button removeBeanButton;
-	private TreeViewer beanViewer;
-	private Tree tree;
-	private Text beanText;
-	private DataBindingContext m_bindingContext;
-
-	private Bean input = createBean("input");
-	private IObservableValue clipboard;
-	static int counter = 0;
-
-	/**
-	 * Launch the application
-	 * 
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = Display.getDefault();
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				try {
-					Snippet020TreeViewerWithSetFactory window = new Snippet020TreeViewerWithSetFactory();
-					window.open();
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Open the window
-	 */
-	public void open() {
-		final Display display = Display.getDefault();
-		createContents();
-		shell.open();
-		shell.layout();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-	}
-
-	/**
-	 * Create contents of the window
-	 */
-	protected void createContents() {
-		shell = new Shell();
-		final GridLayout gridLayout_1 = new GridLayout();
-		gridLayout_1.numColumns = 2;
-		shell.setLayout(gridLayout_1);
-		shell.setSize(535, 397);
-		shell.setText("SWT Application");
-
-		final Composite group = new Composite(shell, SWT.NONE);
-		final RowLayout rowLayout = new RowLayout();
-		rowLayout.marginTop = 0;
-		rowLayout.marginRight = 0;
-		rowLayout.marginLeft = 0;
-		rowLayout.marginBottom = 0;
-		rowLayout.pack = false;
-		group.setLayout(rowLayout);
-		group
-				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false,
-						2, 1));
-
-		final Button addRootButton = new Button(group, SWT.NONE);
-		addRootButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				Set set = input.getSet();
-				Bean root = createBean("root");
-				set.add(root);
-				input.setSet(set);
-
-				beanViewer.setSelection(new StructuredSelection(root));
-				beanText.selectAll();
-				beanText.setFocus();
-			}
-		});
-		addRootButton.setText("Add Root");
-
-		addChildBeanButton = new Button(group, SWT.NONE);
-		addChildBeanButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				Bean parent = getSelectedBean();
-				Set set = new HashSet(parent.getSet());
-				Bean child = createBean("child" + (counter++));
-				set.add(child);
-				parent.setSet(set);
-
-//				beanViewer.setSelection(new StructuredSelection(parent));
-//				beanText.selectAll();
-//				beanText.setFocus();
-			}
-		});
-		addChildBeanButton.setText("Add Child");
-
-		removeBeanButton = new Button(group, SWT.NONE);
-		removeBeanButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				TreeItem selectedItem = beanViewer.getTree().getSelection()[0];
-				Bean bean = (Bean) selectedItem.getData();
-				TreeItem parentItem = selectedItem.getParentItem();
-				Bean parent;
-				if (parentItem == null)
-					parent = input;
-				else
-					parent = (Bean) parentItem.getData();
-				
-				Set set = new HashSet(parent.getSet());
-				set.remove(bean);
-				parent.setSet(set);
-			}
-		});
-		removeBeanButton.setText("Remove");
-
-		copyButton = new Button(group, SWT.NONE);
-		copyButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				clipboard.setValue(getSelectedBean());
-			}
-		});
-		copyButton.setText("Copy");
-
-		pasteButton = new Button(group, SWT.NONE);
-		pasteButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				Bean copy = (Bean) clipboard.getValue();
-				if (copy == null)
-					return;
-				Bean parent = getSelectedBean();
-				if (parent == null)
-					parent = input;
-
-				Set set = new HashSet(parent.getSet());
-				set.add(copy);
-				parent.setSet(set);
-
-				beanViewer.setSelection(new StructuredSelection(copy));
-				beanText.selectAll();
-				beanText.setFocus();
-			}
-		});
-		pasteButton.setText("Paste");
-
-		final Button refreshButton = new Button(group, SWT.NONE);
-		refreshButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				beanViewer.refresh();
-			}
-		});
-		refreshButton.setText("Refresh");
-
-		beanViewer = new TreeViewer(shell, SWT.FULL_SELECTION | SWT.BORDER);
-		beanViewer.setUseHashlookup(true);
-		beanViewer.setComparator(new ViewerComparator());
-		tree = beanViewer.getTree();
-		tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-
-		final Label itemNameLabel = new Label(shell, SWT.NONE);
-		itemNameLabel.setText("Item Name");
-
-		beanText = new Text(shell, SWT.BORDER);
-		final GridData gd_beanValue = new GridData(SWT.FILL, SWT.CENTER, true,
-				false);
-		beanText.setLayoutData(gd_beanValue);
-		m_bindingContext = initDataBindings();
-		//
-		initExtraBindings(m_bindingContext);
-	}
-
-	private static Bean createBean(String name) {
-		return new Bean(name);
-	}
-
-	protected DataBindingContext initDataBindings() {
-		IObservableValue treeViewerSelectionObserveSelection = ViewersObservables
-				.observeSingleSelection(beanViewer);
-		IObservableValue textTextObserveWidget = SWTObservables.observeText(
-				beanText, SWT.Modify);
-		IObservableValue treeViewerValueObserveDetailValue = BeansObservables
-				.observeDetailValue(Realm.getDefault(),
-						treeViewerSelectionObserveSelection, "text",
-						java.lang.String.class);
-		//
-		//
-		DataBindingContext bindingContext = new DataBindingContext();
-		//
-		bindingContext.bindValue(textTextObserveWidget,
-				treeViewerValueObserveDetailValue, null, null);
-		//
-		return bindingContext;
-	}
-
-	private Bean getSelectedBean() {
-		IStructuredSelection selection = (IStructuredSelection) beanViewer
-				.getSelection();
-		if (selection.isEmpty())
-			return null;
-		return (Bean) selection.getFirstElement();
-	}
-
-	private void initExtraBindings(DataBindingContext dbc) {
-		final IObservableValue beanViewerSelection = ViewersObservables
-				.observeSingleSelection(beanViewer);
-		IObservableValue beanSelected = new ComputedValue(Boolean.TYPE) {
-			protected Object calculate() {
-				return Boolean.valueOf(beanViewerSelection.getValue() != null);
-			}
-		};
-		dbc.bindValue(SWTObservables.observeEnabled(addChildBeanButton),
-				beanSelected, null, null);
-		dbc.bindValue(SWTObservables.observeEnabled(removeBeanButton),
-				beanSelected, null, null);
-
-		clipboard = new WritableValue();
-		dbc.bindValue(SWTObservables.observeEnabled(copyButton),
-				beanSelected, null, null);
-		dbc.bindValue(SWTObservables.observeEnabled(pasteButton), new ComputedValue(Boolean.TYPE) {
-			protected Object calculate() {
-				return Boolean.valueOf(clipboard.getValue() != null);
-			}
-		}, null, null);
-
-		ObservableSetTreeContentProvider contentProvider = new ObservableSetTreeContentProvider(
-				BeansObservables.setFactory(Realm.getDefault(), "set",
-						Bean.class), null);
-		beanViewer.setContentProvider(contentProvider);
-		beanViewer.setLabelProvider(new ObservableMapLabelProvider(
-				BeansObservables.observeMap(contentProvider.getKnownElements(),
-						Bean.class, "text")));
-		beanViewer.setInput(input);
-	}
-
-	static class Bean {
-		/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(
-				this);
-		private String text;
-		private Set set;
-
-		public Bean(String text) {
-			this.text = text;
-			set = new HashSet();
-		}
-
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.addPropertyChangeListener(listener);
-		}
-
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.removePropertyChangeListener(listener);
-		}
-
-		public String getText() {
-			return text;
-		}
-
-		public void setText(String value) {
-			changeSupport.firePropertyChange("text", this.text, this.text = value);
-		}
-
-		public Set getSet() {
-			if (set == null)
-				return null;
-			return new HashSet(set);
-		}
-
-		public void setSet(Set set) {
-			if (set != null)
-				set = new HashSet(set);
-			changeSupport.firePropertyChange("set", this.set, this.set = set);
-		}
-
-		public boolean hasListeners(String propertyName) {
-			return changeSupport.hasListeners(propertyName);
-		}
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet021MultiFieldValidation.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet021MultiFieldValidation.java
deleted file mode 100644
index cd86b04..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet021MultiFieldValidation.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.MultiValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.wizard.WizardPageSupport;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.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.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 3.2
- * 
- */
-public class Snippet021MultiFieldValidation extends WizardPage {
-
-	private List list_1;
-	private List list;
-	private Button addAddendButton;
-	private Button removeAddendButton;
-	private Text sumModelValue;
-	private Text field2ModelValue;
-	private Text field1ModelValue;
-	private Text sumTarget;
-	private Text field2Target;
-	private Text field1Target;
-	private ListViewer addendsTarget;
-	private ListViewer addendsModelValue;
-
-	/**
-	 * Create the wizard
-	 */
-	public Snippet021MultiFieldValidation() {
-		super("snippet021");
-		setTitle("Snippet 021 - Multi-field Validators");
-		setDescription("Enter values which satisfy the cross-field constraints");
-	}
-
-	/**
-	 * Create contents of the wizard
-	 * 
-	 * @param parent
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		final GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		container.setLayout(gridLayout);
-		//
-		setControl(container);
-
-		final Group bothEvenOrGroup = new Group(container, SWT.NONE);
-		bothEvenOrGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
-				false));
-		bothEvenOrGroup.setText("Numbers must be both even or both odd");
-		final GridLayout gridLayout_1 = new GridLayout();
-		gridLayout_1.numColumns = 3;
-		bothEvenOrGroup.setLayout(gridLayout_1);
-		new Label(bothEvenOrGroup, SWT.NONE);
-
-		final Label targetLabel = new Label(bothEvenOrGroup, SWT.NONE);
-		targetLabel.setText("Target");
-
-		final Label modelLabel = new Label(bothEvenOrGroup, SWT.NONE);
-		modelLabel.setText("Model");
-
-		final Label field1Label = new Label(bothEvenOrGroup, SWT.NONE);
-		field1Label.setText("Field 1");
-
-		field1Target = new Text(bothEvenOrGroup, SWT.BORDER);
-		final GridData gd_field1Target = new GridData(SWT.FILL, SWT.CENTER,
-				true, false);
-		field1Target.setLayoutData(gd_field1Target);
-
-		field1ModelValue = new Text(bothEvenOrGroup, SWT.READ_ONLY | SWT.BORDER);
-		final GridData gd_field1ModelValue = new GridData(SWT.FILL, SWT.CENTER,
-				true, false);
-		field1ModelValue.setLayoutData(gd_field1ModelValue);
-
-		final Label field2Label = new Label(bothEvenOrGroup, SWT.NONE);
-		field2Label.setText("Field 2");
-
-		field2Target = new Text(bothEvenOrGroup, SWT.BORDER);
-		final GridData gd_field2Target = new GridData(SWT.FILL, SWT.CENTER,
-				true, false);
-		field2Target.setLayoutData(gd_field2Target);
-
-		field2ModelValue = new Text(bothEvenOrGroup, SWT.READ_ONLY | SWT.BORDER);
-		final GridData gd_field2ModelValue = new GridData(SWT.FILL, SWT.CENTER,
-				true, false);
-		field2ModelValue.setLayoutData(gd_field2ModelValue);
-
-		final Group sumOfAllGroup = new Group(container, SWT.NONE);
-		sumOfAllGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
-				true));
-		sumOfAllGroup.setText("Addends must add up to sum");
-		final GridLayout gridLayout_2 = new GridLayout();
-		gridLayout_2.numColumns = 3;
-		sumOfAllGroup.setLayout(gridLayout_2);
-		new Label(sumOfAllGroup, SWT.NONE);
-
-		final Label targetLabel_1 = new Label(sumOfAllGroup, SWT.NONE);
-		targetLabel_1.setText("Target");
-
-		final Label modelLabel_1 = new Label(sumOfAllGroup, SWT.NONE);
-		modelLabel_1.setText("Model");
-
-		final Label expectedSumLabel = new Label(sumOfAllGroup, SWT.NONE);
-		expectedSumLabel.setText("Sum");
-
-		sumTarget = new Text(sumOfAllGroup, SWT.BORDER);
-		final GridData gd_sumTarget = new GridData(SWT.FILL, SWT.CENTER, true,
-				false);
-		sumTarget.setLayoutData(gd_sumTarget);
-
-		sumModelValue = new Text(sumOfAllGroup, SWT.READ_ONLY | SWT.BORDER);
-		final GridData gd_sumModelValue = new GridData(SWT.FILL, SWT.CENTER,
-				true, false);
-		sumModelValue.setLayoutData(gd_sumModelValue);
-
-		final Label addendsLabel = new Label(sumOfAllGroup, SWT.NONE);
-		addendsLabel.setText("Addends");
-
-		addendsTarget = new ListViewer(sumOfAllGroup, SWT.V_SCROLL | SWT.BORDER);
-		list_1 = addendsTarget.getList();
-		list_1
-				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1,
-						2));
-
-		addendsModelValue = new ListViewer(sumOfAllGroup, SWT.V_SCROLL
-				| SWT.BORDER);
-		list = addendsModelValue.getList();
-		list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 2));
-
-		final Composite composite = new Composite(sumOfAllGroup, SWT.NONE);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-		final GridLayout gridLayout_3 = new GridLayout();
-		gridLayout_3.marginWidth = 0;
-		gridLayout_3.marginHeight = 0;
-		composite.setLayout(gridLayout_3);
-
-		addAddendButton = new Button(composite, SWT.NONE);
-		addAddendButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
-				false));
-		addAddendButton.setText("Add");
-
-		removeAddendButton = new Button(composite, SWT.NONE);
-		removeAddendButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
-				false, false));
-		removeAddendButton.setText("Remove");
-
-		bindUI();
-	}
-
-	private void bindUI() {
-		DataBindingContext dbc = new DataBindingContext();
-
-		bindEvensAndOddsGroup(dbc);
-		bindSumAndAddendsGroup(dbc);
-
-		WizardPageSupport.create(this, dbc);
-	}
-
-	private void bindEvensAndOddsGroup(DataBindingContext dbc) {
-		IObservableValue targetField1 = SWTObservables.observeText(
-				field1Target, SWT.Modify);
-		final IObservableValue middleField1 = new WritableValue(null,
-				Integer.TYPE);
-		dbc.bindValue(targetField1, middleField1, null, null);
-
-		IObservableValue targetField2 = SWTObservables.observeText(
-				field2Target, SWT.Modify);
-		final IObservableValue middleField2 = new WritableValue(null,
-				Integer.TYPE);
-		dbc.bindValue(targetField2, middleField2, null, null);
-
-		MultiValidator validator = new MultiValidator() {
-			protected IStatus validate() {
-				Integer field1 = (Integer) middleField1.getValue();
-				Integer field2 = (Integer) middleField2.getValue();
-				if (Math.abs(field1.intValue()) % 2 != Math.abs(field2
-						.intValue()) % 2)
-					return ValidationStatus
-							.error("Fields 1 and 2 must be both even or both odd");
-				return null;
-			}
-		};
-		dbc.addValidationStatusProvider(validator);
-
-		IObservableValue modelField1 = new WritableValue(new Integer(1),
-				Integer.TYPE);
-		IObservableValue modelField2 = new WritableValue(new Integer(4),
-				Integer.TYPE);
-		dbc.bindValue(validator.observeValidatedValue(middleField1),
-				modelField1, null, null);
-		dbc.bindValue(validator.observeValidatedValue(middleField2),
-				modelField2, null, null);
-
-		dbc.bindValue(SWTObservables.observeText(field1ModelValue, SWT.Modify),
-				modelField1, null, null);
-		dbc.bindValue(SWTObservables.observeText(field2ModelValue, SWT.Modify),
-				modelField2, null, null);
-	}
-
-	private void bindSumAndAddendsGroup(DataBindingContext dbc) {
-		IObservableValue targetSum = SWTObservables.observeText(sumTarget,
-				SWT.Modify);
-		final IObservableValue middleSum = new WritableValue(null, Integer.TYPE);
-		dbc.bindValue(targetSum, middleSum, null, null);
-
-		final IObservableList targetAddends = new WritableList(new ArrayList(),
-				Integer.TYPE);
-		addendsTarget.setContentProvider(new ObservableListContentProvider());
-		addendsTarget.setInput(targetAddends);
-
-		addAddendButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(final SelectionEvent e) {
-				InputDialog dialog = new InputDialog(getShell(),
-						"Input addend", "Enter an integer addend", "0",
-						new IInputValidator() {
-							public String isValid(String newText) {
-								try {
-									Integer.valueOf(newText);
-									return null;
-								} catch (NumberFormatException e) {
-									return "Enter a number between "
-											+ Integer.MIN_VALUE + " and "
-											+ Integer.MAX_VALUE;
-								}
-							}
-						});
-				if (dialog.open() == Window.OK) {
-					targetAddends.add(Integer.valueOf(dialog.getValue()));
-				}
-			}
-		});
-
-		removeAddendButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				IStructuredSelection selection = (IStructuredSelection) addendsTarget
-						.getSelection();
-				if (!selection.isEmpty())
-					targetAddends.remove(selection.getFirstElement());
-			}
-		});
-
-		IObservableValue modelSum = new WritableValue(new Integer(5),
-				Integer.TYPE);
-		dbc.bindValue(SWTObservables.observeText(sumModelValue, SWT.Modify),
-				modelSum, null, null);
-
-		IObservableList modelAddends = new WritableList(new ArrayList(),
-				Integer.TYPE);
-
-		MultiValidator validator = new MultiValidator() {
-			protected IStatus validate() {
-				Integer sum = (Integer) middleSum.getValue();
-				int actualSum = 0;
-				for (Iterator iterator = targetAddends.iterator(); iterator
-						.hasNext();) {
-					actualSum += ((Integer) iterator.next()).intValue();
-				}
-				if (sum.intValue() != actualSum)
-					return ValidationStatus.error("Sum of addends is "
-							+ actualSum + ", expecting " + sum);
-				return ValidationStatus.ok();
-			}
-		};
-		dbc.addValidationStatusProvider(validator);
-
-		addendsModelValue
-				.setContentProvider(new ObservableListContentProvider());
-		addendsModelValue.setInput(modelAddends);
-
-		dbc.bindValue(validator.observeValidatedValue(middleSum), modelSum,
-				null, null);
-		dbc.bindList(validator.observeValidatedList(targetAddends),
-				modelAddends, null, null);
-	}
-
-	static class MultiFieldValidationWizard extends Wizard {
-		public void addPages() {
-			addPage(new Snippet021MultiFieldValidation());
-		}
-
-		public String getWindowTitle() {
-			return "Snippet 021 - Multi-field Validation";
-		}
-
-		public boolean performFinish() {
-			return true;
-		}
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
-			public void run() {
-				IWizard wizard = new MultiFieldValidationWizard();
-				WizardDialog dialog = new WizardDialog(null, wizard);
-				dialog.open();
-
-				// The SWT event loop
-				Display display = Display.getCurrent();
-				while (dialog.getShell() != null
-						&& !dialog.getShell().isDisposed()) {
-					if (!display.readAndDispatch()) {
-						display.sleep();
-					}
-				}
-			}
-		});
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet0xffffffff.java b/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet0xffffffff.java
deleted file mode 100644
index 8b44163..0000000
--- a/examples/org.eclipse.jface.examples.databinding/src/org/eclipse/jface/examples/databinding/snippets/Snippet0xffffffff.java
+++ /dev/null
@@ -1,168 +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
- *     Brad Reynolds - bug 116920
- ******************************************************************************/
-
-package org.eclipse.jface.examples.databinding.snippets;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Snippet -1.
- * 
- * Hello, no databinding. Bind changes in a GUI to a Model object but don't
- * worry about propogating changes from the Model to the GUI -- using *manual*
- * code. (0xffffffff is -1 in 32-bit two's complement binary arithmatic)
- */
-public class Snippet0xffffffff {
-	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());
-	}
-
-	// Minimal JavaBeans support
-	public 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.
-	// 
-	// 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 extends AbstractModelObject {
-		// A property...
-		String name = "John Smith";
-
-		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
-	// data access tier. 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
-			final Display display = Display.getCurrent();
-			Shell shell = new Shell(display);
-			shell.setLayout(new RowLayout(SWT.VERTICAL));
-
-			final Text name = new Text(shell, SWT.BORDER);
-			
-			// Bind it (manually)
-			name.setText(viewModel.getPerson().getName());
-			name.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					final String text = name.getText();
-					// validation
-					// conversion
-					viewModel.getPerson().setName(text);
-				}
-			});
-			viewModel.person.addPropertyChangeListener("name",
-					new PropertyChangeListener() {
-						public void propertyChange(PropertyChangeEvent evt) {
-							display.asyncExec(new Runnable() {
-								public void run() {
-									final String newName = viewModel.person.getName();
-									// conversion
-									name.setText(newName);
-								}
-							});
-						}
-					});
-
-			// Open and return the Shell
-			shell.pack();
-			shell.open();
-			return shell;
-		}
-	}
-
-}
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 a36c31d..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet012DialogWithImageButtons.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A snippet to demonstrate a dialog with image buttons.
- *
- */
-public class Snippet012DialogWithImageButtons {
-	private ImageRegistry registry;
-	
-	public Snippet012DialogWithImageButtons(final Shell shell) {
-		
-		Dialog dia = new Dialog(shell) {
-			private ImageDescriptor getImageDescriptor(String path) {
-				if( registry == null ) {
-					registry = new ImageRegistry(shell.getDisplay());
-				}
-				
-				ImageDescriptor desc = registry.getDescriptor(path);
-				if( desc == null ) {
-					desc = ImageDescriptor.createFromFile(Snippet012DialogWithImageButtons.class, path);
-					registry.put(path, desc);
-				}
-				
-				return desc;
-			}
-			
-			protected Button createButton(Composite parent, int id, String label, boolean defaultButton) {
-				Button b = super.createButton(parent, id, label, defaultButton);
-				if( id == IDialogConstants.OK_ID ) {
-					b.setImage(getImageDescriptor("filesave.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-				} else {
-					b.setImage(getImageDescriptor("cancel.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-					return b;
-				}
-				
-				return b;
-			}
-		};
-		dia.open();
-	}
-	
-	public static void main(String[] args) {
-		
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		
-		shell.open ();
-		
-		new Snippet012DialogWithImageButtons(shell);
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet058VistaProgressBars.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet058VistaProgressBars.java
deleted file mode 100644
index e6eb0d6..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet058VistaProgressBars.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.dialogs;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IProgressMonitorWithBlocking;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
-
-public class Snippet058VistaProgressBars {
-
-	/**
-	 * Open a progress monitor dialog and switch the blocking.
-	 * 
-	 * @param args
-	 */
-	public static void main(String[] args) {
-
-		Display display = new Display();
-
-		final ProgressMonitorDialog dialog = new ProgressMonitorDialog(null);
-
-		try {
-			dialog.run(true, true, new IRunnableWithProgress() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
-				 */
-				public void run(IProgressMonitor monitor)
-						throws InvocationTargetException, InterruptedException {
-
-					IProgressMonitorWithBlocking blocking = (IProgressMonitorWithBlocking) monitor;
-
-					blocking.beginTask("Vista Coolness", 100);
-					for (int i = 0; i < 10; i++) {
-						blocking.setBlocked(new Status(IStatus.WARNING,
-								"Blocked", "This is blocked on Vista"));
-						blocking.worked(5);
-						spin(dialog.getShell().getDisplay());
-						blocking.clearBlocked();
-						blocking.worked(5);
-						spin(dialog.getShell().getDisplay());
-						if (monitor.isCanceled())
-							return;
-					}
-					blocking.done();
-				}
-			});
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-
-		display.dispose();
-	}
-
-	private static void spin(final Display display) {
-		display.syncExec(new Runnable() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see java.lang.Runnable#run()
-			 */
-			public void run() {
-				long endTime = System.currentTimeMillis() + 1000;
-
-				while (System.currentTimeMillis() < endTime)
-					display.readAndDispatch();
-
-			}
-		});
-
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet059VistaProgressIndicator.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet059VistaProgressIndicator.java
deleted file mode 100644
index cfaa030..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet059VistaProgressIndicator.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.dialogs;
-
-import org.eclipse.jface.dialogs.ProgressIndicator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A snippet to demonstrate the progress indicator on Vista showing paused and
- * errors
- * 
- */
-public class Snippet059VistaProgressIndicator {
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new GridLayout());
-		shell.setSize(300, 100);
-
-		ProgressIndicator indicator = new ProgressIndicator(shell,
-				SWT.HORIZONTAL);
-		indicator.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));
-		indicator.setBackground(shell.getDisplay().getSystemColor(
-				SWT.COLOR_CYAN));
-
-		shell.open();
-
-		indicator.beginTask(200);
-		indicator.showNormal();
-		indicator.worked(50);
-		spin(display);
-		indicator.showPaused();
-		indicator.worked(50);
-		spin(display);
-		indicator.showError();
-		indicator.worked(50);
-		spin(display);
-		
-		indicator.done();
-
-		display.dispose();
-
-	}
-
-	private static void spin(Display display) {
-		long endTime = System.currentTimeMillis() + 1000;
-		while(System.currentTimeMillis() < endTime)
-			display.readAndDispatch();
-		
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet060DialogWithURLImageButtons.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet060DialogWithURLImageButtons.java
deleted file mode 100644
index b4eb013..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet060DialogWithURLImageButtons.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.dialogs;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A snippet to demonstrate a dialog with image buttons.
- * 
- */
-public class Snippet060DialogWithURLImageButtons {
-	private ImageRegistry registry;
-
-	public Snippet060DialogWithURLImageButtons(final Shell shell) {
-
-		Dialog dia = new Dialog(shell) {
-			private ImageDescriptor getImageDescriptor(String path) {
-				if (registry == null) {
-					registry = new ImageRegistry(shell.getDisplay());
-				}
-
-				ImageDescriptor desc = registry.getDescriptor(path);
-				if (desc == null) {
-
-					desc = ImageDescriptor
-							.createFromURL(Snippet060DialogWithURLImageButtons.class
-									.getResource(path));
-					registry.put(path, desc);
-				}
-
-				return desc;
-			}
-
-			protected Button createButton(Composite parent, int id,
-					String label, boolean defaultButton) {
-				Button b = super.createButton(parent, id, label, defaultButton);
-				if (id == IDialogConstants.OK_ID) {
-
-					URL url;
-					try {
-						url = new URL(
-								"http://www.eclipse.org/home/images/enterprise.gif");
-						b.setImage(ImageDescriptor.createFromURL(url)
-								.createImage()); //$NON-NLS-1$
-					} catch (MalformedURLException e) {
-						e.printStackTrace();
-					}
-
-					// reset the button layout
-					setButtonLayoutData(b);
-				} else {
-					b.setImage(getImageDescriptor("cancel.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-					return b;
-				}
-
-				return b;
-			}
-		};
-		dia.open();
-	}
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		shell.open();
-
-		new Snippet060DialogWithURLImageButtons(shell);
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/cancel.png b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/cancel.png
deleted file mode 100644
index 1cabc6e..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/cancel.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/filesave.png b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/filesave.png
deleted file mode 100644
index 41b3f43..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/filesave.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet013GridLayoutFactory.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet013GridLayoutFactory.java
deleted file mode 100644
index 1418107..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet013GridLayoutFactory.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.snippets.layout;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.layout.LayoutConstants;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 3.3
- */
-public class Snippet013GridLayoutFactory {
-
-	public static Shell createShell1() {
-		Shell shell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
-		{ // Populate the shell
-			Label text = new Label(shell, SWT.WRAP);
-			text
-					.setText("This is a layout test. This text should wrap in the test. You could call it a text test.");
-			GridDataFactory.generate(text, 2, 1);
-
-			List theList = new List(shell, SWT.H_SCROLL | SWT.V_SCROLL
-					| SWT.BORDER);
-
-			theList.add("Hello");
-			theList.add("World");
-			GridDataFactory.defaultsFor(theList).hint(300, 300)
-					.applyTo(theList);
-
-			Composite buttonBar = new Composite(shell, SWT.NONE);
-			{ // Populate buttonBar
-				Button add = new Button(buttonBar, SWT.PUSH);
-				add.setText("Add");
-				Button remove = new Button(buttonBar, SWT.PUSH);
-				remove.setText("Remove");
-			}
-			GridLayoutFactory.fillDefaults().generateLayout(buttonBar);
-		}
-		GridLayoutFactory.fillDefaults().numColumns(2).margins(
-				LayoutConstants.getMargins()).generateLayout(shell);
-
-		return shell;
-	}
-
-	public static Shell createShell3() {
-		Shell shell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
-		{ // Populate the shell
-
-			Text text = new Text(shell, SWT.WRAP | SWT.BORDER);
-			text
-					.setText("This shell has asymmetric margins. The left, right, top, and bottom margins should be 0, 10, 40, and 80 pixels respectively");
-
-			Rectangle margins = Geometry.createDiffRectangle(0, 10, 40, 80);
-
-			GridLayoutFactory.fillDefaults().extendedMargins(margins)
-					.generateLayout(shell);
-
-		}
-
-		return shell;
-	}
-
-	public static Shell createShell2() {
-		Shell shell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
-		{ // Populate the shell
-
-			Label text = new Label(shell, SWT.NONE);
-			text.setText("Name:");
-			new Text(shell, SWT.BORDER);
-
-			Label quest = new Label(shell, SWT.NONE);
-			quest.setText("Quest:");
-			CCombo combo = new CCombo(shell, SWT.BORDER);
-			combo.add("I seek the holy grail");
-			combo.add("What? I don't know that");
-			combo.add("All your base are belong to us");
-
-			Label colour = new Label(shell, SWT.NONE);
-			colour.setText("Color:");
-			new Text(shell, SWT.BORDER);
-
-			Composite buttonBar = new Composite(shell, SWT.NONE);
-			{ // Populate buttonBar
-				Button add = new Button(buttonBar, SWT.PUSH);
-				add.setText("Okay");
-				Button remove = new Button(buttonBar, SWT.PUSH);
-				remove.setText("Cancel");
-
-				GridLayoutFactory.fillDefaults().numColumns(2).generateLayout(
-						buttonBar);
-			}
-			GridDataFactory.fillDefaults().span(2, 1).align(SWT.RIGHT,
-					SWT.BOTTOM).applyTo(buttonBar);
-
-			GridLayoutFactory.fillDefaults().numColumns(2).margins(
-					LayoutConstants.getMargins()).generateLayout(shell);
-		}
-
-		return shell;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = createShell1();
-		shell.pack();
-		shell.open();
-
-		Shell shell2 = createShell2();
-		shell2.pack();
-		shell2.open();
-
-		Shell shell3 = createShell3();
-		shell3.pack();
-		shell3.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java
deleted file mode 100755
index a03aa05..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.layout;
-
-
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * A simple TableViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.3M3
- */
-public class Snippet016TableLayout {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	private class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return columnIndex + " - " + element;
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet016TableLayout(Composite comp) {
-		final TableViewer v = new TableViewer(new Table(comp, SWT.BORDER));
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.getTable().setHeaderVisible(true);
-
-		TableColumnLayout ad = new TableColumnLayout();
-		comp.setLayout(ad);
-		
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setText("Column 1");
-		column.setMoveable(true);
-		ad.setColumnData(column, new ColumnWeightData(90, 290));
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setText("Column 2");
-		column.setMoveable(true);
-		ad.setColumnData(column, new ColumnWeightData(10, 200));
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		//shell.setSize(400, 150);
-		shell.setLayout(new FillLayout());
-		
-		new Snippet016TableLayout(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java
deleted file mode 100644
index 3b0558d..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.layout;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.layout.TreeColumnLayout;
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet027TreeLayout {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet027TreeLayout(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		v.getTree().setHeaderVisible(true);
-		v.getTree().setLinesVisible(true);
-		
-		TreeColumnLayout ad = new TreeColumnLayout();
-		shell.setLayout(ad);
-		
-		TreeColumn column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		ad.setColumnData(column, new ColumnWeightData(50, 100));
-		
-		column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		ad.setColumnData(column,new ColumnWeightData(50, 100));
-		
-
-		
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet027TreeLayout(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/Snippet057FileImageDescriptors.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/Snippet057FileImageDescriptors.java
deleted file mode 100644
index 7446028..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/Snippet057FileImageDescriptors.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.resources;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A snippet to demonstrate a dialog with image buttons.
- * 
- */
-public class Snippet057FileImageDescriptors {
-	private ImageRegistry registry;
-
-	public Snippet057FileImageDescriptors(final Shell shell) {
-
-		Dialog dia = new Dialog(shell) {
-			private ImageDescriptor getImageDescriptorFromClass(String path) {
-				if (registry == null) {
-					registry = new ImageRegistry(shell.getDisplay());
-				}
-
-				ImageDescriptor desc = registry.getDescriptor(path);
-				if (desc == null) {
-					desc = ImageDescriptor.createFromFile(
-							Snippet057FileImageDescriptors.class, path);
-					registry.put(path, desc);
-				}
-
-				return desc;
-			}
-
-			private ImageDescriptor getImageDescriptorFromFile(String path) {
-				if (registry == null) {
-					registry = new ImageRegistry(shell.getDisplay());
-				}
-
-				ImageDescriptor desc = registry.getDescriptor(path);
-				if (desc == null) {
-					URL classPath = Snippet057FileImageDescriptors.class
-							.getResource(path);
-					Class bogus = null;
-					desc = ImageDescriptor.createFromFile(bogus, classPath
-							.getFile());
-
-					registry.put(path, desc);
-				}
-
-				return desc;
-			}
-
-			protected Button createButton(Composite parent, int id,
-					String label, boolean defaultButton) {
-				Button b = super.createButton(parent, id, label, defaultButton);
-				if (id == IDialogConstants.OK_ID) {
-					b
-							.setImage(getImageDescriptorFromClass(
-									"filesave.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-				} else {
-					b
-							.setImage(getImageDescriptorFromFile("cancel.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-					return b;
-				}
-
-				return b;
-			}
-		};
-		dia.open();
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		shell.open();
-
-		new Snippet057FileImageDescriptors(shell);
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/cancel.png b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/cancel.png
deleted file mode 100644
index 1cabc6e..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/cancel.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/filesave.png b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/filesave.png
deleted file mode 100644
index 41b3f43..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/filesave.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/AbstractCellCursor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/AbstractCellCursor.java
deleted file mode 100644
index 343a626..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/AbstractCellCursor.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * @since 3.3
- *
- */
-public abstract class AbstractCellCursor extends Canvas {
-	private ViewerCell[] cells = new ViewerCell[0];
-	
-	private ColumnViewer viewer;
-	
-	private int activationTime = 0;
-	
-	private boolean inFocusRequest = false;
-	
-	/**
-	 * @param viewer
-	 * @param style
-	 */
-	public AbstractCellCursor(ColumnViewer viewer, int style) {
-		super((Composite) viewer.getControl(),style);
-		this.viewer = viewer;
-		
-		Listener l = new Listener() {
-
-			public void handleEvent(Event event) {
-				switch (event.type) {
-				case SWT.Paint:
-					paint(event);
-					break;
-				case SWT.KeyDown:
-					getParent().notifyListeners(SWT.KeyDown, event);
-					ArrayList list = new ArrayList();
-					for( int i = 0; i < cells.length; i++ ) {
-						list.add(cells[i].getElement());
-					}
-					AbstractCellCursor.this.viewer.setSelection(new StructuredSelection(list));
-					
-					break;
-				case SWT.MouseDown:
-					if( event.time < activationTime ) {
-						Event cEvent = copyEvent(event);
-						cEvent.type = SWT.MouseDoubleClick;
-						getParent().notifyListeners(SWT.MouseDoubleClick, cEvent);
-					} else {
-						getParent().notifyListeners(SWT.MouseDown, copyEvent(event));
-					}
-					break;
-				case SWT.MouseDoubleClick:
-					getParent().notifyListeners(SWT.MouseDoubleClick, copyEvent(event));
-					break;
-				case SWT.FocusIn:
-					if( isVisible() ) {
-						inFocusRequest = true;
-						if( ! inFocusRequest ) {
-							forceFocus();
-						}
-						inFocusRequest = false;
-					}
-				default:
-					break;
-				}
-			}
-		};
-		
-		addListener(SWT.Paint, l);
-		addListener(SWT.KeyDown, l);
-		addListener(SWT.MouseDown, l);
-		addListener(SWT.MouseDoubleClick, l);
-		getParent().addListener(SWT.FocusIn,l);
-	}
-	
-	/**
-	 * @param cell
-	 * @param eventTime 
-	 */
-	public void setSelection(ViewerCell cell, int eventTime) {
-		this.cells = new ViewerCell[] { cell };
-		setBounds(cell.getBounds());
-		forceFocus();
-		redraw();
-		activationTime = eventTime + getDisplay().getDoubleClickTime();
-	}
-	
-	/**
-	 * @return the cells who should be highlighted
-	 */
-	protected ViewerCell[] getSelectedCells() {
-		return cells;
-	}
-	
-	private Event copyEvent(Event event) {
-		Event cEvent = new Event();
-		cEvent.button = event.button;
-		cEvent.character = event.character;
-		cEvent.count = event.count;
-		cEvent.data = event.data;
-		cEvent.detail = event.detail;
-		cEvent.display = event.display;
-		cEvent.doit = event.doit;
-		cEvent.end = event.end;
-		cEvent.gc = event.gc;
-		cEvent.height = event.height;
-		cEvent.index = event.index;
-		cEvent.item = getSelectedCells()[0].getControl();
-		cEvent.keyCode = event.keyCode;
-		cEvent.start = event.start;
-		cEvent.stateMask = event.stateMask;
-		cEvent.text = event.text;
-		cEvent.time = event.time;
-		cEvent.type = event.type;
-		cEvent.widget = event.widget;
-		cEvent.width = event.width;
-		Point p = viewer.getControl().toControl(toDisplay(event.x, event.y));
-		cEvent.x = p.x;
-		cEvent.y = p.y;
-		
-		return cEvent;
-	}
-	
-	/**
-	 * @param event
-	 */
-	protected abstract void paint(Event event);
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/BooleanCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/BooleanCellEditor.java
deleted file mode 100644
index 0e8be19..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/BooleanCellEditor.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerRow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @since 3.4
- *
- */
-public class BooleanCellEditor extends CellEditor {
-	private Button button;
-	private ViewerRow row;
-	private int index;
-	private String restoredText;
-	private Image restoredImage;
-
-	/**
-	 * @param parent
-	 */
-	public BooleanCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/**
-	 * @param parent
-	 * @param style
-	 */
-	public BooleanCellEditor(Composite parent, int style) {
-		super(parent, style);
-	}
-
-	public LayoutData getLayoutData() {
-		LayoutData data = super.getLayoutData();
-		data.horizontalAlignment=SWT.CENTER;
-		data.grabHorizontal = false;
-		return data;
-	}
-
-	protected Control createControl(Composite parent) {
-		Font font = parent.getFont();
-		Color bg = parent.getBackground();
-
-		button = new Button(parent, getStyle() | SWT.CHECK);
-		button.setFont(font);
-		button.setBackground(bg);
-
-		button.addKeyListener(new KeyAdapter() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
-			 */
-			public void keyReleased(KeyEvent e) {
-				if( e.character == SWT.ESC ) {
-					fireCancelEditor();
-				}
-			}
-
-		});
-
-		return button;
-	}
-
-	protected Object doGetValue() {
-		return new Boolean(button.getSelection());
-	}
-
-	protected void doSetValue(Object value) {
-		boolean selection = Boolean.TRUE.equals(value);
-		button.setSelection(selection);
-	}
-
-	protected void doSetFocus() {
-		if (button != null) {
-			button.setFocus();
-		}
-	}
-
-	protected void deactivate(ColumnViewerEditorDeactivationEvent event) {
-		super.deactivate(event);
-		if( event.eventType == ColumnViewerEditorDeactivationEvent.EDITOR_CANCELED ) {
-			row.setImage(index, restoredImage);
-			row.setText(index, restoredText);
-		}
-		row = null;
-		restoredImage = null;
-		restoredText = null;
-	}
-
-	public void activate(ColumnViewerEditorActivationEvent activationEvent) {
-		ViewerCell cell = (ViewerCell)activationEvent.getSource();
-		index = cell.getColumnIndex();
-		row = (ViewerRow) cell.getViewerRow().clone();
-		restoredImage = row.getImage(index);
-		restoredText = row.getText(index);
-		row.setImage(index, null);
-		row.setText(index, ""); //$NON-NLS-1$
-		super.activate(activationEvent);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.CellEditor#getDoubleClickTimeout()
-	 */
-	protected int getDoubleClickTimeout() {
-		return 0;
-	}
-
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/CursorCellHighlighter.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/CursorCellHighlighter.java
deleted file mode 100644
index 49395bf..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/CursorCellHighlighter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationListener;
-import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;
-import org.eclipse.jface.viewers.FocusCellHighlighter;
-import org.eclipse.jface.viewers.ViewerCell;
-
-
-
-/**
- * @since 3.3
- * 
- */
-public class CursorCellHighlighter extends FocusCellHighlighter {
-	private ColumnViewer viewer;
-
-	private AbstractCellCursor cursor;
-
-	/**
-	 * @param viewer
-	 * @param cursor
-	 */
-	public CursorCellHighlighter(ColumnViewer viewer,
-			AbstractCellCursor cursor) {
-		super(viewer);
-		this.viewer = viewer;
-		this.cursor = cursor;
-	}
-
-	protected void focusCellChanged(ViewerCell cell) {
-		super.focusCellChanged(cell);
-		if( ! viewer.isCellEditorActive() ) {
-			System.err.println("SHOW EDITOR"); //$NON-NLS-1$
-			cursor.setSelection(cell, 0); //TODO THE TIME
-			cursor.setVisible(true);
-		}
-	}
-	
-	protected void init() {
-		hookListener();
-	}
-
-	private void hookListener() {
-		ColumnViewerEditorActivationListener listener = new ColumnViewerEditorActivationListener() {
-
-			public void afterEditorActivated(
-					ColumnViewerEditorActivationEvent event) {
-				
-			}
-
-			public void afterEditorDeactivated(
-					ColumnViewerEditorDeactivationEvent event) {
-				cursor.setVisible(true);
-				cursor.setSelection(getFocusCell(), 0); //TODO THE TIME
-			}
-
-			public void beforeEditorActivated(
-					ColumnViewerEditorActivationEvent event) {
-				cursor.setVisible(false);
-			}
-
-			public void beforeEditorDeactivated(
-					ColumnViewerEditorDeactivationEvent event) {
-				
-			}
-		};
-		
-		viewer.getColumnViewerEditor().addEditorActivationListener(listener);
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/FocusBorderCellHighlighter.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/FocusBorderCellHighlighter.java
deleted file mode 100644
index 0725c4b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/FocusBorderCellHighlighter.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.FocusCellHighlighter;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerRow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-public class FocusBorderCellHighlighter extends FocusCellHighlighter {
-	private ViewerCell oldCell;
-
-	/**
-	 * @param viewer
-	 *            the viewer
-	 */
-	public FocusBorderCellHighlighter(ColumnViewer viewer) {
-		super(viewer);
-		hookListener(viewer);
-	}
-
-	private void markFocusedCell(Event event, ViewerCell cell) {
-		GC gc = event.gc;
-
-		Rectangle rect = event.getBounds();
-		gc.drawFocus(rect.x, rect.y, rect.width, rect.height);
-
-		event.detail &= ~SWT.SELECTED;
-	}
-
-	private void removeSelectionInformation(Event event, ViewerCell cell) {
-
-	}
-
-	private void hookListener(final ColumnViewer viewer) {
-
-		Listener listener = new Listener() {
-
-			public void handleEvent(Event event) {
-				if ((event.detail & SWT.SELECTED) > 0) {
-					ViewerCell focusCell = getFocusCell();
-					ViewerRow row = focusCell.getViewerRow();
-
-					Assert
-							.isNotNull(row,
-									"Internal structure invalid. Item without associated row is not possible."); //$NON-NLS-1$
-
-					ViewerCell cell = row.getCell(event.index);
-
-					if (focusCell == null || !cell.equals(focusCell)) {
-						removeSelectionInformation(event, cell);
-					} else {
-						markFocusedCell(event, cell);
-					}
-				}
-			}
-
-		};
-		viewer.getControl().addListener(SWT.EraseItem, listener);
-	}
-
-	/**
-	 * @param cell
-	 *            the cell which is colored
-	 * @return the color
-	 */
-	protected Color getSelectedCellBackgroundColor(ViewerCell cell) {
-		return null;
-	}
-
-	/**
-	 * @param cell
-	 *            the cell which is colored
-	 * @return the color
-	 */
-	protected Color getSelectedCellForegroundColor(ViewerCell cell) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.FocusCellHighlighter#focusCellChanged(org.eclipse.jface.viewers.ViewerCell)
-	 */
-	protected void focusCellChanged(ViewerCell cell) {
-		super.focusCellChanged(cell);
-
-		// Redraw new area
-		if (cell != null) {
-			Rectangle rect = cell.getBounds();
-			int x = cell.getColumnIndex() == 0 ? 0 : rect.x;
-			int width = cell.getColumnIndex() == 0 ? rect.x + rect.width
-					: rect.width;
-			cell.getControl().redraw(x, rect.y, width, rect.height, true);
-		}
-
-		if (oldCell != null) {
-			Rectangle rect = oldCell.getBounds();
-			int x = oldCell.getColumnIndex() == 0 ? 0 : rect.x;
-			int width = oldCell.getColumnIndex() == 0 ? rect.x + rect.width
-					: rect.width;
-			oldCell.getControl().redraw(x, rect.y, width, rect.height, true);
-		}
-
-		this.oldCell = cell;
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet001TableViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet001TableViewer.java
deleted file mode 100644
index 017b19a..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet001TableViewer.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TableViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet001TableViewer {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet001TableViewer(Shell shell) {
-		final TableViewer v = new TableViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet001TableViewer(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet002TreeViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet002TreeViewer.java
deleted file mode 100644
index 68c6fcf..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet002TreeViewer.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet002TreeViewer {
-	private class MyContentProvider implements ITreeContentProvider {
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel)inputElement).child.toArray();
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if( element == null) {
-				return null;
-			}
-			
-			return ((MyModel)element).parent;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel)element).child.size() > 0;
-		}
-		
-	}
-	
-	public class MyModel {
-		public MyModel parent;
-		public ArrayList child = new ArrayList();
-		public int counter;
-		
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			String rv = "Item ";
-			if( parent != null ) {
-				rv = parent.toString() + ".";
-			}
-			
-			rv += counter;
-			
-			return rv;
-		}
-	}
-	
-	public Snippet002TreeViewer(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-	
-	private MyModel createModel() {
-		
-		MyModel root = new MyModel(0,null);
-		root.counter = 0;
-		
-		MyModel tmp;
-		for( int i = 1; i < 10; i++ ) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for( int j = 1; j < i; j++ ) {
-				tmp.child.add(new MyModel(j,tmp));
-			}
-		}
-		
-		return root;
-	}
-	
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet002TreeViewer(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet003TableLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet003TableLabelProvider.java
deleted file mode 100644
index 4dbd122..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet003TableLabelProvider.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example usage of ITableLabelProvider using images and labels
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet003TableLabelProvider {
-	private static Image[] images;
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public class MyLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if( columnIndex == 1 ) {
-				return images[((MyModel)element).counter%4];
-			}
-			
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-		
-	}
-	
-	private static Image createImage(Display display, int red, int green, int blue) {
-		Color color = new Color(display,red,green,blue);
-		Image image = new Image(display,10,10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-		
-		return image;
-	}
-	
-	public Snippet003TableLabelProvider(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		
-		TableColumn column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		
-		column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		
-		images = new Image[4];
-		images[0] = createImage(display,0,0,255);
-		images[1] = createImage(display,0,255,255);
-		images[2] = createImage(display,0,255,0);
-		images[3] = createImage(display,255,0,255);
-		
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet003TableLabelProvider(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		for( int i = 0; i < images.length; i++ ) {
-			images[i].dispose();
-		}
-		
-		display.dispose ();
-		
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet004HideSelection.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet004HideSelection.java
deleted file mode 100644
index cfd639b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet004HideSelection.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Snippet that hides the selection when nothing is selected.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet004HideSelection {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet004HideSelection(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().addMouseListener(new MouseAdapter() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.MouseAdapter#mouseDown(org.eclipse.swt.events.MouseEvent)
-			 */
-			public void mouseDown(MouseEvent e) {
-				if( v.getTable().getItem(new Point(e.x,e.y)) == null ) {
-					v.setSelection(new StructuredSelection());
-				}
-			}
-			
-		});
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet004HideSelection(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet005TreeCustomMenu.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet005TreeCustomMenu.java
deleted file mode 100644
index 46fd640..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet005TreeCustomMenu.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Customized context menu based on TreeItem-Selection
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet005TreeCustomMenu {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public Snippet005TreeCustomMenu(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-
-		final Action a = new Action("") {
-		};
-		final MenuManager mgr = new MenuManager();
-		mgr.setRemoveAllWhenShown(true);
-
-		mgr.addMenuListener(new IMenuListener() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.action.IMenuListener#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
-			 */
-			public void menuAboutToShow(IMenuManager manager) {
-				IStructuredSelection selection = (IStructuredSelection) v
-						.getSelection();
-				if (!selection.isEmpty()) {
-					a.setText("Action for "
-							+ ((MyModel) selection.getFirstElement())
-									.toString());
-					mgr.add(a);
-				}
-			}
-		});
-		v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet005TreeCustomMenu(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java
deleted file mode 100644
index 80c99f6..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.OwnerDrawLabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-public class Snippet006TableMultiLineCells {
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-		Shell shell = new Shell(display, SWT.CLOSE);
-		shell.setSize(400, 400);
-		shell.setLayout(new GridLayout());
-
-		Snippet006TableMultiLineCells example = new Snippet006TableMultiLineCells();
-		example.createPartControl(shell);
-
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	class LineEntry {
-
-		String line;
-
-		int columnWidth;
-
-		/**
-		 * Create a new instance of the receiver with name text constrained to a
-		 * column of width.
-		 * 
-		 * @param text
-		 * @param width
-		 */
-		LineEntry(String text, int width) {
-			line = text;
-			columnWidth = width;
-		}
-
-		/**
-		 * Get the height of the event.
-		 * 
-		 * @param index
-		 * @return int
-		 */
-		public int getHeight(Event event) {
-			event.gc.setLineWidth(columnWidth);
-			return event.gc.textExtent(line).y;
-
-		}
-
-		/**
-		 * Get the width of the event.
-		 * 
-		 * @param index
-		 * @return
-		 */
-		public int getWidth(Event event) {
-
-			return columnWidth;
-		}
-
-		/**
-		 * Get the font we are using.
-		 * 
-		 * @return Font
-		 */
-		protected Font getFont() {
-			return JFaceResources.getFont(JFaceResources.HEADER_FONT);
-		}
-
-		/**
-		 * @param event
-		 */
-		public void draw(Event event) {
-			event.gc.drawText(line, event.x, event.y);
-
-		}
-	}
-
-	private TableViewer viewer;
-
-	private LineEntry[] entries;
-
-	public Snippet006TableMultiLineCells() {
-		String[] lines = new String[] {
-				"This day is called the feast of Crispian:",
-				"He that outlives this day, \n and comes safe home,",
-				"Will stand a tip-toe when the day is named,",
-				"And rouse him at the name of Crispian.",
-				"He that shall live this day,\n and see old age,",
-				"Will yearly on the vigil feast his neighbours,",
-				"And say 'To-morrow is Saint Crispian:'",
-				"Then will he strip his sleeve and show his scars.",
-				"And say 'These wounds I had on Crispin's day.'",
-				"Old men forget:\n yet all shall be forgot,",
-				"But he'll remember with advantages",
-				"What feats he did that day:\n then shall our names.",
-				"Familiar in his mouth as household words",
-				"Harry the king, Bedford and Exeter,",
-				"Warwick and Talbot,\n Salisbury and Gloucester,",
-				"Be in their flowing cups freshly remember'd.",
-				"This story shall the good man teach his son;",
-				"And Crispin Crispian shall ne'er go by,",
-				"From this day to the ending of the world,",
-				"But we in it shall be remember'd;",
-				"We few,\n we happy few,\n we band of brothers;",
-				"For he to-day that sheds his blood with me",
-				"Shall be my brother;\n be he ne'er so vile,",
-				"This day shall gentle his condition:",
-				"And gentlemen in England now a-bed",
-				"Shall think themselves accursed they were not here,",
-				"And hold their manhoods cheap whiles any speaks",
-				"That fought with us upon Saint Crispin's day." };
-
-		entries = new LineEntry[lines.length];
-		for (int i = 0; i < lines.length; i++) {
-			entries[i] = new LineEntry(lines[i], 35);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.FULL_SELECTION);
-
-		viewer.setContentProvider(new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return entries;
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-			 *      java.lang.Object, java.lang.Object)
-			 */
-			public void inputChanged(org.eclipse.jface.viewers.Viewer viewer,
-					Object oldInput, Object newInput) {
-			}
-
-		});
-		createColumns();
-
-		viewer.setLabelProvider(new OwnerDrawLabelProvider() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#measure(org.eclipse.swt.widgets.Event, java.lang.Object)
-			 */
-			protected void measure(Event event, Object element) {
-				LineEntry line = (LineEntry) element;
-				Point size = event.gc.textExtent(line.line);
-				event.width = viewer.getTable().getColumn(event.index).getWidth();
-				int lines = size.x / event.width + 1;
-				event.height = size.y * lines;
-
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#paint(org.eclipse.swt.widgets.Event,
-			 *      java.lang.Object)
-			 */
-			protected void paint(Event event, Object element) {
-
-				LineEntry entry = (LineEntry) element;
-				event.gc.drawText(entry.line, event.x, event.y, true);
-			}
-		});
-		viewer.setInput(this);
-
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
-
-		viewer.getControl().setLayoutData(data);
-		OwnerDrawLabelProvider.setUpOwnerDraw(viewer);
-
-		viewer.setSelection(new StructuredSelection(entries[1]));
-	}
-
-	/**
-	 * Create the columns to be used in the tree.
-	 */
-	private void createColumns() {
-		TableLayout layout = new TableLayout();
-		viewer.getTable().setLayout(layout);
-		viewer.getTable().setHeaderVisible(true);
-		viewer.getTable().setLinesVisible(true);
-
-		TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, 0);
-		layout.addColumnData(new ColumnPixelData(350));
-		tc.setText("Lines");
-
-	}
-
-	public void setFocus() {
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java
deleted file mode 100644
index 4c0e623..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * TableViewer: Hide full selection
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet007FullSelection {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet007FullSelection(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter + "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-				TableItem item = (TableItem)element;
-				((MyModel)item.getData()).counter = Integer.parseInt(value.toString());
-				v.update(item.getData(), null);
-			}
-			
-		});
-		v.setColumnProperties(new String[] { "column1", "column2" });
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()),new TextCellEditor(v.getTable()) });
-		
-		TableColumn column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(100);
-		column.setText("Column 1");
-		
-		column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(100);
-		column.setText("Column 2");
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		
-		v.getTable().addListener(SWT.EraseItem, new Listener() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-			 */
-			public void handleEvent(Event event) {
-				event.detail &= ~SWT.SELECTED;
-			}
-		});
-		
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet007FullSelection(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet008RevealElement.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet008RevealElement.java
deleted file mode 100644
index b275ed9..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet008RevealElement.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Scroll a Viewer 99th element
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet008RevealElement {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet008RevealElement(Shell shell) {
-		final TableViewer v = new TableViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.reveal(model[99]);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[100];
-		
-		for( int i = 0; i < 100; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet008RevealElement(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet009CellEditors.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet009CellEditors.java
deleted file mode 100644
index 46f6549..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet009CellEditors.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Edit cell values in a table
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet009CellEditors {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet009CellEditors(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(new ICellModifier() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-			 */
-			public boolean canModify(Object element, String property) {
-				return ((MyModel)element).counter % 2 == 0;
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-			 */
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter + "";
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-			 */
-			public void modify(Object element, String property, Object value) {
-				TableItem item = (TableItem)element;
-				((MyModel)item.getData()).counter = Integer.parseInt(value.toString());
-				v.update(item.getData(), null);
-			}
-			
-		});
-		v.setColumnProperties(new String[] { "column1" });
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()) });
-		
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet009CellEditors(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java
deleted file mode 100644
index 05db09f..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     oliver.schaefer@mbtech-services.com - Fix for Bug 225051 [Snippets] Snippet010OwnerDraw - Wrong german flag
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.OwnerDrawLabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.TextLayout;
-import org.eclipse.swt.graphics.TextStyle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-public class Snippet010OwnerDraw {
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-		Shell shell = new Shell(display, SWT.CLOSE);
-		shell.setSize(400, 400);
-		shell.setLayout(new GridLayout());
-
-		Snippet010OwnerDraw example = new Snippet010OwnerDraw();
-		example.createPartControl(shell);
-
-		shell.open();
-
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		display.dispose();
-	}
-
-	private static int COLUMN_COUNT = 3;
-
-	class CountryEntry {
-
-		String name;
-
-		String cupYear;
-
-		private String baseName;
-
-		/**
-		 * Create a new instance of the receiver.
-		 * 
-		 * @param countryName
-		 * @param worldCupYear
-		 */
-		CountryEntry(String countryName, String englishName, String worldCupYear) {
-			name = countryName;
-			cupYear = worldCupYear;
-			baseName = englishName;
-		}
-
-		/**
-		 * @param index
-		 * @return
-		 */
-		public int getHeight(Event event) {
-			switch (event.index) {
-			case 0:
-				return event.gc.textExtent(name).y;
-			case 1:
-				return 50;
-			case 2:
-				return event.gc.textExtent(cupYear).y;
-			default:
-				return 10;
-			}
-		}
-
-		/**
-		 * @param index
-		 * @return
-		 */
-		public int getWidth(Event event) {
-
-			switch (event.index) {
-			case 0:
-				return event.gc.textExtent(getDisplayString().toString()).x + 4;
-
-			case 1:
-				return 200;
-
-			case 2:
-				return event.gc.textExtent(cupYear).x + 5;
-
-			default:
-				return 10;
-			}
-		}
-
-		/**
-		 * Draw the flag in bounds.
-		 * 
-		 * @param event
-		 */
-		protected void drawFlag(Event event) {
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_BLUE));
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			event.gc.fillRectangle(bounds);
-		}
-
-		/**
-		 * Draw the cup year
-		 * 
-		 * @param event
-		 */
-		private void drawCupYear(Event event) {
-			event.gc.drawText(cupYear, event.x, event.y);
-
-		}
-
-		/**
-		 * Draw the name of the receiver.
-		 * 
-		 * @param event
-		 */
-		protected void drawName(Event event) {
-
-			StringBuffer buffer = getDisplayString();
-
-			Display display = viewer.getControl().getDisplay();
-			TextLayout layout = new TextLayout(display);
-			layout.setText(buffer.toString());
-
-			TextStyle plain = new TextStyle(JFaceResources
-					.getFont(JFaceResources.DEFAULT_FONT), display
-					.getSystemColor(SWT.COLOR_LIST_FOREGROUND), display
-					.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-
-			TextStyle italic = new TextStyle(JFaceResources.getFontRegistry()
-					.getItalic(JFaceResources.DEFAULT_FONT), display
-					.getSystemColor(SWT.COLOR_BLUE), display
-					.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-
-			layout.setStyle(plain, 0, name.length() - 1);
-			layout.setStyle(italic, name.length(), buffer.length() - 1);
-
-			layout.draw(event.gc, event.x, event.y);
-
-		}
-
-		/**
-		 * @return
-		 */
-		private StringBuffer getDisplayString() {
-			StringBuffer buffer = new StringBuffer();
-			buffer.append(name);
-			buffer.append(" (");
-			buffer.append(baseName);
-			buffer.append(")");
-			return buffer;
-		}
-
-		/**
-		 * @param event
-		 */
-		public void draw(Event event) {
-
-			switch (event.index) {
-			case 0:
-				drawName(event);
-				break;
-			case 1:
-				drawFlag(event);
-				break;
-			case 2:
-				drawCupYear(event);
-				break;
-
-			default:
-				break;
-			}
-
-		}
-	}
-
-	private class GermanyEntry extends CountryEntry {
-
-		GermanyEntry() {
-			super("Deutschland", "Germany", "1954 1974 1990");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			int stripeHeight = bounds.height / 3;
-			Rectangle stripe = new Rectangle(bounds.x, bounds.y, bounds.width,
-					stripeHeight);
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_BLACK));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_YELLOW));
-			event.gc.fillRectangle(stripe);
-
-		}
-
-	}
-
-	private class AustriaEntry extends CountryEntry {
-
-		AustriaEntry() {
-			super("\u00D6sterreich", "Austria", "TBD");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			int stripeHeight = bounds.height / 3;
-			Rectangle stripe = new Rectangle(bounds.x, bounds.y, bounds.width,
-					stripeHeight);
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_WHITE));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-		}
-	}
-
-	private class EnglandEntry extends CountryEntry {
-		EnglandEntry() {
-			super("Blighty", "England", "1966");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(new Rectangle(bounds.width / 2 + bounds.x
-					- 5, bounds.y, 10, bounds.height));
-			event.gc.fillRectangle(new Rectangle(bounds.x, bounds.height / 2
-					+ bounds.y - 5, bounds.width, 10));
-
-		}
-	}
-
-	private TableViewer viewer;
-
-	private CountryEntry[] entries;
-
-	public Snippet010OwnerDraw() {
-		entries = new CountryEntry[3];
-		entries[0] = new AustriaEntry();
-		entries[1] = new GermanyEntry();
-		entries[2] = new EnglandEntry();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.FULL_SELECTION);
-
-		viewer.setContentProvider(new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return entries;
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-			 *      java.lang.Object, java.lang.Object)
-			 */
-			public void inputChanged(org.eclipse.jface.viewers.Viewer viewer,
-					Object oldInput, Object newInput) {
-			}
-
-		});
-		createColumns();
-
-		viewer.setLabelProvider(new OwnerDrawLabelProvider() {
-	
-
-			protected void measure(Event event, Object element) {
-				CountryEntry country = (CountryEntry) element;
-
-				event.setBounds(new Rectangle(event.x, event.y, country.getWidth(event),
-						country.getHeight(event)));
-
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#paint(org.eclipse.swt.widgets.Event,
-			 *      java.lang.Object)
-			 */
-			protected void paint(Event event, Object element) {
-				CountryEntry entry = (CountryEntry) element;
-				entry.draw(event);
-
-			}
-		});
-		
-		OwnerDrawLabelProvider.setUpOwnerDraw(viewer);
-		viewer.setInput(this);
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
-
-		viewer.getControl().setLayoutData(data);
-
-		viewer.setSelection(new StructuredSelection(entries[1]));
-	}
-
-	/**
-	 * Create the columns to be used in the tree.
-	 */
-	private void createColumns() {
-		TableLayout layout = new TableLayout();
-		viewer.getTable().setLayout(layout);
-		viewer.getTable().setHeaderVisible(true);
-		viewer.getTable().setLinesVisible(true);
-
-		for (int i = 0; i < COLUMN_COUNT; i++) {
-			TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, i);
-			layout.addColumnData(new ColumnPixelData(100));
-			tc.setText(getTitleFor(i));
-		}
-		;
-	}
-
-	/**
-	 * @param i
-	 * @return
-	 */
-	private String getTitleFor(int i) {
-		switch (i) {
-		case 0:
-			return "Name";
-		case 1:
-			return "Flag";
-		case 2:
-			return "World Cup Year";
-		}
-		return "Unknown";
-	}
-
-	public void setFocus() {
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java
deleted file mode 100644
index c66dfd9..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     IBM - Improvement for Bug 159625 [Snippets] Update Snippet011CustomTooltips to reflect new API
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Explore New API: JFace custom tooltips drawing.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.3
- */
-public class Snippet011CustomTooltips {
-	private static class MyContentProvider implements
-			IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return new String[] { "one", "two", "three", "four", "five", "six",
-					"seven", "eight", "nine", "ten" };
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		TableViewer v = new TableViewer(shell, SWT.FULL_SELECTION);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		v.setContentProvider(new MyContentProvider());
-		ColumnViewerToolTipSupport.enableFor(v,ToolTip.NO_RECREATE);
-		
-		CellLabelProvider labelProvider = new CellLabelProvider() {
-
-			public String getToolTipText(Object element) {
-				return "Tooltip (" + element + ")";
-			}
-
-			public Point getToolTipShift(Object object) {
-				return new Point(5, 5);
-			}
-
-			public int getToolTipDisplayDelayTime(Object object) {
-				return 2000;
-			}
-
-			public int getToolTipTimeDisplayed(Object object) {
-				return 5000;
-			}
-
-			public void update(ViewerCell cell) {
-				cell.setText(cell.getElement().toString());
-
-			}
-		};
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.setLabelProvider(labelProvider);
-		column.getColumn().setText("Column 1");
-		column.getColumn().setWidth(100);
-
-		v.setInput("");
-
-		shell.setSize(200, 200);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-
-		display.dispose();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet013TableViewerNoMandatoryLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet013TableViewerNoMandatoryLabelProvider.java
deleted file mode 100644
index 1de89ef..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet013TableViewerNoMandatoryLabelProvider.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example usage of none mandatory interfaces of ITableFontProvider and
- * ITableColorProvider
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet013TableViewerNoMandatoryLabelProvider {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet013TableViewerNoMandatoryLabelProvider(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet013TableViewerNoMandatoryLabelProvider(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.java
deleted file mode 100644
index e3c8aae..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet014TreeViewerNoMandatoryLabelProvider {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet014TreeViewerNoMandatoryLabelProvider(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		
-		TreeColumn column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		
-		column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet014TreeViewerNoMandatoryLabelProvider(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet015CustomTooltipsForTree.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet015CustomTooltipsForTree.java
deleted file mode 100644
index 86312d4..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet015CustomTooltipsForTree.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Explore New API: JFace custom tooltips drawing.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.3M2
- */
-public class Snippet015CustomTooltipsForTree {
-	private static class MyContentProvider implements ITreeContentProvider {
-
-		private static final String ROOT = "Root";
-
-		public Object[] getElements(Object inputElement) {
-			return new Object[]{ROOT};
-		}
-
-		public void dispose() {
-			
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-			
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			if(parentElement.equals(ROOT))
-				return new String[] { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" };
-			return new Object[0];
-		}
-
-		public Object getParent(Object element) {
-			return null;
-		}
-
-		public boolean hasChildren(Object element) {
-			return element.equals(ROOT);
-		}
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final Display display = new Display ();
-		Shell shell = new Shell (display);
-	    shell.setLayout(new FillLayout());
-	    
-	    TreeViewer v = new TreeViewer(shell,SWT.FULL_SELECTION);
-	    v.getTree().setLinesVisible(true);
-	    v.getTree().setHeaderVisible(true);
-	    ColumnViewerToolTipSupport.enableFor(v);
-	    
-	    v.setContentProvider(new MyContentProvider());
-	    
-	    CellLabelProvider labelProvider = new CellLabelProvider() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipText(java.lang.Object)
-			 */
-			public String getToolTipText(Object element) {
-				return "Tooltip (" + element + ")";
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipShift(java.lang.Object)
-			 */
-			public Point getToolTipShift(Object object) {
-				return new Point(5,5);
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipDisplayDelayTime(java.lang.Object)
-			 */
-			public int getToolTipDisplayDelayTime(Object object) {
-				return 2000;
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipTimeDisplayed(java.lang.Object)
-			 */
-			public int getToolTipTimeDisplayed(Object object) {
-				return 5000;
-			}
-			
-			public void update(ViewerCell cell) {
-				cell.setText(cell.getElement().toString());
-				
-			}
-	    };
-	    
-	    
-	    v.setLabelProvider(labelProvider);
-	    v.setInput("");
-	    
-	    shell.setSize(200,200);
-	    shell.open ();
-	    
-	    while (!shell.isDisposed()) {
-	        if (!display.readAndDispatch ()) {
-	        	display.sleep ();
-	        }
-	    }
-	    
-	    display.dispose ();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet017TableViewerHideShowColumns.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet017TableViewerHideShowColumns.java
deleted file mode 100644
index 12080b2..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet017TableViewerHideShowColumns.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example usage of none mandatory interfaces of ITableFontProvider and
- * ITableColorProvider
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.2
- */
-public class Snippet017TableViewerHideShowColumns {
-	private class ShrinkThread extends Thread {
-		private int width = 0;
-		private TableColumn column;
-		
-		public ShrinkThread(int width, TableColumn column) {
-			super();
-			this.width = width;
-			this.column = column;
-		}
-		
-		public void run() {
-			column.getDisplay().syncExec(new Runnable() {
-
-				public void run() {
-					column.setData("restoredWidth", new Integer(width));
-				}
-			});
-			
-			for( int i = width; i >= 0; i-- ) {
-				final int index = i;
-				column.getDisplay().syncExec(new Runnable() {
-
-					public void run() {
-						column.setWidth(index);
-					}
-					
-				});
-			}
-		}
-	};
-	
-	private class ExpandThread extends Thread {
-		private int width = 0;
-		private TableColumn column;
-		
-		public ExpandThread(int width, TableColumn column) {
-			super();
-			this.width = width;
-			this.column = column;
-		}
-		
-		public void run() {
-			for( int i = 0; i <= width; i++ ) {
-				final int index = i;
-				column.getDisplay().syncExec(new Runnable() {
-
-					public void run() {
-						column.setWidth(index);
-					}
-					
-				});
-			}
-		}
-	}
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-	}
-
-	public Snippet017TableViewerHideShowColumns(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 3");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		addMenu(v);
-	}
-
-	private void addMenu(TableViewer v) {
-		final MenuManager mgr = new MenuManager();
-		Action action;
-		
-		for( int i = 0; i < v.getTable().getColumnCount(); i++ ) {
-			final TableColumn column = v.getTable().getColumn(i);
-			
-			action = new Action(v.getTable().getColumn(i).getText(),SWT.CHECK) {
-				public void runWithEvent(Event event) {
-					if( ! isChecked() ) {
-						ShrinkThread t = new ShrinkThread(column.getWidth(),column);
-						t.run();
-					} else {
-						ExpandThread t = new ExpandThread(((Integer)column.getData("restoredWidth")).intValue(),column);
-						t.run();
-					}
-				}
-				
-			};
-			action.setChecked(true);
-			mgr.add(action);
-		}
-		
-		v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
-	}
-	
-	
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet017TableViewerHideShowColumns(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet018TableViewerAddRemoveColumnsWithEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet018TableViewerAddRemoveColumnsWithEditing.java
deleted file mode 100644
index 5c90d00..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet018TableViewerAddRemoveColumnsWithEditing.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example of adding and removing columns in conjunction with JFace-Viewers
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.2
- */
-public class Snippet018TableViewerAddRemoveColumnsWithEditing {
-
-	public class Person {
-		public String givenname;
-
-		public String surname;
-
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-
-		public String getValue(String name) {
-			Field field;
-			try {
-				field = getClass().getDeclaredField(name);
-				return (String) field.get(this);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-
-			return "ERROR";
-		}
-
-		public void setValue(String name, String value) {
-			Field field;
-			try {
-				field = getClass().getDeclaredField(name);
-				field.set(this, value);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-		private TableViewer viewer;
-
-		public MyLabelProvider(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return ((Person) element)
-					.getValue(viewer.getColumnProperties()[columnIndex]
-							.toString());
-		}
-	}
-
-	public class MyCellModifier implements ICellModifier {
-		private TableViewer viewer;
-
-		public MyCellModifier(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public boolean canModify(Object element, String property) {
-			return true;
-		}
-
-		public Object getValue(Object element, String property) {
-			return ((Person) element).getValue(property);
-		}
-
-		public void modify(Object element, String property, Object value) {
-			((Person) ((Item) element).getData()).setValue(property, value
-					.toString());
-			viewer.update(((Item) element).getData(), null);
-		}
-
-	}
-
-	private int activeColumn = -1;
-
-	public Snippet018TableViewerAddRemoveColumnsWithEditing(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider(v));
-		v.setContentProvider(new MyContentProvider());
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()),
-				new TextCellEditor(v.getTable()),
-				new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new MyCellModifier(v));
-
-		v.setColumnProperties(new String[] { "givenname", "surname" });
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Givenname");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Surname");
-
-		Person[] model = createModel();
-
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		addMenu(v);
-		triggerColumnSelectedColumn(v);
-	}
-
-	private void triggerColumnSelectedColumn(final TableViewer v) {
-		v.getTable().addMouseListener(new MouseAdapter() {
-
-			public void mouseDown(MouseEvent e) {
-				int x = 0;
-				for (int i = 0; i < v.getTable().getColumnCount(); i++) {
-					x += v.getTable().getColumn(i).getWidth();
-					if (e.x <= x) {
-						activeColumn = i;
-						break;
-					}
-				}
-			}
-
-		});
-	}
-
-	private void addMenu(final TableViewer v) {
-		final MenuManager mgr = new MenuManager();
-
-		final Action insertEmailBefore = new Action("Insert E-Mail before") {
-			public void run() {
-				addEmailColumn(v, activeColumn);
-			}
-		};
-
-		final Action insertEmailAfter = new Action("Insert E-Mail after") {
-			public void run() {
-				addEmailColumn(v, activeColumn + 1);
-			}
-		};
-
-		final Action removeEmail = new Action("Remove E-Mail") {
-			public void run() {
-				removeEmailColumn(v);
-			}
-		};
-
-		mgr.setRemoveAllWhenShown(true);
-		mgr.addMenuListener(new IMenuListener() {
-
-			public void menuAboutToShow(IMenuManager manager) {
-				if (v.getTable().getColumnCount() == 2) {
-					manager.add(insertEmailBefore);
-					manager.add(insertEmailAfter);
-				} else {
-					manager.add(removeEmail);
-				}
-			}
-
-		});
-
-		v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
-	}
-
-	private void removeEmailColumn(TableViewer v) {
-		int emailIndex = -1;
-		for (int i = 0; i < v.getColumnProperties().length; i++) {
-			if (v.getColumnProperties()[i].toString().equals("email")) {
-				emailIndex = i;
-				break;
-			}
-		}
-
-		ArrayList list = new ArrayList(Arrays.asList(v.getCellEditors()));
-		list.remove(emailIndex);
-		CellEditor[] editors = new CellEditor[list.size()];
-		list.toArray(editors);
-		v.setCellEditors(editors);
-
-		list = new ArrayList(Arrays.asList(v.getColumnProperties()));
-		list.remove(emailIndex);
-		String[] columnProperties = new String[list.size()];
-		list.toArray(columnProperties);
-		v.setColumnProperties(columnProperties);
-
-		v.getTable().getColumn(emailIndex).dispose();
-
-		v.refresh();
-	}
-
-	private void addEmailColumn(TableViewer v, int columnIndex) {
-		ArrayList list = new ArrayList(Arrays.asList(v.getCellEditors()));
-		list.add(columnIndex, new TextCellEditor(v.getTable()));
-		CellEditor[] editors = new CellEditor[list.size()];
-		list.toArray(editors);
-		v.setCellEditors(editors);
-
-		list = new ArrayList(Arrays.asList(v.getColumnProperties()));
-		list.add(columnIndex, "email");
-		String[] columnProperties = new String[list.size()];
-		list.toArray(columnProperties);
-		v.setColumnProperties(columnProperties);
-
-		// 1. Add new column
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE,
-				columnIndex);
-		column.setText("E-Mail");
-
-		// 2. Update the viewer
-		v.refresh();
-
-		// 3. Make the colum visible
-		column.setWidth(200);
-	}
-
-	private Person[] createModel() {
-		Person[] persons = new Person[3];
-		persons[0] = new Person("Tom", "Schindl", "tom.schindl@bestsolution.at");
-		persons[1] = new Person("Boris", "Bokowski",
-				"boris_bokowski@ca.ibm.com");
-		persons[2] = new Person("Tod", "Creasey", "tod_creasey@ca.ibm.com");
-
-		return persons;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet018TableViewerAddRemoveColumnsWithEditing(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.java
deleted file mode 100644
index 670e8a6..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.internal.ConfigureColumnsDialog;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.SameShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Explore the new API added in 3.3 and see how easily you can create reusable
- * components
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.2
- */
-public class Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI {
-
-	public class Person {
-		public String givenname;
-
-		public String surname;
-
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-	}
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	
-
-	private class GivenNameLabelProvider extends ColumnLabelProvider {
-		public String getText(Object element) {
-			return ((Person) element).givenname;
-		}
-	}
-	
-	private class GivenNameEditing extends EditingSupport {
-		private TextCellEditor cellEditor;
-		
-		public GivenNameEditing(TableViewer viewer) {
-			super(viewer);
-			cellEditor = new TextCellEditor(viewer.getTable());
-		}
-		
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-		
-		protected CellEditor getCellEditor(Object element) {
-			return cellEditor;
-		}
-
-		protected Object getValue(Object element) {
-			return ((Person) element).givenname;
-		}
-
-		protected void setValue(Object element, Object value) {
-			((Person) element).givenname = value.toString();
-			getViewer().update(element, null);
-		}
-	}
-	
-	private class SurNameLabelProvider extends ColumnLabelProvider {
-		public String getText(Object element) {
-			return ((Person) element).surname;
-		}
-	}
-	
-	private class SurNameEditing extends EditingSupport {
-		private TextCellEditor cellEditor;
-		
-		public SurNameEditing( TableViewer viewer ) {
-			super(viewer);
-			cellEditor = new TextCellEditor(viewer.getTable());
-		}
-		
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-		
-		protected CellEditor getCellEditor(Object element) {
-			return cellEditor;
-		}
-
-		protected Object getValue(Object element) {
-			return ((Person) element).surname;
-		}
-
-		protected void setValue(Object element, Object value) {
-			((Person) element).surname = value.toString();
-			getViewer().update(element, null);
-		}
-	}
-	
-	private class EmailLabelProvider extends ColumnLabelProvider {
-		public String getText(Object element) {
-			return ((Person) element).email;
-		}
-	}
-	
-	private class EmailEditing extends EditingSupport {
-		private TextCellEditor cellEditor;
-		
-		public EmailEditing( TableViewer viewer ) {
-			super(viewer);
-			cellEditor = new TextCellEditor(viewer.getTable());
-		}
-		
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-		
-		protected CellEditor getCellEditor(Object element) {
-			return cellEditor;
-		}
-
-		protected Object getValue(Object element) {
-			return ((Person) element).email;
-		}
-
-		protected void setValue(Object element, Object value) {
-			((Person) element).email = value.toString();
-			getViewer().update(element, null);
-		}
-	}
-	
-	private int activeColumn = -1;
-	
-	private TableViewerColumn column;
-	
-	public Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-
-		TableViewerColumn column = new TableViewerColumn(v,SWT.NONE);
-		column.setLabelProvider(new GivenNameLabelProvider());
-		column.setEditingSupport(new GivenNameEditing(v));
-		
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(true);
-
-		column = new TableViewerColumn(v,SWT.NONE);
-		column.setLabelProvider(new SurNameLabelProvider());
-		column.setEditingSupport(new SurNameEditing(v));
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(true);
-
-		Person[] model = createModel();
-
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		addMenu(v);
-		triggerColumnSelectedColumn(v);
-	}
-
-	private void triggerColumnSelectedColumn(final TableViewer v) {
-		v.getTable().addMouseListener(new MouseAdapter() {
-
-			public void mouseDown(MouseEvent e) {
-				int x = 0;
-				for (int i = 0; i < v.getTable().getColumnCount(); i++) {
-					x += v.getTable().getColumn(i).getWidth();
-					if (e.x <= x) {
-						activeColumn = i;
-						break;
-					}
-				}
-			}
-
-		});
-	}
-
-	private void removeEmailColumn(TableViewer v) {
-		column.getColumn().dispose();
-		v.refresh();
-	}
-
-	private void addEmailColumn(TableViewer v, int columnIndex) {
-		column = new TableViewerColumn(v, SWT.NONE, columnIndex);
-		column.setLabelProvider(new EmailLabelProvider());
-		column.setEditingSupport(new EmailEditing(v));
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setResizable(false);
-
-		v.refresh();
-
-		column.getColumn().setWidth(200);
-
-	}
-
-	private void addMenu(final TableViewer v) {
-		final MenuManager mgr = new MenuManager();
-
-		final Action insertEmailBefore = new Action("Insert E-Mail before") {
-			public void run() {
-				addEmailColumn(v, activeColumn);
-			}
-		};
-
-		final Action insertEmailAfter = new Action("Insert E-Mail after") {
-			public void run() {
-				addEmailColumn(v, activeColumn + 1);
-			}
-		};
-
-		final Action removeEmail = new Action("Remove E-Mail") {
-			public void run() {
-				removeEmailColumn(v);
-			}
-		};
-
-		final Action configureColumns = new Action("Configure Columns...") {
-			public void run() {
-				// Note: the following is not API!
-				new ConfigureColumnsDialog(new SameShellProvider(v.getControl()), v.getTable()).open();
-			}
-		};
-		
-		mgr.setRemoveAllWhenShown(true);
-		mgr.addMenuListener(new IMenuListener() {
-
-			public void menuAboutToShow(IMenuManager manager) {
-				if (v.getTable().getColumnCount() == 2) {
-					manager.add(insertEmailBefore);
-					manager.add(insertEmailAfter);
-				} else {
-					manager.add(removeEmail);
-				}
-				manager.add(configureColumns);
-			}
-
-		});
-
-		v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
-	}
-
-	private Person[] createModel() {
-		Person[] persons = new Person[3];
-		persons[0] = new Person("Tom", "Schindl", "tom.schindl@bestsolution.at");
-		persons[1] = new Person("Boris", "Bokowski",
-				"boris_bokowski@ca.ibm.com");
-		persons[2] = new Person("Tod", "Creasey", "tod_creasey@ca.ibm.com");
-
-		return persons;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet021CellEditorsOnDoubleClick.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet021CellEditorsOnDoubleClick.java
deleted file mode 100644
index 66ee74a..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet021CellEditorsOnDoubleClick.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     Dinko Ivanov - bug 164365
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Editor Activation on DoubleClick instead of single.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet021CellEditorsOnDoubleClick {
-	private class MyCellModifier implements ICellModifier {
-		
-		private TableViewer viewer;
-		
-		private boolean enabled;
-		
-		public void setEnabled(boolean enabled) {
-			this.enabled = enabled;
-		}
-
-
-		public void setViewer(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public boolean canModify(Object element, String property) {
-			return enabled && ((MyModel) element).counter % 2 == 0;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public Object getValue(Object element, String property) {
-			return ((MyModel) element).counter + "";
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
-		 *      java.lang.String, java.lang.Object)
-		 */
-		public void modify(Object element, String property, Object value) {
-			TableItem item = (TableItem) element;
-			((MyModel) item.getData()).counter = Integer.parseInt(value
-					.toString());
-			viewer.update(item.getData(), null);
-		}
-	}
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet021CellEditorsOnDoubleClick(Shell shell) {
-		final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		final MyCellModifier modifier = new MyCellModifier();
-		
-		table.addListener(SWT.MouseDown, new Listener() {
-
-			public void handleEvent(Event event) {
-				modifier.setEnabled(false);
-			}
-
-		});
-
-		final TableViewer v = new TableViewer(table);
-
-		table.addListener(SWT.MouseDoubleClick, new Listener() {
-
-			public void handleEvent(Event event) {
-				modifier.setEnabled(true);
-				TableItem[] selection = table.getSelection();
-
-				if (selection.length != 1) {
-					return;
-				}
-
-				TableItem item = table.getSelection()[0];
-
-				for (int i = 0; i < table.getColumnCount(); i++) {
-					if (item.getBounds(i).contains(event.x, event.y)) {
-						v.editElement(item.getData(), i);
-						modifier.setEnabled(false);
-						break;
-					}
-				}
-			}
-
-		});
-
-		modifier.setViewer(v);
-		
-		TableColumn column = new TableColumn(table, SWT.NONE);
-		column.setWidth(200);
-
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(modifier);
-		v.setColumnProperties(new String[] { "column1" });
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()) });
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet021CellEditorsOnDoubleClick(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet022TableViewerRefreshNoScroll.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet022TableViewerRefreshNoScroll.java
deleted file mode 100644
index 744f526..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet022TableViewerRefreshNoScroll.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * A simple TableViewer to demonstrating how viewers could be refresh and
- * scrolling avoided in 3.2. In 3.3 implementors should consider using the
- * {@link StructuredViewer#refresh(boolean, boolean)} instead.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet022TableViewerRefreshNoScroll {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			ArrayList list = (ArrayList) inputElement;
-			list.add(new MyModel(list.size()));
-			return list.toArray();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet022TableViewerRefreshNoScroll(Shell shell) {
-		shell.setLayout(new GridLayout(2, false));
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel(100));
-		v.getTable().setLinesVisible(true);
-		v.getTable().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-
-		Button b = new Button(shell, SWT.PUSH);
-		b.setText("Refresh with Scrolling");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				v.refresh();
-			}
-
-		});
-
-		b = new Button(shell, SWT.PUSH);
-		b.setText("Refresh with NO-Scrolling");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				v.getTable().setTopIndex(0);
-				IStructuredSelection selection = (IStructuredSelection) v
-						.getSelection();
-				v.getTable().deselectAll();
-				v.refresh();
-				if (!selection.isEmpty()) {
-					int[] indices = new int[selection.size()];
-
-					Iterator it = selection.iterator();
-					TableItem[] items = v.getTable().getItems();
-					Object modelElement;
-
-					int counter = 0;
-					while (it.hasNext()) {
-						modelElement = it.next();
-						for (int i = 0; i < items.length; i++) {
-							if (items[i].getData() == modelElement) {
-								indices[counter++] = i;
-							}
-						}
-					}
-
-					if (counter < indices.length) {
-						System.arraycopy(items, 0, indices = new int[counter],
-								0, counter);
-					}
-
-					v.getTable().select(indices);
-				}
-			}
-
-		});
-	}
-
-	private ArrayList createModel(int size) {
-		ArrayList elements = new ArrayList();
-
-		for (int i = 0; i < size; i++) {
-			elements.add(new MyModel(i));
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		new Snippet022TableViewerRefreshNoScroll(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet024TableViewerExploreNewAPI.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet024TableViewerExploreNewAPI.java
deleted file mode 100644
index c6f1a46..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet024TableViewerExploreNewAPI.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example usage of ITableLabelProvider using images and labels
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet024TableViewerExploreNewAPI {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-	}
-
-	public class Person {
-		public String givenname;
-		public String surname;
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-
-	}
-
-	protected abstract class AbstractEditingSupport extends EditingSupport {
-		private TextCellEditor editor;
-
-		public AbstractEditingSupport(TableViewer viewer) {
-			super(viewer);
-			this.editor = new TextCellEditor(viewer.getTable());
-		}
-
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-
-		protected void setValue(Object element, Object value) {
-			doSetValue(element, value);
-			getViewer().update(element, null);
-		}
-
-		protected abstract void doSetValue(Object element, Object value);
-	}
-
-	public Snippet024TableViewerExploreNewAPI(Shell shell) {
-		TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).givenname;
-			}
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).givenname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).givenname = value.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).surname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).surname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).surname = value.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).email;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).email;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).email = value.toString();
-			}
-
-		});
-
-		Person[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private Person[] createModel() {
-		Person[] elements = new Person[4];
-		elements[0] = new Person("Tom", "Schindl",
-				"tom.schindl@bestsolution.at");
-		elements[1] = new Person("Boris", "Bokowski",
-				"Boris_Bokowski@ca.ibm.com");
-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com");
-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org");
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet024TableViewerExploreNewAPI(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet025TabEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet025TabEditing.java
deleted file mode 100644
index 3dc21a8..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet025TabEditing.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Edit cell values in a table
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet025TabEditing {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet025TabEditing(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		TableColumn tc = new TableColumn(v.getTable(),SWT.NONE);
-		tc.setWidth(100);
-		tc.setText("Column 1");
-		
-		tc = new TableColumn(v.getTable(),SWT.NONE);
-		tc.setWidth(200);
-		tc.setText("Column 2");
-		
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(new ICellModifier() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-			 */
-			public boolean canModify(Object element, String property) {
-				return ((MyModel)element).counter % 2 == 0;
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-			 */
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter + "";
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-			 */
-			public void modify(Object element, String property, Object value) {
-				TableItem item = (TableItem)element;
-				((MyModel)item.getData()).counter = Integer.parseInt(value.toString());
-				v.update(item.getData(), null);
-			}
-			
-		});
-		
-		v.setColumnProperties(new String[] { "column1", "column2" });
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()) });
-		TableViewerEditor.create(v,new ColumnViewerEditorActivationStrategy(v),ColumnViewerEditor.TABBING_HORIZONTAL|ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR|ColumnViewerEditor.TABBING_VERTICAL);
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet025TabEditing(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet026TreeViewerTabEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet026TreeViewerTabEditing.java
deleted file mode 100644
index 4f2900e..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet026TreeViewerTabEditing.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet026TreeViewerTabEditing {
-	public Snippet026TreeViewerTabEditing(final Shell shell) {
-		Button b = new Button(shell,SWT.PUSH);
-		b.setText("Remove column");
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLinesVisible(true);
-		v.getTree().setHeaderVisible(true);
-		b.addSelectionListener(new SelectionListener() {
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				v.getTree().getColumn(1).dispose();
-			}
-			
-		});
-				 
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-		
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-
-		TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return false;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 2 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-		
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 3");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 3 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-		
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet026TreeViewerTabEditing(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet027ComboBoxCellEditors.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet027ComboBoxCellEditors.java
deleted file mode 100644
index ba3204b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet027ComboBoxCellEditors.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     Dinko Ivanov - bug 164365
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * This snippet represents usage of the ComboBoxCell-Editor
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet027ComboBoxCellEditors {
-	private class MyCellModifier implements ICellModifier {
-
-		private TableViewer viewer;
-
-		public MyCellModifier(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public boolean canModify(Object element, String property) {
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public Object getValue(Object element, String property) {
-			// We need to calculate back to the index
-			return new Integer(((MyModel) element).counter / 10);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
-		 *      java.lang.String, java.lang.Object)
-		 */
-		public void modify(Object element, String property, Object value) {
-			TableItem item = (TableItem) element;
-			// We get the index and need to calculate the real value
-			((MyModel) item.getData()).counter = ((Integer) value).intValue() * 10;
-			viewer.update(item.getData(), null);
-		}
-	}
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet027ComboBoxCellEditors(Shell shell) {
-		final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		final TableViewer v = new TableViewer(table);
-		final MyCellModifier modifier = new MyCellModifier(v);
-
-		TableColumn column = new TableColumn(table, SWT.NONE);
-		column.setWidth(200);
-
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(modifier);
-		v.setColumnProperties(new String[] { "column1" });
-		v.setCellEditors(new CellEditor[] { new ComboBoxCellEditor(
-				v.getTable(), new String[] { "Zero", "Ten", "Twenty", "Thirty",
-						"Fourty", "Fifty", "Sixty", "Seventy", "Eighty",
-						"Ninety" }) });
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i * 10);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet027ComboBoxCellEditors(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet029VirtualTableViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet029VirtualTableViewer.java
deleted file mode 100644
index e3ece9c..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet029VirtualTableViewer.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TableViewer to demonstrate the usage of a standard content provider
- * with a virtual table
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet029VirtualTableViewer {
-	private class MyContentProvider implements IStructuredContentProvider {
-		private MyModel[] elements;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return elements;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			this.elements = (MyModel[]) newInput;
-		}
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet029VirtualTableViewer(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.VIRTUAL);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setUseHashlookup(true);
-		MyModel[] model = createModel();
-		v.setInput(model);
-
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10000];
-
-		for (int i = 0; i < 10000; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet029VirtualTableViewer(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet030VirtualLazyTableViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet030VirtualLazyTableViewer.java
deleted file mode 100644
index 89f0443..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet030VirtualLazyTableViewer.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ILazyContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TableViewer to demonstrate usage of an ILazyContentProvider. You can
- * compare this snippet to the Snippet029VirtualTableViewer to see the small but
- * needed difference.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet030VirtualLazyTableViewer {
-	private class MyContentProvider implements ILazyContentProvider {
-		private TableViewer viewer;
-		private MyModel[] elements;
-
-		public MyContentProvider(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			this.elements = (MyModel[]) newInput;
-		}
-
-		public void updateElement(int index) {
-			viewer.replace(elements[index], index);
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet030VirtualLazyTableViewer(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.VIRTUAL);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider(v));
-		v.setUseHashlookup(true);
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.setItemCount(model.length); // This is the difference when using a
-		// ILazyContentProvider
-
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10000];
-
-		for (int i = 0; i < 10000; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet030VirtualLazyTableViewer(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java
deleted file mode 100644
index 116b133..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Adam Neal and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Adam Neal - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * A simple TableViewer to demonstrate how custom tooltips could be created easily while preserving 
- * the multiple selection.
- * 
- * This is a modified example taken from Tom Schindl's Snippet023TreeViewerCustomTooltips.java
- * 
- * This code is for users pre 3.3 others could use newly added tooltip support in {@link CellLabelProvider}
-
- * @author Adam Neal <Adam_Neal@ca.ibm.com>
- * 
- */
-public class Snippet031TableViewerCustomTooltipsMultiSelection {
-	public class MyLableProvider implements ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			if (element instanceof MyModel) {
-				switch (columnIndex) {
-					case 0: return ((MyModel)element).col1;
-					case 1: return ((MyModel)element).col2;
-				}
-			}
-			return "";
-		}
-
-		public void addListener(ILabelProviderListener listener) {
-			/* Ignore */
-		}
-
-		public void dispose() {
-			/* Ignore */
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-			/* Ignore */
-		}
-		
-	}
-	
-	public class MyModel {
-		public String col1, col2;
-
-		public MyModel(String c1, String c2) {
-			col1 = c1;
-			col2 = c2;
-		}
-		
-		public String toString() {
-			return col1 + col2;
-		}
-
-	}
-
-	public Snippet031TableViewerCustomTooltipsMultiSelection(Shell shell) {
-		final Table table = new Table(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
-		table.setHeaderVisible(true);
-        table.setLinesVisible(true);
-        
-		final TableViewer v = new TableViewer(table);
-		TableColumn tableColumn1 = new TableColumn(table, SWT.NONE);
-		TableColumn tableColumn2 = new TableColumn(table, SWT.NONE);
-		
-		String column1 = "Column 1", column2 = "Column 2";
-		/* Setup the table  columns */
-        tableColumn1.setText(column1);
-        tableColumn2.setText(column2);
-        tableColumn1.pack();
-        tableColumn2.pack();
-        
-        v.setColumnProperties(new String[] { column1, column2 });
-		v.setLabelProvider(new MyLableProvider());
-		v.setContentProvider(new ArrayContentProvider());
-		v.setInput(createModel());
-		
-		/**
-	     * The listener that gets added to the table.  This listener is responsible for creating the tooltips
-	     * when hovering over a cell item. This listener will listen for the following events:
-	     *  <li>SWT.KeyDown		- to remove the tooltip</li>
-	     *  <li>SWT.Dispose		- to remove the tooltip</li>
-	     *  <li>SWT.MouseMove	- to remove the tooltip</li>
-	     *  <li>SWT.MouseHover	- to set the tooltip</li>
-	     */
-	    Listener tableListener = new Listener () {
-	    	Shell tooltip = null;
-	    	Label label = null;
-	    	
-	    	/*
-	    	 * (non-Javadoc)
-	    	 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-	    	 */
-	    	public void handleEvent (Event event) {
-			   switch (event.type) {
-				   	case SWT.KeyDown:
-				   	case SWT.Dispose:
-				   	case SWT.MouseMove: {
-				   		if (tooltip == null) break;
-				   		tooltip.dispose ();
-				   		tooltip = null;
-				   		label = null;
-				   		break;
-				   	}
-				   	case SWT.MouseHover: {
-				   		Point coords = new Point(event.x, event.y);
-						TableItem item = table.getItem(coords);
-				   		if (item != null) {
-				   			int columnCount = table.getColumnCount();
-							for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) {
-				   				if (item.getBounds(columnIndex).contains(coords)) {
-				   					/* Dispose of the old tooltip (if one exists */
-				   					if (tooltip != null  && !tooltip.isDisposed ()) tooltip.dispose ();
-				   					
-				   					/* Create a new Tooltip */
-				   					tooltip = new Shell (table.getShell(), SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
-				   					tooltip.setBackground (table.getDisplay().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
-				   					FillLayout layout = new FillLayout ();
-				   					layout.marginWidth = 2;
-				   					tooltip.setLayout (layout);
-				   					label = new Label (tooltip, SWT.NONE);
-				   					label.setForeground (table.getDisplay().getSystemColor (SWT.COLOR_INFO_FOREGROUND));
-				   					label.setBackground (table.getDisplay().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
-				   					
-				   					/* Store the TableItem with the label so we can pass the mouse event later */
-				   					label.setData ("_TableItem_", item);
-				   					
-				   					/* Set the tooltip text */
-			   						label.setText("Tooltip: " + item.getData() + " : " + columnIndex);
-			   						
-			   						/* Setup Listeners to remove the tooltip and transfer the received mouse events */
-				   					label.addListener (SWT.MouseExit, tooltipLabelListener);
-				   					label.addListener (SWT.MouseDown, tooltipLabelListener);
-				   					
-				   					/* Set the size and position of the tooltip */
-				   					Point size = tooltip.computeSize (SWT.DEFAULT, SWT.DEFAULT);
-				   					Rectangle rect = item.getBounds (columnIndex);
-				   					Point pt = table.toDisplay (rect.x, rect.y);
-				   					tooltip.setBounds (pt.x, pt.y, size.x, size.y);
-				   					
-				   					/* Show it */
-				   					tooltip.setVisible (true);
-				   					break;
-				   				}
-				   			}
-				   		}
-				   	}
-			   }
-	    	}
-		};
-		
-		table.addListener (SWT.Dispose, tableListener);
-		table.addListener (SWT.KeyDown, tableListener);
-		table.addListener (SWT.MouseMove, tableListener);
-		table.addListener (SWT.MouseHover, tableListener);
-	}
-	
-	   /**
-	    * This listener is added to the tooltip so that it can either dispose itself if the mouse
-	    * exits the tooltip or so it can pass the selection event through to the table.
-	    */
-	    final TooltipLabelListener tooltipLabelListener = new TooltipLabelListener();
-	    final class TooltipLabelListener implements Listener {
-	        private boolean isCTRLDown(Event e) {
-	        	return (e.stateMask & SWT.CTRL) != 0;
-	        }
-		   /*
-		    * (non-Javadoc)
-		    * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		    */
-		   public void handleEvent (Event event) {
-			   Label label = (Label)event.widget;
-			   Shell shell = label.getShell ();
-			   switch (event.type) {
-				   	case SWT.MouseDown:	/* Handle a user Click */
-				   		/* Extract our Data */
-				   		Event e = new Event ();
-				   		e.item = (TableItem) label.getData ("_TableItem_");
-				   		Table table = ((TableItem) e.item).getParent();
-				   		
-				   		/* Construct the new Selection[] to show */
-				   		TableItem [] newSelection = null;
-				   		if (isCTRLDown(event)) {
-				   			/* We have 2 scenario's.  
-				   			 * 	1) We are selecting an already selected element - so remove it from the selected indices
-				   			 *  2) We are selecting a non-selected element - so add it to the selected indices
-				   			 */
-				   			TableItem[] sel = table.getSelection();
-				   			for (int i = 0; i < sel.length; ++i) {
-				   				if (e.item.equals(sel[i])) {
-				   					// We are de-selecting this element
-				   					newSelection = new TableItem[sel.length - 1];
-				   					System.arraycopy(sel, 0, newSelection, 0, i);
-				   					System.arraycopy(sel, i+1, newSelection, i, sel.length - i - 1);
-				   					break;
-				   				}
-		   					}
-				   			
-				   			/*
-				   			 * If we haven't created the newSelection[] yet, than we are adding the newly selected element
-				   			 * into the list of selected indicies
-				   			 */
-				   			if (newSelection == null) {
-				   				newSelection = new TableItem[sel.length + 1];
-				   				System.arraycopy(sel, 0, newSelection, 0, sel.length);
-				   				newSelection[sel.length] = (TableItem) e.item;
-				   			}
-				   			
-				   		} else {
-				   			/* CTRL is not down, so we simply select the single element */
-				   			newSelection = new TableItem[] { (TableItem) e.item };
-				   		}
-				   		/* Set the new selection of the table and notify the listeners */
-				   		table.setSelection (newSelection);
-				   		table.notifyListeners (SWT.Selection, e);
-				   		
-				   		/* Remove the Tooltip */
-				   		shell.dispose ();
-				   		table.setFocus();
-				   		break;
-				   	case SWT.MouseExit:
-				   		shell.dispose ();
-				   		break;
-			   }
-	    }};
-	    	
-	    
-		
-	private List createModel() {
-		ArrayList list = new ArrayList();
-		list.add(new MyModel("A", "B"));
-		list.add(new MyModel("C", "D"));
-		list.add(new MyModel("E", "F"));
-		return list;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet031TableViewerCustomTooltipsMultiSelection(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet032TableTreeViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet032TableTreeViewer.java
deleted file mode 100644
index ae135ac..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet032TableTreeViewer.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableTreeViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet032TableTreeViewer {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-	
-	private class MyModifier implements ICellModifier {
-		private TableTreeViewer v;
-		
-		public MyModifier(TableTreeViewer v) {
-			this.v = v;
-		}
-		
-		public boolean canModify(Object element, String property) {
-			return true;
-		}
-
-		public Object getValue(Object element, String property) {
-			return ((MyModel)element).counter + "";
-		}
-
-		public void modify(Object element, String property, Object value) {
-			((MyModel)((Item)element).getData()).counter = Integer.parseInt(value.toString());
-			v.update(((Item)element).getData(), null);
-		}
-		
-	}
-
-	public Snippet032TableTreeViewer(Shell shell) {
-		final TableTreeViewer v = new TableTreeViewer(shell, SWT.FULL_SELECTION);
-		
-		TableColumn column = new TableColumn(v.getTableTree().getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		
-		column = new TableColumn(v.getTableTree().getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		v.getTableTree().getTable().setHeaderVisible(true);
-		v.getTableTree().getTable().setLinesVisible(true);
-		
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTableTree().getTable()), new TextCellEditor(v.getTableTree().getTable()) });
-		v.setColumnProperties(new String[] { "column1", "column2" });
-		v.setCellModifier(new MyModifier(v));
-		
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet032TableTreeViewer(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet033CellEditorPerRowPre33.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet033CellEditorPerRowPre33.java
deleted file mode 100644
index 7589284..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet033CellEditorPerRowPre33.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckboxCellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Snippet to present editor different CellEditors within one column in 3.2
- * for 3.3 and above please use the new EditingSupport class
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet033CellEditorPerRowPre33 {
-	private class MyCellModifier implements ICellModifier {
-		
-		private TableViewer viewer;
-		
-		private boolean enabled = true;
-
-		public void setViewer(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public boolean canModify(Object element, String property) {
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public Object getValue(Object element, String property) {
-			if( element instanceof MyModel3 ) {
-				return new Boolean(((MyModel3)element).checked);
-			} else if( element instanceof MyModel2 ) {
-				return new Integer(((MyModel) element).counter);
-			} else {
-				return ((MyModel) element).counter + "";
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
-		 *      java.lang.String, java.lang.Object)
-		 */
-		public void modify(Object element, String property, Object value) {
-			TableItem item = (TableItem) element;
-			
-			if( item.getData() instanceof MyModel3 ) {
-				((MyModel3) item.getData()).checked=((Boolean)value).booleanValue();
-			} else {
-				((MyModel) item.getData()).counter = Integer.parseInt(value
-						.toString());
-			}
-			
-			viewer.update(item.getData(), null);
-		}
-	}
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyModel2 extends MyModel {
-
-		public MyModel2(int counter) {
-			super(counter);
-		}
-
-		public String toString() {
-			return "Special Item " + this.counter;
-		}
-	}
-	
-	public class MyModel3 extends MyModel {
-		public boolean checked;
-		
-		public MyModel3(int counter) {
-			super(counter);
-		}
-
-		public String toString() {
-			return "Special Item " + this.counter;
-		}
-	}
-	
-	
-	public class DelegatingEditor extends CellEditor {
-		
-		private StructuredViewer viewer;
-		
-		private CellEditor delegatingTextEditor;
-		
-		private CellEditor delegatingDropDownEditor;
-		
-		private CellEditor activeEditor;
-		
-		private CellEditor delegatingCheckBoxEditor;
-		
-		private class DelegatingListener implements ICellEditorListener {
-
-			public void applyEditorValue() {
-				fireApplyEditorValue();
-			}
-
-			public void cancelEditor() {
-				fireCancelEditor();
-			}
-
-			public void editorValueChanged(boolean oldValidState,
-					boolean newValidState) {
-				fireEditorValueChanged(oldValidState, newValidState);
-			}
-			
-		}
-		
-		public DelegatingEditor(StructuredViewer viewer, Composite parent) {
-			super(parent);
-			this.viewer = viewer;
-			DelegatingListener l = new DelegatingListener();
-			this.delegatingTextEditor = new TextCellEditor(parent);
-			this.delegatingTextEditor.addListener(l);
-			
-			String[] elements = new String[10];
-			
-			for (int i = 0; i < 10; i++) {
-				elements[i] = i+"";
-			}
-			
-			this.delegatingDropDownEditor = new ComboBoxCellEditor(parent,elements);
-			this.delegatingDropDownEditor.addListener(l);
-			
-			this.delegatingCheckBoxEditor = new CheckboxCellEditor(parent);
-			this.delegatingCheckBoxEditor.addListener(l);
-		}
-		
-		protected Control createControl(Composite parent) {
-			return null;
-		}
-
-		protected Object doGetValue() {
-			return activeEditor.getValue();
-		}
-
-		protected void doSetFocus() {
-			activeEditor.setFocus();
-		}
-
-		public void activate() {
-			if( activeEditor != null ) {
-				activeEditor.activate();
-			}
-		}
-
-		protected void doSetValue(Object value) {
-			
-			if( ((IStructuredSelection)this.viewer.getSelection()).getFirstElement() instanceof MyModel3 ) {
-				activeEditor = delegatingCheckBoxEditor;
-			} else if( ((IStructuredSelection)this.viewer.getSelection()).getFirstElement() instanceof MyModel2 ) {
-				activeEditor = delegatingDropDownEditor;
-			} else {
-				activeEditor = delegatingTextEditor;
-			}
-			
-			activeEditor.setValue(value);
-		}
-		
-		public void deactivate() {
-			if( activeEditor != null ) {
-				Control control = activeEditor.getControl();
-				if (control != null && !control.isDisposed()) {
-					control.setVisible(false);
-				}
-			}
-		}
-		
-		public void dispose() {
-			
-		}
-		
-		public Control getControl() {
-			return activeEditor.getControl();
-		}
-	}
-	
-	public Snippet033CellEditorPerRowPre33(Shell shell) {
-		final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		final MyCellModifier modifier = new MyCellModifier();
-		
-		final TableViewer v = new TableViewer(table);
-		modifier.setViewer(v);
-		
-		TableColumn column = new TableColumn(table, SWT.NONE);
-		column.setWidth(200);
-
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(modifier);
-		v.setColumnProperties(new String[] { "column1" });
-		v.setCellEditors(new CellEditor[] { new DelegatingEditor(v,v.getTable()) });
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-
-	private class MyLabelProvider extends LabelProvider {
-		public Image getImage(Object element) {
-			if( element instanceof MyModel3 ) {
-				if( ((MyModel3)element).checked ) {
-					return JFaceResources.getImage("IMG_1");
-				} else {
-					return JFaceResources.getImage("IMG_2");
-				}
-				
-			}
-			return super.getImage(element);
-		}
-		
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[30];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel3(i);
-		}
-		
-		for (int i = 0; i < 10; i++) {
-			elements[i+10] = new MyModel(i);
-		}
-
-		for (int i = 0; i < 10; i++) {
-			elements[i+20] = new MyModel2(i);
-		}
-		
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		JFaceResources.getImageRegistry().put("IMG_1", ImageDescriptor.createFromURL(Snippet033CellEditorPerRowPre33.class.getClassLoader().getResource("org/eclipse/jface/snippets/dialogs/cancel.png")));
-		JFaceResources.getImageRegistry().put("IMG_2", ImageDescriptor.createFromURL(Snippet033CellEditorPerRowPre33.class.getClassLoader().getResource("org/eclipse/jface/snippets/dialogs/filesave.png")));
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet033CellEditorPerRowPre33(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet034CellEditorPerRowNewAPI.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet034CellEditorPerRowNewAPI.java
deleted file mode 100644
index 4dfacf2..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet034CellEditorPerRowNewAPI.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl<tom.schindl@bestsolution.at> - initial API and implementation
- *     Wayne Beaton - bug 185540
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-
-/**
- * Snippet to present editor different CellEditors within one column in 3.2
- * for 3.3 and above please use the new EditingSupport class
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet034CellEditorPerRowNewAPI {
-	private class MyEditingSupport extends EditingSupport {
-		private CellEditor textEditor;
-		
-		private CellEditor dropDownEditor;
-		
-		public MyEditingSupport(TableViewer viewer) {
-			super(viewer);
-			textEditor = new TextCellEditor(viewer.getTable());
-			
-			String[] elements = new String[10];
-			
-			for (int i = 0; i < 10; i++) {
-				elements[i] = i+"";
-			}
-			
-			dropDownEditor = new ComboBoxCellEditor(viewer.getTable(),elements);
-		}
-
-		protected boolean canEdit(Object element) {
-			return ((MyModel) element).counter % 2 == 0;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			if( element instanceof MyModel2 ) {
-				return dropDownEditor;
-			} else {
-				return textEditor;
-			}
-		}
-
-		protected Object getValue(Object element) {
-			if( element instanceof MyModel2 ) {
-				return new Integer(((MyModel) element).counter);
-			} else {
-				return ((MyModel) element).counter + "";
-			}
-		}
-
-		protected void setValue(Object element, Object value) {
-			((MyModel)element).counter = Integer.parseInt(value.toString());
-			getViewer().update(element, null);
-		}
-		
-	}
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyModel2 extends MyModel {
-
-		public MyModel2(int counter) {
-			super(counter);
-		}
-
-		public String toString() {
-			return "Special Item " + this.counter;
-		}
-	}
-	
-	public Snippet034CellEditorPerRowNewAPI(Shell shell) {
-		final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		
-		final TableViewer v = new TableViewer(table);
-		v.getTable().setLinesVisible(true);
-		
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return element.toString();
-			}
-			
-		});
-		
-		column.setEditingSupport(new MyEditingSupport(v));
-		
-		v.setContentProvider(new MyContentProvider());
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[20];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		for (int i = 0; i < 10; i++) {
-			elements[i+10] = new MyModel2(i);
-		}
-		
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet034CellEditorPerRowNewAPI(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet035TableCursorCellHighlighter.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet035TableCursorCellHighlighter.java
deleted file mode 100644
index 8500604..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet035TableCursorCellHighlighter.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example usage of none mandatory interfaces of ITableFontProvider and
- * ITableColorProvider
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet035TableCursorCellHighlighter {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public static boolean flag = true;
-	
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet035TableCursorCellHighlighter(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER|SWT.HIDE_SELECTION|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Column " + property + " => " + element.toString();
-			}
-
-			public void modify(Object element, String property, Object value) {
-				
-			}
-			
-		});
-		
-		v.setColumnProperties(new String[] {"1","2"});
-		
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,new CursorCellHighlighter(v,new TableCursor(v)));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TableViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet035TableCursorCellHighlighter(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet036FocusBorderCellHighlighter.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet036FocusBorderCellHighlighter.java
deleted file mode 100644
index 043cb28..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet036FocusBorderCellHighlighter.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example of a different focus cell rendering with a simply focus border
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet036FocusBorderCellHighlighter {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public static boolean flag = true;
-	
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			return null;
-		}
-
-	}
-
-	public Snippet036FocusBorderCellHighlighter(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Column " + property + " => " + element.toString();
-			}
-
-			public void modify(Object element, String property, Object value) {
-				
-			}
-			
-		});
-		
-		v.setColumnProperties(new String[] {"1","2","3"});
-		
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,new FocusBorderCellHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TableViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setMoveable(true);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setMoveable(true);
-		column.setText("Column 2");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setMoveable(true);
-		column.setText("Column 3");
-
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet036FocusBorderCellHighlighter(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet037FancyCustomTooltips.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet037FancyCustomTooltips.java
deleted file mode 100644
index fffecdd..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet037FancyCustomTooltips.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     IBM - Improvement for Bug 159625 [Snippets] Update Snippet011CustomTooltips to reflect new API
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Explore New API: JFace custom tooltips drawing.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.3
- */
-public class Snippet037FancyCustomTooltips {
-	private static class MyContentProvider implements
-			IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return new String[] { "one", "two", "three", "four", "five", "six",
-					"seven", "eight", "nine", "ten" };
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-	}
-
-	private static class FancyToolTipSupport extends ColumnViewerToolTipSupport {
-
-		protected FancyToolTipSupport(ColumnViewer viewer, int style,
-				boolean manualActivation) {
-			super(viewer, style, manualActivation);
-		}
-		
-		
-		protected Composite createToolTipContentArea(Event event,
-				Composite parent) {
-			Composite comp = new Composite(parent,SWT.NONE);
-			GridLayout l = new GridLayout(1,false);
-			l.horizontalSpacing=0;
-			l.marginWidth=0;
-			l.marginHeight=0;
-			l.verticalSpacing=0;
-			
-			comp.setLayout(l);
-			Browser browser = new Browser(comp,SWT.BORDER);
-			browser.setText(getText(event));
-			browser.setLayoutData(new GridData(200,150));
-			
-			
-			return comp;
-		}
-
-		public boolean isHideOnMouseDown() {
-			return false;
-		}
-
-
-		public static final void enableFor(ColumnViewer viewer, int style) {
-			new FancyToolTipSupport(viewer,style,false);
-		}
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		TableViewer v = new TableViewer(shell, SWT.FULL_SELECTION);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		v.setContentProvider(new MyContentProvider());
-		FancyToolTipSupport.enableFor(v,ToolTip.NO_RECREATE);
-		
-		CellLabelProvider labelProvider = new CellLabelProvider() {
-
-			public String getToolTipText(Object element) {
-				return "<html><body>Tooltip (" + element + ")<br /><a href='http://www.bestsolution.at' target='_NEW'>www.bestsolution.at</a></body></html>";
-			}
-
-			public Point getToolTipShift(Object object) {
-				return new Point(5, 5);
-			}
-
-			public int getToolTipDisplayDelayTime(Object object) {
-				return 2000;
-			}
-
-			public int getToolTipTimeDisplayed(Object object) {
-				return 5000;
-			}
-
-			public void update(ViewerCell cell) {
-				cell.setText(cell.getElement().toString());
-			}
-		};
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.setLabelProvider(labelProvider);
-		column.getColumn().setText("Column 1");
-		column.getColumn().setWidth(100);
-
-		v.setInput("");
-
-		shell.setSize(200, 200);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-
-		display.dispose();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet038TreeViewerInlinelEditingOldAPI.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet038TreeViewerInlinelEditingOldAPI.java
deleted file mode 100644
index 3c9b518..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet038TreeViewerInlinelEditingOldAPI.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * A simple TreeViewer to demonstrate usage of inline editing
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet038TreeViewerInlinelEditingOldAPI {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-	}
-
-	public Snippet038TreeViewerInlinelEditingOldAPI(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell,SWT.FULL_SELECTION);
-		
-		TreeColumn column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		
-		column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		v.setCellEditors(new CellEditor[]{new TextCellEditor(v.getTree()), new TextCellEditor(v.getTree())});
-		v.setColumnProperties(new String[]{"col1","col2"});
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter+"";
-			}
-
-			public void modify(Object element, String property, Object value) {
-				((MyModel)((TreeItem)element).getData()).counter = Integer.parseInt(value.toString());
-				v.update(((TreeItem)element).getData(), null);
-			}
-			
-		});
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet038TreeViewerInlinelEditingOldAPI(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet039ListViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet039ListViewer.java
deleted file mode 100644
index 6dd8f73..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet039ListViewer.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Demonstrate a simple ListViewer
- */
-public class Snippet039ListViewer {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		public void dispose() {
-			
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet039ListViewer(Shell shell) {
-		final ListViewer v = new ListViewer(shell,SWT.H_SCROLL|SWT.V_SCROLL);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		MyModel[] model = createModel();
-		v.setInput(model);	
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet039ListViewer(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet040TableViewerSorting.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet040TableViewerSorting.java
deleted file mode 100644
index 0aaf14b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet040TableViewerSorting.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example usage of ViewerComparator in tables to allow sorting
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet040TableViewerSorting {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-	}
-
-	public class Person {
-		public String givenname;
-		public String surname;
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-
-	}
-
-	protected abstract class AbstractEditingSupport extends EditingSupport {
-		private TextCellEditor editor;
-
-		public AbstractEditingSupport(TableViewer viewer) {
-			super(viewer);
-			this.editor = new TextCellEditor(viewer.getTable());
-		}
-
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-
-		protected void setValue(Object element, Object value) {
-			doSetValue(element, value);
-			getViewer().update(element, null);
-		}
-
-		protected abstract void doSetValue(Object element, Object value);
-	}
-
-	public Snippet040TableViewerSorting(Shell shell) {
-		TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).givenname;
-			}
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).givenname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).givenname = value.toString();
-			}
-
-		});
-		
-		ColumnViewerSorter cSorter = new ColumnViewerSorter(v,column) {
-
-			protected int doCompare(Viewer viewer, Object e1, Object e2) {
-				Person p1 = (Person) e1;
-				Person p2 = (Person) e2;
-				return p1.givenname.compareToIgnoreCase(p2.givenname);
-			}
-			
-		};
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).surname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).surname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).surname = value.toString();
-			}
-
-		});
-		
-		new ColumnViewerSorter(v,column) {
-
-			protected int doCompare(Viewer viewer, Object e1, Object e2) {
-				Person p1 = (Person) e1;
-				Person p2 = (Person) e2;
-				return p1.surname.compareToIgnoreCase(p2.surname);
-			}
-			
-		};
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).email;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).email;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).email = value.toString();
-			}
-
-		});
-		
-		new ColumnViewerSorter(v,column) {
-
-			protected int doCompare(Viewer viewer, Object e1, Object e2) {
-				Person p1 = (Person) e1;
-				Person p2 = (Person) e2;
-				return p1.email.compareToIgnoreCase(p2.email);
-			}
-			
-		};
-
-		Person[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		cSorter.setSorter(cSorter, ColumnViewerSorter.ASC);
-	}
-
-	private Person[] createModel() {
-		Person[] elements = new Person[4];
-		elements[0] = new Person("Tom", "Schindl",
-				"tom.schindl@bestsolution.at");
-		elements[1] = new Person("Boris", "Bokowski",
-				"Boris_Bokowski@ca.ibm.com");
-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com");
-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org");
-
-		return elements;
-	}
-
-	private static abstract class ColumnViewerSorter extends ViewerComparator {
-		public static final int ASC = 1;
-		
-		public static final int NONE = 0;
-		
-		public static final int DESC = -1;
-		
-		private int direction = 0;
-		
-		private TableViewerColumn column;
-		
-		private ColumnViewer viewer;
-		
-		public ColumnViewerSorter(ColumnViewer viewer, TableViewerColumn column) {
-			this.column = column;
-			this.viewer = viewer;
-			this.column.getColumn().addSelectionListener(new SelectionAdapter() {
-
-				public void widgetSelected(SelectionEvent e) {
-					if( ColumnViewerSorter.this.viewer.getComparator() != null ) {
-						if( ColumnViewerSorter.this.viewer.getComparator() == ColumnViewerSorter.this ) {
-							int tdirection = ColumnViewerSorter.this.direction;
-							
-							if( tdirection == ASC ) {
-								setSorter(ColumnViewerSorter.this, DESC);
-							} else if( tdirection == DESC ) {
-								setSorter(ColumnViewerSorter.this, NONE);
-							}
-						} else {
-							setSorter(ColumnViewerSorter.this, ASC);
-						}
-					} else {
-						setSorter(ColumnViewerSorter.this, ASC);
-					}
-				}
-			});
-		}
-		
-		public void setSorter(ColumnViewerSorter sorter, int direction) {
-			if( direction == NONE ) {
-				column.getColumn().getParent().setSortColumn(null);
-				column.getColumn().getParent().setSortDirection(SWT.NONE);
-				viewer.setComparator(null);
-			} else {
-				column.getColumn().getParent().setSortColumn(column.getColumn());
-				sorter.direction = direction;
-				
-				if( direction == ASC ) {
-					column.getColumn().getParent().setSortDirection(SWT.DOWN);
-				} else {
-					column.getColumn().getParent().setSortDirection(SWT.UP);
-				}
-				
-				if( viewer.getComparator() == sorter ) {
-					viewer.refresh();
-				} else {
-					viewer.setComparator(sorter);
-				}
-				
-			}
-		}
-
-		public int compare(Viewer viewer, Object e1, Object e2) {
-			return direction * doCompare(viewer, e1, e2);
-		}
-		
-		protected abstract int doCompare(Viewer viewer, Object e1, Object e2);
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet040TableViewerSorting(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet041TableViewerAlternatingColors.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet041TableViewerAlternatingColors.java
deleted file mode 100644
index a6337e4..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet041TableViewerAlternatingColors.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Demonstrate alternating row colors using new Jace 3.3 API 
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet041TableViewerAlternatingColors {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-		
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	private class OptimizedIndexSearcher {
-		private int lastIndex = 0;
-		
-		public boolean isEven(TableItem item) {
-			TableItem[] items = item.getParent().getItems();
-			
-			// 1. Search the next ten items
-			for( int i = lastIndex; i < items.length && lastIndex + 10 > i; i++ ) {
-				if( items[i] == item ) {
-					lastIndex = i;
-					return lastIndex % 2 == 0;
-				}
-			}
-			
-			// 2. Search the previous ten items
-			for( int i = lastIndex; i < items.length && lastIndex - 10 > i; i-- ) {
-				if( items[i] == item ) {
-					lastIndex = i;
-					return lastIndex % 2 == 0;
-				}
-			}
-			
-			// 3. Start from the beginning
-			for( int i = 0; i < items.length; i++ ) {
-				if( items[i] == item ) {
-					lastIndex = i;
-					return lastIndex % 2 == 0;
-				}
-			}
-		
-			return false;
-		}
-	}
-	
-	public Snippet041TableViewerAlternatingColors(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION|SWT.VIRTUAL);
-		v.setContentProvider(new MyContentProvider());
-
-		final OptimizedIndexSearcher searcher = new OptimizedIndexSearcher();
-		
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-			boolean even = true;
-			
-			public Color getBackground(Object element) {
-				if( even ) {
-					return null;
-				} else {
-					return v.getTable().getDisplay().getSystemColor(SWT.COLOR_GRAY);
-				}
-			}
-			
-			public void update(ViewerCell cell) {
-				even = searcher.isEven((TableItem)cell.getItem());
-				super.update(cell);
-			}
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider() {
-			boolean even = true;
-
-			public Color getBackground(Object element) {
-				if( even ) {
-					return null;
-				} else {
-					return v.getTable().getDisplay().getSystemColor(SWT.COLOR_GRAY);
-				}
-			}
-			
-			public void update(ViewerCell cell) {
-				even = searcher.isEven((TableItem)cell.getItem());
-				super.update(cell);
-			}
-			
-		});
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		
-		final ViewerFilter filter = new ViewerFilter() {
-
-			public boolean select(Viewer viewer, Object parentElement,
-					Object element) {
-				return ((MyModel)element).counter % 2 == 0;
-			}
-			
-		};
-		
-		Button b = new Button(shell,SWT.PUSH);
-		b.addSelectionListener(new SelectionAdapter() {
-			boolean b = true;
-			
-			public void widgetSelected(SelectionEvent e) {
-				if( b ) {
-					v.setFilters(new ViewerFilter[] {filter});
-					b = false;
-				} else {
-					v.setFilters(new ViewerFilter[0]);
-					b = true;
-				}
-			}
-			
-		});
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[100000];
-
-		for (int i = 0; i < 100000; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet041TableViewerAlternatingColors(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet042ToolTipSupportFor32API.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet042ToolTipSupportFor32API.java
deleted file mode 100644
index 6e84840..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet042ToolTipSupportFor32API.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.DefaultToolTip;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Example usage of ToolTips with the OLD viewer API but similar to
- * {@link ColumnViewerToolTipSupport}
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet042ToolTipSupportFor32API {
-	private static Image[] images;
-
-	private static class Cell {
-		private Item item;
-		private int index;
-
-		public Cell(Item item, int index) {
-			this.item = item;
-			this.index = index;
-		}
-
-		public Object getData() {
-			return item.getData();
-		}
-
-		public int hashCode() {
-			final int prime = 31;
-			int result = 1;
-			result = prime * result + index;
-			result = prime * result + ((item == null) ? 0 : item.hashCode());
-			return result;
-		}
-
-		public boolean equals(Object obj) {
-			if (this == obj)
-				return true;
-			if (obj == null)
-				return false;
-			if (getClass() != obj.getClass())
-				return false;
-			final Cell other = (Cell) obj;
-			if (index != other.index)
-				return false;
-			if (item == null) {
-				if (other.item != null)
-					return false;
-			} else if (!item.equals(other.item))
-				return false;
-			return true;
-		}
-
-	}
-
-	private static class ToolTipSupport extends DefaultToolTip {
-		private Cell cell;
-		private ColumnViewer viewer;
-
-		protected ToolTipSupport(ColumnViewer viewer, int style,
-				boolean manualActivation) {
-			super(viewer.getControl(), style, manualActivation);
-			this.viewer = viewer;
-		}
-
-		protected Object getToolTipArea(Event event) {
-			Table table = (Table) event.widget;
-			int columns = table.getColumnCount();
-			Point point = new Point(event.x, event.y);
-			TableItem item = table.getItem(point);
-
-			if (item != null) {
-				for (int i = 0; i < columns; i++) {
-					if (item.getBounds(i).contains(point)) {
-						this.cell = new Cell(item, i);
-						return cell;
-					}
-				}
-			}
-
-			return null;
-		}
-
-		protected Composite createToolTipContentArea(Event event,
-				Composite parent) {
-			Composite comp = new Composite(parent, SWT.NONE);
-			comp.setLayout(new FillLayout());
-			Button b = new Button(comp, SWT.PUSH);
-			b.setText(((ITableLabelProvider) viewer.getLabelProvider())
-					.getColumnText(cell.getData(), cell.index));
-			b.setImage(((ITableLabelProvider) viewer.getLabelProvider())
-					.getColumnImage(cell.getData(), cell.index));
-
-			return comp;
-		}
-
-		public static void enableFor(ColumnViewer viewer) {
-			new ToolTipSupport(viewer, ToolTip.NO_RECREATE, false);
-		}
-	}
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if (columnIndex == 1) {
-				return images[((MyModel) element).counter % 4];
-			}
-
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-	}
-
-	private static Image createImage(Display display, int red, int green,
-			int blue) {
-		Color color = new Color(display, red, green, blue);
-		Image image = new Image(display, 10, 10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-
-		return image;
-	}
-
-	public Snippet042ToolTipSupportFor32API(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		ToolTipSupport.enableFor(v);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		images = new Image[4];
-		images[0] = createImage(display, 0, 0, 255);
-		images[1] = createImage(display, 0, 255, 255);
-		images[2] = createImage(display, 0, 255, 0);
-		images[3] = createImage(display, 255, 0, 255);
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet042ToolTipSupportFor32API(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		for (int i = 0; i < images.length; i++) {
-			images[i].dispose();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet043NoColumnTreeViewerKeyboardEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet043NoColumnTreeViewerKeyboardEditing.java
deleted file mode 100644
index 2f4bc5c..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet043NoColumnTreeViewerKeyboardEditing.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Demonstrates how to use keyboard-editing support in a TreeViewer with no column
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet043NoColumnTreeViewerKeyboardEditing {
-	public Snippet043NoColumnTreeViewerKeyboardEditing(final Shell shell) {
-		Button b = new Button(shell, SWT.PUSH);
-		b.setText("BBB");
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		b.addSelectionListener(new SelectionListener() {
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				MyModel root = (MyModel) v.getInput();
-				TreePath path = new TreePath(new Object[] { root,
-						root.child.get(1),
-						((MyModel) root.child.get(1)).child.get(0) });
-				v.editElement(path, 0);
-			}
-
-		});
-
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTree()) });
-		v.setColumnProperties(new String[] { "col1" });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return ((MyModel) element).counter + "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-				element = ((Item) element).getData();
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-
-		});
-
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(
-				v, new FocusCellOwnerDrawHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TreeViewerEditor.create(v, focusCellManager, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet043NoColumnTreeViewerKeyboardEditing(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet044NoColumnTableViewerKeyboardEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet044NoColumnTableViewerKeyboardEditing.java
deleted file mode 100644
index 8ee4d93..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet044NoColumnTableViewerKeyboardEditing.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Demonstrates how to use keyboard-editing support in a TableViewer with no column
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet044NoColumnTableViewerKeyboardEditing {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public static boolean flag = true;
-	
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			return null;
-		}
-
-	}
-
-	public Snippet044NoColumnTableViewerKeyboardEditing(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Column " + property + " => " + element.toString();
-			}
-
-			public void modify(Object element, String property, Object value) {
-				
-			}
-			
-		});
-		
-		v.setColumnProperties(new String[] {"1"});
-		
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,new FocusBorderCellHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TableViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet044NoColumnTableViewerKeyboardEditing(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet045TableViewerFillFromBackgroundThread.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet045TableViewerFillFromBackgroundThread.java
deleted file mode 100644
index c99ac34..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet045TableViewerFillFromBackgroundThread.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example how to fill a {@link TableViewer} from the background without
- * blocking the UI
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet045TableViewerFillFromBackgroundThread {
-	private static int COUNTER = 0;
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((List) inputElement).toArray();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet045TableViewerFillFromBackgroundThread(final Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		final ArrayList model = new ArrayList();
-		v.setInput(model);
-		v.setComparator(new ViewerComparator() {
-			public int compare(Viewer viewer, Object e1, Object e2) {
-				MyModel m1 = (MyModel) e1;
-				MyModel m2 = (MyModel) e2;
-				return m2.counter - m1.counter;
-			}
-
-		});
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		TimerTask task = new TimerTask() {
-
-			public void run() {
-				shell.getDisplay().syncExec(new Runnable() {
-
-					public void run() {
-						MyModel el = new MyModel(++COUNTER);
-						v.add(el);
-						model.add(el);
-					}
-				});
-			}
-		};
-
-		Timer timer = new Timer(true);
-		timer.scheduleAtFixedRate(task, 1000, 1000);
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet045TableViewerFillFromBackgroundThread(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet046UpdateViewerFromBackgroundThread.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet046UpdateViewerFromBackgroundThread.java
deleted file mode 100644
index e8c7028..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet046UpdateViewerFromBackgroundThread.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example how to update a viewer from a long running task
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet046UpdateViewerFromBackgroundThread {
-	private static Image[] images;
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-		public boolean finished;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if( columnIndex == 0 ) {
-				return images[((MyModel)element).finished?0:1];
-			}
-
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-	}
-
-	private static Image createImage(Display display, int red, int green, int blue) {
-		Color color = new Color(display,red,green,blue);
-		Image image = new Image(display,10,10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-
-		return image;
-	}
-
-	public Snippet046UpdateViewerFromBackgroundThread(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		final MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		Button b = new Button(shell,SWT.PUSH);
-		b.setText("Start Long Task");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				final Thread t = new Thread() {
-
-					public void run() {
-						for( int i = 0; i < model.length; i++ ) {
-							if( v.getTable().isDisposed()) {
-								return;
-							}
-							final int j = i;
-							v.getTable().getDisplay().asyncExec(new Runnable() {
-
-								public void run() {
-									model[j].finished = true;
-									v.update(model[j], null);
-								}
-
-							});
-							try {
-								Thread.sleep(1000);
-							} catch (InterruptedException e) {
-								e.printStackTrace();
-							}
-						}
-					}
-				};
-				t.start();
-			}
-		});
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-
-		images = new Image[2];
-		images[0] = createImage(display,0,255,0);
-		images[1] = createImage(display,255,0,0);
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet046UpdateViewerFromBackgroundThread(shell);
-		shell.open ();
-
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-
-		for( int i = 0; i < images.length; i++ ) {
-			images[i].dispose();
-		}
-
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.java
deleted file mode 100644
index 77a44c9..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ILazyTreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage of an ILazyContentProvider.
- * 
- */
-public class Snippet047VirtualLazyTreeViewer {
-	private class MyContentProvider implements ILazyTreeContentProvider {
-		private TreeViewer viewer;
-		private IntermediateNode[] elements;
-
-		public MyContentProvider(TreeViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			this.elements = (IntermediateNode[]) newInput;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element instanceof LeafNode)
-				return ((LeafNode) element).parent;
-			return elements;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#updateChildCount(java.lang.Object,
-		 *      int)
-		 */
-		public void updateChildCount(Object element, int currentChildCount) {
-			
-			int length = 0;
-			if (element instanceof IntermediateNode) {
-				IntermediateNode node = (IntermediateNode) element;
-				length =  node.children.length;
-			} 
-			if(element == elements)
-				length = elements.length;
-			viewer.setChildCount(element, length);
-			
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#updateElement(java.lang.Object,
-		 *      int)
-		 */
-		public void updateElement(Object parent, int index) {
-			
-			Object element;
-			if (parent instanceof IntermediateNode) 
-				element = ((IntermediateNode) parent).children[index];
-			
-			else
-				element =  elements[index];
-			viewer.replace(parent, index, element);
-			updateChildCount(element, -1);
-			
-		}
-
-	}
-
-	public class LeafNode {
-		public int counter;
-		public IntermediateNode parent;
-
-		public LeafNode(int counter, IntermediateNode parent) {
-			this.counter = counter;
-			this.parent = parent;
-		}
-
-		public String toString() {
-			return "Leaf " + this.counter;
-		}
-	}
-
-	public class IntermediateNode {
-		public int counter;
-		public LeafNode[] children = new LeafNode[0];
-
-		public IntermediateNode(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Node " + this.counter;
-		}
-
-		public void generateChildren(int i) {
-			children = new LeafNode[i];
-			for (int j = 0; j < i; j++) {
-				children[j] = new LeafNode(j, this);
-			}
-
-		}
-	}
-
-	public Snippet047VirtualLazyTreeViewer(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.VIRTUAL | SWT.BORDER);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider(v));
-		v.setUseHashlookup(true);
-		IntermediateNode[] model = createModel();
-		v.setInput(model);
-		v.getTree().setItemCount(model.length);
-
-	}
-
-	private IntermediateNode[] createModel() {
-		IntermediateNode[] elements = new IntermediateNode[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new IntermediateNode(i);
-			elements[i].generateChildren(1000);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet047VirtualLazyTreeViewer(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet048TreeViewerTabWithCheckboxFor3_3.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet048TreeViewerTabWithCheckboxFor3_3.java
deleted file mode 100644
index b6081df..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet048TreeViewerTabWithCheckboxFor3_3.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckboxCellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerRow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Demonstrate how to work-around 3.3.1 limitation when it comes to TAB-Traversal and
- * checkbox editors. 3.4 will hopefully provide provide an out-of-the-box fix see bug 198502
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet048TreeViewerTabWithCheckboxFor3_3 {
-	public Snippet048TreeViewerTabWithCheckboxFor3_3(final Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLinesVisible(true);
-		v.getTree().setHeaderVisible(true);
-
-		final TreeViewerFocusCellManager mgr = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && ( event.keyCode == SWT.CR || event.character == ' ' ))
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TreeViewerEditor.create(v, mgr, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-		final CheckboxCellEditor checkboxCellEditor = new CheckboxCellEditor(v.getTree());
-
-		TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return false;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 2 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-				.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 3");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((MyModel)element).bool + "";
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return checkboxCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return new Boolean(((MyModel) element).bool);
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).bool = ((Boolean)value).booleanValue();
-				v.update(element, null);
-			}
-		});
-
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-		v.getControl().addTraverseListener(new TraverseListener() {
-
-			public void keyTraversed(TraverseEvent e) {
-				if( (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) && mgr.getFocusCell().getColumnIndex() == 2 ) {
-					ColumnViewerEditor editor = v.getColumnViewerEditor();
-					ViewerCell cell = mgr.getFocusCell();
-
-					try {
-						Method m = ColumnViewerEditor.class.getDeclaredMethod("processTraverseEvent", new Class[] {int.class,ViewerRow.class,TraverseEvent.class});
-						m.setAccessible(true);
-						m.invoke(editor, new Object[] { new Integer(cell.getColumnIndex()), cell.getViewerRow(), e });
-					} catch (SecurityException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					} catch (NoSuchMethodException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					} catch (IllegalArgumentException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					} catch (IllegalAccessException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					} catch (InvocationTargetException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					}
-				}
-			}
-
-		});
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet048TreeViewerTabWithCheckboxFor3_3(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public boolean bool;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet049StyledCellLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet049StyledCellLabelProvider.java
deleted file mode 100644
index 2275794..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet049StyledCellLabelProvider.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Krkoska - initial API and implementation (bug 188333)
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.StyledCellLabelProvider;
-import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.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;
-
-/**
- * Using a {@link StyledCellLabelProvider} on table viewer.
- */
-
-public class Snippet049StyledCellLabelProvider {
-	
-	
-	private static final int SHELL_WIDTH= 400;
-	private static final Display DISPLAY= Display.getDefault();
-
-
-	public static void main(String[] args) {
-
-		JFaceResources.getColorRegistry().put(JFacePreferences.COUNTER_COLOR, new RGB(0,127,174));
-		
-		Shell shell= new Shell(DISPLAY, SWT.CLOSE | SWT.RESIZE);
-		shell.setSize(SHELL_WIDTH, 400);
-		shell.setLayout(new GridLayout(1, false));
-
-		Snippet049StyledCellLabelProvider example= new Snippet049StyledCellLabelProvider();
-		Control composite= example.createPartControl(shell);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-		
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!DISPLAY.readAndDispatch()) {
-				DISPLAY.sleep();
-			}
-		}
-		DISPLAY.dispose();
-	}
-
-	public Snippet049StyledCellLabelProvider() {
-	}
-
-	public Composite createPartControl(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NONE);
-
-		composite.setLayout(new GridLayout(1, true));
-
-		Label label= new Label(composite, SWT.NONE);
-		label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
-		label.setText("Viewer with a StyledCellLabelProvider:"); //$NON-NLS-1$
-
-		ExampleLabelProvider labelProvider= new ExampleLabelProvider();
-		FileSystemContentProvider contentProvider= new FileSystemContentProvider();
-		
-		final TableViewer tableViewer= new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-
-		tableViewer.setContentProvider(contentProvider);
-		tableViewer.setLabelProvider(labelProvider);
-
-		GridData data= new GridData(GridData.FILL, GridData.FILL, true, true);
-		tableViewer.getControl().setLayoutData(data);
-		tableViewer.setInput(new Object());
-
-		return composite;
-	}
-	
-	private static class ExampleLabelProvider extends StyledCellLabelProvider {
-
-		private static int IMAGE_SIZE= 16;
-		private static final Image IMAGE1= new Image(DISPLAY, DISPLAY.getSystemImage(SWT.ICON_WARNING).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-		private static final Image IMAGE2= new Image(DISPLAY, DISPLAY.getSystemImage(SWT.ICON_ERROR).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-
-		
-		public ExampleLabelProvider() {
-		}
-		
-		public void update(ViewerCell cell) {
-			Object element= cell.getElement();
-			
-			if (element instanceof File) {
-				File file= (File) element;
-				
-				StyledString styledString= new StyledString(file.getName());
-				String decoration = MessageFormat.format(" ({0} bytes)", new Object[] { new Long(file.length()) }); //$NON-NLS-1$
-				styledString.append(decoration, StyledString.COUNTER_STYLER);
-				
-				cell.setText(styledString.toString());
-				cell.setStyleRanges(styledString.getStyleRanges());
-				
-				if (file.isDirectory()) {
-					cell.setImage(IMAGE1);
-				} else {
-					cell.setImage(IMAGE2);
-				}
-			} else {
-				cell.setText("Unknown element"); //$NON-NLS-1$
-			}
-
-			super.update(cell);
-		}
-	}
-
-	private static class FileSystemContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object element) {
-			File[] roots = File.listRoots();
-			for (int i = 0; i < roots.length; i++) {
-				File[] list = roots[i].listFiles();
-				if (list != null && list.length > 0) {
-					return list;
-				}
-			}
-			return roots;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet050DelegatingStyledCellLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet050DelegatingStyledCellLabelProvider.java
deleted file mode 100644
index bd5f4b5..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet050DelegatingStyledCellLabelProvider.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Krkoska - initial API and implementation (bug 188333)
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import java.io.File;
-import java.text.DateFormat;
-import java.text.MessageFormat;
-import java.util.Date;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-
-/**
- * Using a {@link DelegatingStyledCellLabelProvider} on tree viewer with multiple columns. Compare the result with a native tree viewer.
- */
-public class Snippet050DelegatingStyledCellLabelProvider {
-	
-	
-	private static final int SHELL_WIDTH= 640;
-	private static final Display DISPLAY= Display.getDefault();
-
-
-	public static void main(String[] args) {
-		
-		JFaceResources.getColorRegistry().put(JFacePreferences.COUNTER_COLOR, new RGB(0,127,174));
-		
-		
-
-		Shell shell= new Shell(DISPLAY, SWT.CLOSE | SWT.RESIZE);
-		shell.setSize(SHELL_WIDTH, 300);
-		shell.setLayout(new GridLayout(1, false));
-
-		Snippet050DelegatingStyledCellLabelProvider example= new Snippet050DelegatingStyledCellLabelProvider();
-		example.createPartControl(shell);
-
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!DISPLAY.readAndDispatch()) {
-				DISPLAY.sleep();
-			}
-		}
-		DISPLAY.dispose();
-	}
-
-	public Snippet050DelegatingStyledCellLabelProvider() {
-	}
-
-	public void createPartControl(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NONE);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		composite.setLayout(new GridLayout(2, true));
-		
-		final DelegatingStyledCellLabelProvider styledCellLP1= new DelegatingStyledCellLabelProvider(new NameAndSizeLabelProvider());
-		final DelegatingStyledCellLabelProvider styledCellLP2= new DelegatingStyledCellLabelProvider(new ModifiedDateLabelProvider());
-		final ColumnViewer ownerDrawViewer= createViewer("Owner draw viewer:", composite, styledCellLP1, styledCellLP2); //$NON-NLS-1$
-
-		CellLabelProvider normalLP1= new NameAndSizeLabelProvider();
-		CellLabelProvider normalLP2= new ModifiedDateLabelProvider();
-		final ColumnViewer normalViewer= createViewer("Normal viewer:", composite, normalLP1, normalLP2); //$NON-NLS-1$
-
-		Composite buttons= new Composite(parent, SWT.NONE);
-		buttons.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		buttons.setLayout(new GridLayout(3, false));
-		
-		
-		Button button1= new Button(buttons, SWT.PUSH);
-		button1.setText("Refresh Viewers"); //$NON-NLS-1$
-		button1.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				ownerDrawViewer.refresh();
-				normalViewer.refresh();
-			}
-		});
-		
-		final Button button2= new Button(buttons, SWT.CHECK);
-		button2.setText("Owner draw on column 1"); //$NON-NLS-1$
-		button2.setSelection(true);
-		button2.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				boolean newState= button2.getSelection();
-				styledCellLP1.setOwnerDrawEnabled(newState);
-				ownerDrawViewer.refresh();
-			}
-		});
-		
-		final Button button3= new Button(buttons, SWT.CHECK);
-		button3.setText("Owner draw on column 2"); //$NON-NLS-1$
-		button3.setSelection(true);
-		button3.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				boolean newState= button3.getSelection();
-				styledCellLP2.setOwnerDrawEnabled(newState);
-				ownerDrawViewer.refresh();
-			}
-		});
-	}
-	
-	private static class FileSystemRoot {
-		public File[] getRoots() {
-			return File.listRoots();
-		}
-	}
-
-	private ColumnViewer createViewer(String description, Composite parent, CellLabelProvider labelProvider1, CellLabelProvider labelProvider2) {
-
-		Composite composite= new Composite(parent, SWT.NONE);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-		composite.setLayout(new GridLayout(1, true));
-
-		Label label= new Label(composite, SWT.NONE);
-		label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
-		label.setText(description);
-
-		TreeViewer treeViewer= new TreeViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		treeViewer.getTree().setHeaderVisible(true);
-		treeViewer.setContentProvider(new FileSystemContentProvider());
-		
-		TreeViewerColumn tvc1 = new TreeViewerColumn(treeViewer, SWT.NONE);
-		tvc1.getColumn().setText("Name"); //$NON-NLS-1$
-		tvc1.getColumn().setWidth(200);
-		tvc1.setLabelProvider(labelProvider1);
-
-		TreeViewerColumn tvc2 = new TreeViewerColumn(treeViewer, SWT.NONE);
-		tvc2.getColumn().setText("Date Modified"); //$NON-NLS-1$
-		tvc2.getColumn().setWidth(200);
-		tvc2.setLabelProvider(labelProvider2);
-		
-		GridData data= new GridData(GridData.FILL, GridData.FILL, true, true);
-		treeViewer.getControl().setLayoutData(data);
-
-		treeViewer.setInput(new FileSystemRoot());
-
-		return treeViewer;
-	}
-
-	/**
-	 * A simple label provider
-	 */
-	private static class NameAndSizeLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider {
-		
-		private static int IMAGE_SIZE= 16;
-		private static final Image IMAGE1= new Image(DISPLAY, DISPLAY.getSystemImage(SWT.ICON_WARNING).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-		private static final Image IMAGE2= new Image(DISPLAY, DISPLAY.getSystemImage(SWT.ICON_ERROR).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-
-		public Image getImage(Object element) {
-			if (element instanceof File) {
-				File file= (File) element;
-				if (file.isDirectory()) {
-					return IMAGE1;
-				} else {
-					return IMAGE2;
-				}
-			}
-			return null;
-		}
-
-		public String getText(Object element) {
-			return getStyledText(element).toString();
-		}
-
-		public StyledString getStyledText(Object element) {
-			StyledString styledString= new StyledString();
-			if (element instanceof File) {
-				File file= (File) element;
-				if (file.getName().length() == 0) {
-					styledString.append(file.getAbsolutePath());
-				} else {
-					styledString.append(file.getName());
-				}
-				if (file.isFile()) {
-					String decoration= MessageFormat.format(" ({0} bytes)", new Object[] { new Long(file.length()) }); //$NON-NLS-1$
-					styledString.append(decoration, StyledString.COUNTER_STYLER);
-				}
-			}	
-			return styledString;
-		}
-	}
-	
-	private static class ModifiedDateLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider {
-		public String getText(Object element) {
-			return getStyledText(element).toString();
-		}
-		
-		public StyledString getStyledText(Object element) {
-			StyledString styledString= new StyledString();
-			if (element instanceof File) {
-				File file= (File) element;
-				
-				String date= DateFormat.getDateInstance().format(new Date(file.lastModified()));
-				styledString.append(date);
-				
-				styledString.append(' ');
-				
-				String time = DateFormat.getTimeInstance(3).format(new Date(file.lastModified()));
-				styledString.append(time, StyledString.COUNTER_STYLER);
-			}
-			return styledString;
-		}
-	}
-	
-	private static class FileSystemContentProvider implements ITreeContentProvider {
-
-		public Object[] getChildren(Object element) {
-			if (element instanceof File) {
-				File file= (File) element;
-				if (file.isDirectory()) {
-					File[] listFiles= file.listFiles();
-					if (listFiles != null) {
-						return listFiles;
-					}
-				}
-			} else if (element instanceof FileSystemRoot) {
-				return ((FileSystemRoot) element).getRoots();
-			}
-			return new Object[0];
-		}
-
-		public Object getParent(Object element) {
-			if (element instanceof File) {
-				File file= (File) element;
-				return file.getParentFile();
-			}
-			return null;
-		}
-
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet051TableCenteredImage.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet051TableCenteredImage.java
deleted file mode 100644
index 2feeaf0..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet051TableCenteredImage.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.OwnerDrawLabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Example showing how to center an image using an owner draw label provider
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet051TableCenteredImage {
-	private static Image[] images;
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	private abstract class CenterImageLabelProvider extends
-			OwnerDrawLabelProvider {
-
-		protected void measure(Event event, Object element) {
-		}
-
-		protected void paint(Event event, Object element) {
-
-			Image img = getImage(element);
-
-			if (img != null) {
-				Rectangle bounds = ((TableItem) event.item)
-						.getBounds(event.index);
-				Rectangle imgBounds = img.getBounds();
-				bounds.width /= 2;
-				bounds.width -= imgBounds.width / 2;
-				bounds.height /= 2;
-				bounds.height -= imgBounds.height / 2;
-
-				int x = bounds.width > 0 ? bounds.x + bounds.width : bounds.x;
-				int y = bounds.height > 0 ? bounds.y + bounds.height : bounds.y;
-
-				event.gc.drawImage(img, x, y);
-			}
-		}
-
-		protected abstract Image getImage(Object element);
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	private static Image createImage(Display display, int red, int green,
-			int blue) {
-		Color color = new Color(display, red, green, blue);
-		Image image = new Image(display, 10, 10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-
-		return image;
-	}
-
-	public Snippet051TableCenteredImage(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new CenterImageLabelProvider() {
-
-			protected Image getImage(Object element) {
-				return images[((MyModel) element).counter % 4];
-			}
-
-		});
-
-		// OwnerDrawLabelProvider.setUpOwnerDraw(v);
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		images = new Image[4];
-		images[0] = createImage(display, 0, 0, 255);
-		images[1] = createImage(display, 0, 255, 255);
-		images[2] = createImage(display, 0, 255, 0);
-		images[3] = createImage(display, 255, 0, 255);
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet051TableCenteredImage(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		for (int i = 0; i < images.length; i++) {
-			images[i].dispose();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet052DouleClickCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet052DouleClickCellEditor.java
deleted file mode 100644
index df34ada..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet052DouleClickCellEditor.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Shows how to setup a Viewer to start cell editing on double click
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet052DouleClickCellEditor {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public static boolean flag = true;
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet052DouleClickCellEditor(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()),
-				new TextCellEditor(v.getTable()),
-				new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Column " + property + " => " + element.toString();
-			}
-
-			public void modify(Object element, String property, Object value) {
-
-			}
-
-		});
-
-		v.setColumnProperties(new String[] { "1", "2", "3" });
-
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TableViewerEditor.create(v, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider());
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider());
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 3");
-		column.setLabelProvider(new ColumnLabelProvider());
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet052DouleClickCellEditor(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet053StartEditorWithContextMenu.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet053StartEditorWithContextMenu.java
deleted file mode 100644
index bb550aa..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet053StartEditorWithContextMenu.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Marcel and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Marcel <emmpeegee@gmail.com> - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- *
- */
-public class Snippet053StartEditorWithContextMenu implements SelectionListener {
-
-	private TreeViewer viewer;
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel)inputElement).child.toArray();
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if( element == null) {
-				return null;
-			}
-
-			return ((MyModel)element).parent;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel)element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-		public ArrayList child = new ArrayList();
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if( parent != null ) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public Snippet053StartEditorWithContextMenu(Shell shell) {
-		viewer = new TreeViewer(shell, SWT.BORDER);
-		viewer.setContentProvider(new MyContentProvider());
-		viewer.setCellEditors(new CellEditor[] {new TextCellEditor(viewer.getTree())});
-		viewer.setColumnProperties(new String[] { "name" });
-		viewer.setCellModifier(new ICellModifier() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-			 */
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-			 */
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter + "";
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-			 */
-			public void modify(Object element, String property, Object value) {
-				TreeItem item = (TreeItem)element;
-				((MyModel)item.getData()).counter = Integer.parseInt(value.toString());
-				viewer.update(item.getData(), null);
-			}
-
-		});
-
-		TreeViewerEditor.create(viewer, new ColumnViewerEditorActivationStrategy(viewer) {
-			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		}, ColumnViewerEditor.DEFAULT);
-
-		Menu menu = new Menu(viewer.getControl());
-		MenuItem renameItem = new MenuItem(menu, SWT.PUSH);
-		renameItem.addSelectionListener(this);
-		renameItem.setText("Rename");
-		viewer.getTree().setMenu(menu);
-
-		viewer.setInput(createModel());
-	}
-
-	public void widgetDefaultSelected(SelectionEvent e) {
-	}
-
-	public void widgetSelected(SelectionEvent e) {
-		IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-		if (selection != null) {
-			viewer.editElement(selection.getFirstElement(), 0);
-		}
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0,null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for( int i = 1; i < 10; i++ ) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for( int j = 1; j < i; j++ ) {
-				tmp.child.add(new MyModel(j,tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet053StartEditorWithContextMenu(shell);
-		shell.open ();
-
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-
-		display.dispose ();
-	}
-}
-
-
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet054NativeControlsInViewers.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet054NativeControlsInViewers.java
deleted file mode 100644
index dae39a6..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet054NativeControlsInViewers.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableEditor;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Example how to place native controls into a viewer with the new JFace-API
- * because has the potential to eat up all your handles you should think about
- * alternate approaches e.g. takeing a screenshot of the control
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet054NativeControlsInViewers {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet054NativeControlsInViewers(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-		v.getTable().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,2,1));
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return element.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new CellLabelProvider() {
-
-			public void update(ViewerCell cell) {
-				final TableItem item = (TableItem) cell.getItem();
-				DisposeListener listener = new DisposeListener() {
-
-					public void widgetDisposed(DisposeEvent e) {
-						if( item.getData("EDITOR") != null ) {
-							TableEditor editor = (TableEditor) item.getData("EDITOR");
-							editor.getEditor().dispose();
-							editor.dispose();
-						}
-					}
-
-				};
-
-				if (item.getData("EDITOR") != null) {
-					TableEditor editor = (TableEditor) item.getData("EDITOR");
-					editor.getEditor().dispose();
-					editor.dispose();
-				}
-
-				if( item.getData("DISPOSELISTNER") != null ) {
-					item.removeDisposeListener((DisposeListener) item.getData("DISPOSELISTNER"));
-				}
-
-				TableEditor editor = new TableEditor(item.getParent());
-				item.setData("EDITOR", editor);
-				Composite comp = new Composite(item.getParent(), SWT.NONE);
-				comp.setBackground(item.getParent().getBackground());
-				comp.setBackgroundMode(SWT.INHERIT_DEFAULT);
-				RowLayout l = new RowLayout();
-				l.marginHeight = 0;
-				l.marginWidth = 0;
-				l.marginTop = 0;
-				l.marginBottom = 0;
-				comp.setLayout(l);
-				Button rad = new Button(comp, SWT.RADIO);
-				Button rad1 = new Button(comp, SWT.RADIO);
-				Button rad2 = new Button(comp, SWT.RADIO);
-
-				editor.grabHorizontal = true;
-				editor.setEditor(comp, item, 1);
-
-				item.addDisposeListener(listener);
-				item.setData("DISPOSELISTNER",listener);
-			}
-
-		});
-
-		MyModel[] model = createModel(10);
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		Button b = new Button(shell,SWT.PUSH);
-		b.setText("Modify input");
-		b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				v.setInput(createModel((int)(Math.random() * 10)));
-			}
-
-		});
-
-		b = new Button(shell,SWT.PUSH);
-		b.setText("Refresh");
-		b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				v.refresh();
-			}
-
-		});
-	}
-
-	private MyModel[] createModel(int amount) {
-		MyModel[] elements = new MyModel[amount];
-
-		for (int i = 0; i < amount; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new GridLayout(2,true));
-		new Snippet054NativeControlsInViewers(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java
deleted file mode 100644
index a2b0cd2..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet055HideShowColumn {
-	public Snippet055HideShowColumn(final Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,2,1));
-		v.getTree().setLinesVisible(true);
-		v.getTree().setHeaderVisible(true);
-
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(
-				v, new FocusCellOwnerDrawHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TreeViewerEditor.create(v, focusCellManager, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-
-		TreeViewerColumn column_1 = new TreeViewerColumn(v, SWT.NONE);
-		column_1.getColumn().setWidth(200);
-		column_1.getColumn().setMoveable(true);
-		column_1.getColumn().setText("Column 1");
-		column_1.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-
-		});
-		column_1.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		final TreeViewerColumn column_2 = new TreeViewerColumn(v, SWT.NONE);
-		column_2.getColumn().setWidth(200);
-		column_2.getColumn().setMoveable(true);
-		column_2.getColumn().setText("Column 2");
-		column_2.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 2 => " + element.toString();
-			}
-
-		});
-		column_2.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		TreeViewerColumn column_3 = new TreeViewerColumn(v, SWT.NONE);
-		column_3.getColumn().setWidth(200);
-		column_3.getColumn().setMoveable(true);
-		column_3.getColumn().setText("Column 3");
-		column_3.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 3 => " + element.toString();
-			}
-
-		});
-		column_3.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-
-		Button b = new Button(shell, SWT.PUSH);
-		b.setText("Edit-Element");
-		b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				MyModel root = (MyModel) v.getInput();
-				TreePath path = new TreePath(new Object[] { root,
-						root.child.get(1),
-						((MyModel) root.child.get(1)).child.get(0) });
-				v.editElement(path, 0);
-			}
-
-		});
-
-		b = new Button(shell, SWT.PUSH);
-		b.setText("Hide/Show 2nd Column");
-		b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		b.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				column_2.getColumn().setWidth(0);
-			}
-		});
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new GridLayout(2,true));
-		new Snippet055HideShowColumn(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet056BooleanCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet056BooleanCellEditor.java
deleted file mode 100644
index 2d0c08e..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet056BooleanCellEditor.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet056BooleanCellEditor {
-	public Snippet056BooleanCellEditor(final Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLinesVisible(true);
-		v.getTree().setHeaderVisible(true);
-
-		FocusCellOwnerDrawHighlighter h = new FocusCellOwnerDrawHighlighter(v) {
-
-			protected Color getSelectedCellBackgroundColorNoFocus(
-					ViewerCell cell) {
-				return shell.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			}
-
-			protected Color getSelectedCellForegroundColorNoFocus(
-					ViewerCell cell) {
-				return shell.getDisplay().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
-			}
-		};
-
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,h);
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v);
-
-		TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-		final BooleanCellEditor booleanCellEditor = new BooleanCellEditor(v.getTree());
-
-		TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((MyModel) element).flag+"";
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return booleanCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return new Boolean(((MyModel) element).flag);
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).flag = ((Boolean)value).booleanValue();
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 3");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 3 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet056BooleanCellEditor(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public boolean flag;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-			this.flag = counter % 2 == 0;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet057TableViewerSkipHiddenCells.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet057TableViewerSkipHiddenCells.java
deleted file mode 100644
index d5a3e29..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet057TableViewerSkipHiddenCells.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example of showing how easy cell-navigation with hidden cells is in 3.4
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- */
-public class Snippet057TableViewerSkipHiddenCells {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class Person {
-		public String givenname;
-		public String surname;
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-
-	}
-
-	protected abstract class AbstractEditingSupport extends EditingSupport {
-
-		private TextCellEditor editor;
-
-		public AbstractEditingSupport(TableViewer viewer) {
-			super(viewer);
-			editor = new TextCellEditor(viewer.getTable());
-		}
-
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-
-		protected void setValue(Object element, Object value) {
-			this.doSetValue(element, value);
-			this.getViewer().update(element, null);
-		}
-
-		protected abstract void doSetValue(Object element, Object value);
-
-	}
-
-	public Snippet057TableViewerSkipHiddenCells(Shell shell) {
-
-		final TableViewer tableviewer = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		tableviewer.setContentProvider(new MyContentProvider());
-		MenuManager mgr = new MenuManager();
-		mgr.add(new Action("toggle surname visibility") {
-
-			public void run() {
-				if( tableviewer.getTable().getColumn(1).getWidth() == 0) {
-					tableviewer.getTable().getColumn(1).setWidth(200);
-				} else {
-					tableviewer.getTable().getColumn(1).setWidth(0);	
-				}
-				
-			}
-			
-		});
-		tableviewer.getControl().setMenu(mgr.createContextMenu(tableviewer.getControl())); 
-
-		// Column 1
-		TableViewerColumn column = new TableViewerColumn(tableviewer, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(false);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).givenname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(tableviewer) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).givenname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).givenname = value.toString();
-			}
-
-		});
-
-		// Column 2 is zero-width hidden
-		column = new TableViewerColumn(tableviewer, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(false);
-		column.getColumn().setResizable(false);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).surname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(tableviewer) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).surname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).surname = value.toString();
-			}
-
-		});
-
-		// column 3
-		column = new TableViewerColumn(tableviewer, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setMoveable(false);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).email;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(tableviewer) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).email;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).email = value.toString();
-			}
-
-		});
-
-		Person[] model = this.createModel();
-		tableviewer.setInput(model);
-		tableviewer.getTable().setLinesVisible(true);
-		tableviewer.getTable().setHeaderVisible(true);
-
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(
-				tableviewer, new FocusCellOwnerDrawHighlighter(tableviewer));
-
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				tableviewer) {
-
-			protected boolean isEditorActivationEvent(
-
-			ColumnViewerEditorActivationEvent event) {
-
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
-						&& event.keyCode == SWT.CR
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-
-			}
-
-		};
-
-		TableViewerEditor.create(tableviewer, focusCellManager, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-	}
-
-	private Person[] createModel() {
-		Person[] elements = new Person[4];
-		elements[0] = new Person("Tom", "Schindl",
-				"tom.schindl@bestsolution.at");
-		elements[1] = new Person("Boris", "Bokowski",
-				"Boris_Bokowski@ca.ibm.com");
-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com");
-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org");
-
-		return elements;
-
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet057TableViewerSkipHiddenCells(shell);
-		shell.open();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-
-		display.dispose();
-
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TableCursor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TableCursor.java
deleted file mode 100644
index e3b0c9b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TableCursor.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.AbstractTableViewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.*;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.*;
-
-
-public class TableCursor extends AbstractCellCursor {
-	
-	public TableCursor(AbstractTableViewer viewer) {
-		super(viewer,SWT.NONE);
-	}
-	
-	protected void paint(Event event) {
-		if (getSelectedCells().length == 1 && getSelectedCells()[0] == null) return;
-		ViewerCell cell = getSelectedCells()[0];
-		
-		GC gc = event.gc;
-		Display display = getDisplay();
-		gc.setBackground(getBackground());
-		gc.setForeground(getForeground());
-		gc.fillRectangle(event.x, event.y, event.width, event.height);
-		int x = 0;
-		Point size = getSize();
-		Image image = cell.getImage();
-		if (image != null) {
-			Rectangle imageSize = image.getBounds();
-			int imageY = (size.y - imageSize.height) / 2;
-			gc.drawImage(image, x, imageY);
-			x += imageSize.width;
-		}
-		String text = cell.getText();
-		if (text != "") { //$NON-NLS-1$
-			Rectangle bounds = cell.getBounds();
-			Point extent = gc.stringExtent(text);
-			// Temporary code - need a better way to determine table trim
-			String platform = SWT.getPlatform();
-			if ("win32".equals(platform)) { //$NON-NLS-1$
-				if (((Table)getParent()).getColumnCount() == 0 || cell.getColumnIndex() == 0) {
-					x += 2; 
-				} else {
-					int alignmnent = ((Table)getParent()).getColumn(cell.getColumnIndex()).getAlignment();
-					switch (alignmnent) {
-						case SWT.LEFT:
-							x += 6;
-							break;
-						case SWT.RIGHT:
-							x = bounds.width - extent.x - 6;
-							break;
-						case SWT.CENTER:
-							x += (bounds.width - x - extent.x) / 2;
-							break;
-					}
-				}
-			}  else {
-				if (((Table)getParent()).getColumnCount() == 0) {
-					x += 5; 
-				} else {
-					int alignmnent = ((Table)getParent()).getColumn(cell.getColumnIndex()).getAlignment();
-					switch (alignmnent) {
-						case SWT.LEFT:
-							x += 5;
-							break;
-						case SWT.RIGHT:
-							x = bounds.width- extent.x - 2;
-							break;
-						case SWT.CENTER:
-							x += (bounds.width - x - extent.x) / 2 + 2;
-							break;
-					}
-				}
-			}
-			int textY = (size.y - extent.y) / 2;
-			gc.drawString(text, x, textY);
-		}
-		if (isFocusControl()) {
-			gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
-			gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
-			gc.drawFocus(0, 0, size.x, size.y);
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet020CustomizedControlTooltips.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet020CustomizedControlTooltips.java
deleted file mode 100644
index 6cb2caa..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet020CustomizedControlTooltips.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.window;
-
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.window.DefaultToolTip;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Demonstrate usage of custom toolstips for controls
- * 
- * @author Tom Schindl
- * 
- */
-public class Snippet020CustomizedControlTooltips {
-	protected class MyToolTip extends ToolTip {
-		
-		private Shell parentShell;
-		
-		private String headerText = "ToolTip-Header";
-		
-		public static final String HEADER_BG_COLOR = Policy.JFACE + ".TOOLTIP_HEAD_BG_COLOR";
-		
-		public static final String HEADER_FG_COLOR = Policy.JFACE + ".TOOLTIP_HEAD_FG_COLOR";
-		
-		public static final String HEADER_FONT = Policy.JFACE + ".TOOLTIP_HEAD_FONT";
-		
-		public static final String HEADER_CLOSE_ICON = Policy.JFACE + ".TOOLTIP_CLOSE_ICON";
-		public static final String HEADER_HELP_ICON = Policy.JFACE + ".TOOLTIP_HELP_ICON";
-		
-		public MyToolTip(Control control) {
-			super(control);
-			this.parentShell = control.getShell();
-		}
-
-		protected Composite createToolTipContentArea(Event event,
-				Composite parent) {
-			Composite comp = new Composite(parent,SWT.NONE);
-			
-			GridLayout gl = new GridLayout(1,false);
-			gl.marginBottom=0;
-			gl.marginTop=0;
-			gl.marginHeight=0;
-			gl.marginWidth=0;
-			gl.marginLeft=0;
-			gl.marginRight=0;
-			gl.verticalSpacing=1;
-			comp.setLayout(gl);
-			
-			Composite topArea = new Composite(comp,SWT.NONE);
-			GridData data = new GridData(SWT.FILL,SWT.FILL,true,false);
-			data.widthHint=200;
-			topArea.setLayoutData(data);
-			topArea.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			
-			gl = new GridLayout(2,false);
-			gl.marginBottom=2;
-			gl.marginTop=2;
-			gl.marginHeight=0;
-			gl.marginWidth=0;
-			gl.marginLeft=5;
-			gl.marginRight=2;
-			
-			topArea.setLayout(gl);
-			
-			Label l = new Label(topArea,SWT.NONE);
-			l.setText(headerText);
-			l.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			l.setFont(JFaceResources.getFontRegistry().get(HEADER_FONT));
-			l.setForeground(JFaceResources.getColorRegistry().get(HEADER_FG_COLOR));
-			l.setLayoutData(new GridData(GridData.FILL_BOTH));
-			
-			Composite iconComp = new Composite(topArea,SWT.NONE);
-			iconComp.setLayoutData(new GridData());
-			iconComp.setLayout(new GridLayout(2,false));
-			iconComp.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			
-			gl = new GridLayout(2,false);
-			gl.marginBottom=0;
-			gl.marginTop=0;
-			gl.marginHeight=0;
-			gl.marginWidth=0;
-			gl.marginLeft=0;
-			gl.marginRight=0;
-			iconComp.setLayout(gl);
-			
-			Label helpIcon = new Label(iconComp,SWT.NONE);
-			helpIcon.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			helpIcon.setImage(JFaceResources.getImage(HEADER_HELP_ICON));
-			helpIcon.addMouseListener(new MouseAdapter() {
-
-				public void mouseDown(MouseEvent e) {
-					hide();
-					openHelp();
-				}
-			});
-			
-			
-			Label closeIcon = new Label(iconComp,SWT.NONE);
-			closeIcon.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			closeIcon.setImage(JFaceResources.getImage(HEADER_CLOSE_ICON));
-			closeIcon.addMouseListener(new MouseAdapter() {
-
-				public void mouseDown(MouseEvent e) {
-					parentShell.setFocus();
-					hide();
-				}
-			});
-			
-			createContentArea(comp).setLayoutData(new GridData(GridData.FILL_BOTH));
-			
-			return comp;
-		}
-		
-		protected Composite createContentArea(Composite parent) {
-			return new Composite(parent,SWT.NONE);
-		}
-		
-		protected void openHelp() {
-			parentShell.setFocus();
-		}
-	}
-
-	public Snippet020CustomizedControlTooltips(final Shell parent) {
-		JFaceResources.getColorRegistry().put(MyToolTip.HEADER_BG_COLOR, new RGB(255,255,255));
-		JFaceResources.getFontRegistry().put(MyToolTip.HEADER_FONT, JFaceResources.getFontRegistry().getBold(JFaceResources.getDefaultFont().getFontData()[0].getName()).getFontData());
-
-		
-		JFaceResources.getImageRegistry().put(MyToolTip.HEADER_CLOSE_ICON,ImageDescriptor.createFromFile(Snippet020CustomizedControlTooltips.class, "showerr_tsk.gif"));
-		JFaceResources.getImageRegistry().put(MyToolTip.HEADER_HELP_ICON,ImageDescriptor.createFromFile(Snippet020CustomizedControlTooltips.class, "linkto_help.gif"));
-		
-		Text text = new Text(parent,SWT.BORDER);
-		text.setText("Hello World");
-
-		MyToolTip myTooltipLabel = new MyToolTip(text) {
-
-			protected Composite createContentArea(Composite parent) {
-				Composite comp = super.createContentArea(parent);
-				comp.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-				FillLayout layout = new FillLayout();
-				layout.marginWidth=5;
-				comp.setLayout(layout);
-				Link l = new Link(comp,SWT.NONE);
-				l.setText("This a custom tooltip you can: \n- pop up any control you want\n- define delays\n - ... \nGo and get Eclipse M4 from <a>http://www.eclipse.org</a>");
-				l.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-				l.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						openURL();
-					}
-				});
-				return comp;
-			}
-			
-			protected void openURL() {
-				MessageBox box = new MessageBox(parent,SWT.ICON_INFORMATION);
-				box.setText("Eclipse.org");
-				box.setMessage("Here is where we'd open the URL.");
-				box.open();
-			}
-
-			protected void openHelp() {
-				MessageBox box = new MessageBox(parent,SWT.ICON_INFORMATION);
-				box.setText("Info");
-				box.setMessage("Here is where we'd show some information.");
-				box.open();
-			}
-			
-		};
-		myTooltipLabel.setShift(new Point(-5, -5));
-		myTooltipLabel.setHideOnMouseDown(false);
-		myTooltipLabel.activate();
-
-		text = new Text(parent,SWT.BORDER);
-		text.setText("Hello World");
-		DefaultToolTip toolTip = new DefaultToolTip(text);
-		toolTip.setText("Hello World\nHello World");
-		toolTip.setBackgroundColor(parent.getDisplay().getSystemColor(SWT.COLOR_RED));
-		
-		Button b = new Button(parent,SWT.PUSH);
-		b.setText("Popup on press");
-		
-		final DefaultToolTip toolTipDelayed = new DefaultToolTip(b,ToolTip.RECREATE,true);
-		toolTipDelayed.setText("Hello World\nHello World");
-		toolTipDelayed.setBackgroundColor(parent.getDisplay().getSystemColor(SWT.COLOR_RED));
-		toolTipDelayed.setHideDelay(2000);
-		
-		b.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				toolTipDelayed.show(new Point(0,0));
-			}
-		});
-		
-		
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new RowLayout());
-		new Snippet020CustomizedControlTooltips(shell);
-
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet023TreeViewerCustomTooltips.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet023TreeViewerCustomTooltips.java
deleted file mode 100755
index ceeab83..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet023TreeViewerCustomTooltips.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.window;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * A simple TreeViewer to demonstrate how custom tooltips could be created
- * easily. This is an extended version from
- * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet125.java
- * 
- * This code is for users pre 3.3 others could use newly added tooltip support in
- * {@link CellLabelProvider}
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet023TreeViewerCustomTooltips {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public Snippet023TreeViewerCustomTooltips(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-		v.getTree().setToolTipText("");
-
-		final Listener labelListener = new Listener () {
-			public void handleEvent (Event event) {
-				Label label = (Label)event.widget;
-				Shell shell = label.getShell ();
-				switch (event.type) {
-					case SWT.MouseDown:
-						Event e = new Event ();
-						e.item = (TreeItem) label.getData ("_TABLEITEM");
-						// Assuming table is single select, set the selection as if
-						// the mouse down event went through to the table
-						v.getTree().setSelection (new TreeItem [] {(TreeItem) e.item});
-						v.getTree().notifyListeners (SWT.Selection, e);
-						shell.dispose ();
-						v.getTree().setFocus();
-						break;
-					case SWT.MouseExit:
-						shell.dispose ();
-						break;
-				}
-			}
-		};
-		
-		Listener treeListener = new Listener () {
-			Shell tip = null;
-			Label label = null;
-			public void handleEvent (Event event) {
-				switch (event.type) {
-					case SWT.Dispose:
-					case SWT.KeyDown:
-					case SWT.MouseMove: {
-						if (tip == null) break;
-						tip.dispose ();
-						tip = null;
-						label = null;
-						break;
-					}
-					case SWT.MouseHover: {
-						Point coords = new Point(event.x, event.y);
-						TreeItem item = v.getTree().getItem(coords);
-						if (item != null) {
-							int columns = v.getTree().getColumnCount();
-
-							for (int i = 0; i < columns || i == 0; i++) {
-								if (item.getBounds(i).contains(coords)) {
-									if (tip != null  && !tip.isDisposed ()) tip.dispose ();
-									tip = new Shell (v.getTree().getShell(), SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
-									tip.setBackground (v.getTree().getDisplay().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
-									FillLayout layout = new FillLayout ();
-									layout.marginWidth = 2;
-									tip.setLayout (layout);
-									label = new Label (tip, SWT.NONE);
-									label.setForeground (v.getTree().getDisplay().getSystemColor (SWT.COLOR_INFO_FOREGROUND));
-									label.setBackground (v.getTree().getDisplay().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
-									label.setData ("_TABLEITEM", item);
-									label.setText ("Tooltip: " + item.getData()+ " => Column: " + i);
-									label.addListener (SWT.MouseExit, labelListener);
-									label.addListener (SWT.MouseDown, labelListener);
-									Point size = tip.computeSize (SWT.DEFAULT, SWT.DEFAULT);
-									Rectangle rect = item.getBounds (i);
-									Point pt = v.getTree().toDisplay (rect.x, rect.y);
-									tip.setBounds (pt.x, pt.y, size.x, size.y);
-									tip.setVisible (true);
-									break;
-								}
-							}
-						}
-					}
-				}
-			}
-		};
-		v.getTree().addListener (SWT.Dispose, treeListener);
-		v.getTree().addListener (SWT.KeyDown, treeListener);
-		v.getTree().addListener (SWT.MouseMove, treeListener);
-		v.getTree().addListener (SWT.MouseHover, treeListener);
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet023TreeViewerCustomTooltips(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet031TableStaticTooltip.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet031TableStaticTooltip.java
deleted file mode 100644
index 88e2b9c..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet031TableStaticTooltip.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.window;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.DefaultToolTip;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example how one can create a tooltip which is not recreated for every table
- * cell
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet031TableStaticTooltip {
-	private static Image[] images;
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) inputElement;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if (columnIndex == 1) {
-				return images[((MyModel) element).counter % 4];
-			}
-
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-	}
-
-	private static Image createImage(Display display, int red, int green,
-			int blue) {
-		Color color = new Color(display, red, green, blue);
-		Image image = new Image(display, 10, 10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-
-		return image;
-	}
-
-	public Snippet031TableStaticTooltip(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		DefaultToolTip toolTip = new DefaultToolTip(v.getControl(),
-				ToolTip.NO_RECREATE, false);
-		toolTip.setText("Hello World\nHello World");
-		toolTip.setBackgroundColor(v.getTable().getDisplay().getSystemColor(
-				SWT.COLOR_RED));
-		toolTip.setShift(new Point(10, 5));
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		images = new Image[4];
-		images[0] = createImage(display, 0, 0, 255);
-		images[1] = createImage(display, 0, 255, 255);
-		images[2] = createImage(display, 0, 255, 0);
-		images[3] = createImage(display, 255, 0, 255);
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet031TableStaticTooltip(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		for (int i = 0; i < images.length; i++) {
-			images[i].dispose();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/linkto_help.gif b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/linkto_help.gif
deleted file mode 100644
index 86550fe..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/linkto_help.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/showerr_tsk.gif b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/showerr_tsk.gif
deleted file mode 100644
index 2ff6678..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/showerr_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/wizard/Snippet047WizardWithLongRunningOperation.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/wizard/Snippet047WizardWithLongRunningOperation.java
deleted file mode 100644
index 20b649c..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/wizard/Snippet047WizardWithLongRunningOperation.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.wizard;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.ProgressBar;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example how to load data from a background thread into a TableViewer
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 1.0
- */
-public class Snippet047WizardWithLongRunningOperation {
-
-	private static class MyWizard extends Wizard {
-
-		private int loadingType;
-
-		public MyWizard(int loadingType) {
-			this.loadingType = loadingType;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.wizard.Wizard#addPages()
-		 */
-		public void addPages() {
-			addPage(new MyWizardPage("Standard Page"));
-			addPage(new MyWizardPageThread("Thread Page", loadingType));
-		}
-
-		public boolean performFinish() {
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.wizard.Wizard#canFinish()
-		 */
-		public boolean canFinish() {
-			IWizardPage[] pages = getPages();
-			for (int i = 0; i < pages.length; i++) {
-				if (!pages[i].isPageComplete()) {
-					return false;
-				}
-			}
-
-			return true;
-		}
-
-	};
-
-	private static class MyWizardPage extends WizardPage {
-
-		protected MyWizardPage(String pageName) {
-			super(pageName);
-			setTitle(pageName);
-		}
-
-		public void createControl(Composite parent) {
-			Composite comp = new Composite(parent, SWT.NONE);
-			setControl(comp);
-		}
-	}
-
-	private static class MyWizardPageThread extends WizardPage {
-		private int loadingType;
-		private boolean loading = true;
-		private TableViewer v;
-
-		protected MyWizardPageThread(String pageName, int loadingType) {
-			super(pageName);
-			this.loadingType = loadingType;
-			setTitle(pageName);
-		}
-
-		public void createControl(final Composite parent) {
-			final Composite comp = new Composite(parent, SWT.NONE);
-			comp.setLayout(new GridLayout(1, false));
-
-			v = new TableViewer(comp, SWT.FULL_SELECTION);
-			v.setContentProvider(new ArrayContentProvider());
-			v.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
-			v.addSelectionChangedListener(new ISelectionChangedListener() {
-
-				public void selectionChanged(SelectionChangedEvent event) {
-					getWizard().getContainer().updateButtons();
-				}
-
-			});
-
-			final Composite barContainer = new Composite(comp, SWT.NONE);
-			barContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			barContainer.setLayout(new GridLayout(2, false));
-
-			Label l = new Label(barContainer, SWT.NONE);
-			l.setText("Loading Data");
-
-			final ProgressBar bar = new ProgressBar(barContainer,
-					(loadingType == 1) ? SWT.INDETERMINATE : SWT.NONE);
-			bar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-			if (loadingType == 2) {
-				bar.setMaximum(10);
-			}
-
-			setControl(comp);
-
-			Thread t = new Thread() {
-
-				public void run() {
-					if (loadingType == 1) {
-						try {
-							Thread.sleep(10000);
-							final ArrayList ms = new ArrayList();
-							for (int i = 0; i < 10; i++) {
-								ms.add(new MyModel(i));
-							}
-
-							if (v.getTable().isDisposed()) {
-								return;
-							}
-
-							parent.getDisplay().asyncExec(new Runnable() {
-
-								public void run() {
-									v.setInput(ms);
-									((GridData) barContainer.getLayoutData()).exclude = true;
-									comp.layout(true);
-								}
-
-							});
-						} catch (InterruptedException e) {
-							// TODO Auto-generated catch block
-							e.printStackTrace();
-						}
-					} else {
-						final ArrayList ms = new ArrayList();
-						parent.getDisplay().syncExec(new Runnable() {
-
-							public void run() {
-								v.setInput(ms);
-							}
-
-						});
-
-						for (int i = 0; i < 10; i++) {
-							final int j = i;
-							if (v.getTable().isDisposed()) {
-								return;
-							}
-							parent.getDisplay().asyncExec(new Runnable() {
-
-								public void run() {
-									MyModel tmp = new MyModel(j);
-									v.add(tmp);
-									ms.add(tmp);
-									bar.setSelection(j + 1);
-								}
-							});
-
-							try {
-								Thread.sleep(1000);
-							} catch (InterruptedException e) {
-								// TODO Auto-generated catch block
-								e.printStackTrace();
-							}
-						}
-
-						parent.getDisplay().asyncExec(new Runnable() {
-
-							public void run() {
-								((GridData) barContainer.getLayoutData()).exclude = true;
-								comp.layout(true);
-							}
-
-						});
-					}
-
-					parent.getDisplay().syncExec(new Runnable() {
-
-						public void run() {
-							loading = false;
-							getWizard().getContainer().updateButtons();
-						}
-
-					});
-				}
-
-			};
-
-			t.start();
-		}
-
-		public boolean isPageComplete() {
-			return !loading && !v.getSelection().isEmpty();
-		}
-
-	}
-
-	private static class MyModel {
-		private int index;
-
-		public MyModel(int index) {
-			this.index = index;
-		}
-
-		public String toString() {
-			return "Item-" + index;
-		}
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		final Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		Button b = new Button(shell, SWT.PUSH);
-		b.setText("Load in one Chunk");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				WizardDialog dialog = new WizardDialog(shell, new MyWizard(1));
-				dialog.open();
-			}
-
-		});
-
-		b = new Button(shell, SWT.PUSH);
-		b.setText("Load Item by Item");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				WizardDialog dialog = new WizardDialog(shell, new MyWizard(2));
-				dialog.open();
-			}
-
-		});
-
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF b/examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF
deleted file mode 100644
index 6f9a9e3..0000000
--- a/examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JFace Snippets Plug-in
-Bundle-SymbolicName: org.eclipse.jface.snippets
-Bundle-Version: 3.3.0.qualifier
-Bundle-Vendor: Eclipse.org
-Require-Bundle: org.eclipse.jface,
- org.eclipse.jface.databinding,
- org.eclipse.core.runtime
-Export-Package: org.eclipse.jface.snippets.dialogs,
- org.eclipse.jface.snippets.layout,
- org.eclipse.jface.snippets.viewers,
- org.eclipse.jface.snippets.window
diff --git a/examples/org.eclipse.jface.snippets/build.properties b/examples/org.eclipse.jface.snippets/build.properties
deleted file mode 100644
index c907c60..0000000
--- a/examples/org.eclipse.jface.snippets/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = Eclipse JFace Snippets/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/examples/org.eclipse.ui.examples.contributions/.classpath b/examples/org.eclipse.ui.examples.contributions/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.contributions/.project b/examples/org.eclipse.ui.examples.contributions/.project
deleted file mode 100644
index 1f60479..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.contributions</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a49b5f1..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,59 +0,0 @@
-#Mon Nov 27 18:05:52 GMT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 455940f..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Sun Mar 09 10:51:28 EDT 2008
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.4\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d8e8469..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:12:29 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/examples/org.eclipse.ui.examples.contributions/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.contributions/META-INF/MANIFEST.MF
deleted file mode 100644
index 4be57e1..0000000
--- a/examples/org.eclipse.ui.examples.contributions/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %contributions.Activator.name
-Bundle-SymbolicName: org.eclipse.ui.examples.contributions; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-Activator: org.eclipse.ui.examples.contributions.Activator
-Require-Bundle: org.eclipse.ui;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.core.runtime,
- org.eclipse.core.expressions;bundle-version="[3.3.0,4.0.0)"
-Bundle-Vendor: %contributions.Activator.providerName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.ui.examples.contributions/about.html b/examples/org.eclipse.ui.examples.contributions/about.html
deleted file mode 100755
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.contributions/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.contributions/build.properties b/examples/org.eclipse.ui.examples.contributions/build.properties
deleted file mode 100644
index 7b97eb1..0000000
--- a/examples/org.eclipse.ui.examples.contributions/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/change_obj.gif b/examples/org.eclipse.ui.examples.contributions/icons/change_obj.gif
deleted file mode 100755
index ce8bdb9..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/change_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/editor.gif b/examples/org.eclipse.ui.examples.contributions/icons/editor.gif
deleted file mode 100755
index c48d9a9..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/editor.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/new_wiz.gif b/examples/org.eclipse.ui.examples.contributions/icons/new_wiz.gif
deleted file mode 100644
index 7aea894..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/new_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/perspective.gif b/examples/org.eclipse.ui.examples.contributions/icons/perspective.gif
deleted file mode 100644
index 008fd7a..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/perspective.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/sample.gif b/examples/org.eclipse.ui.examples.contributions/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/sample2.gif b/examples/org.eclipse.ui.examples.contributions/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/info.product b/examples/org.eclipse.ui.examples.contributions/info.product
deleted file mode 100644
index 1d3d278..0000000
--- a/examples/org.eclipse.ui.examples.contributions/info.product
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="%info.product.name" id="org.eclipse.ui.examples.contributions.product" application="org.eclipse.ui.examples.contributions.application" useFeatures="false">
-
-   <aboutInfo>
-      <image path="product_lg.gif"/>
-      <text>
-         RCP Info product modified from the RCP Mail template
-      </text>
-   </aboutInfo>
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="icons/sample2.gif"/>
-
-
-   <launcher>
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.examples.contributions"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/examples/org.eclipse.ui.examples.contributions/plugin.properties b/examples/org.eclipse.ui.examples.contributions/plugin.properties
deleted file mode 100644
index 7131be8..0000000
--- a/examples/org.eclipse.ui.examples.contributions/plugin.properties
+++ /dev/null
@@ -1,74 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-contributions.Activator.name =  Command Contribution Examples
-contributions.Activator.providerName = Eclipse.org
-
-contributions.commands.category.name = Info Category
-contributions.commands.category.desc = Group info example contributions
-contributions.commands.globalCommand.name = Global Command
-contributions.globalActionSet.label = Global Action Set
-contributions.menus.globalMenu.label = Global Menu
-contributions.menus.globalMenu.mnemonic = M
-contributions.menus.globalCommand.mnemonic = G
-contributions.toolbars.globalCommand.tooltip = Say hello to the world
-
-contributions.viewCategory.name = View Contributions
-contributions.view.name = Info View
-contributions.view.count.name = Count Entries
-contributions.view.count.desc = Count the entries in the active view
-contributions.view.count.mnemonic = o
-contributions.view.swap.name = Swap Entries
-contributions.view.swap.tooltip = Swap the two selected entries
-contributions.view.refresh.mnemonic = R
-contributions.view.edit.name = Edit
-contributions.view.edit.mnemonic = E
-contributions.view.context.name = Info View Context
-
-contributions.editor.name = Info Editor
-contributions.editor.about.name = About Info Editor 
-contributions.editor.reset.name = Reset
-contributions.editor.reset.mnemonic = R
-contributions.editor.menu.label = Info
-contributions.editor.menu.mnemonic = I
-contributions.editor.delta.name = Show Delta
-contributions.editor.delta.tooltip = Show which fields have changed from the model
-
-
-CmdLabel=Test Trim Cmd
-Trim.item=Trim Item
-TrimItem.toolTip=TrimItem ToolTip
-Trim2.item=Trim Item 2
-TrimItem2.toolTip=TrimItem 2 ToolTip
-
-application.name = Contribution Application
-info.perspective.name = Info Perspective
-info.product.name = RCP Info Product
-menu.file.label = File
-menu.file.mnemonic = F
-menu.window.label = Window
-menu.window.mnemonic = W
-menu.help.label = Help
-menu.help.mnemonic = H
-person.category.name = Person
-person.wizard.name = Person
-scheme.info.name = Info Scheme
-command.new.tooltip = New Person
-command.exit.mnemonic = x
-command.newWindow.mnemonic = N
-command.aboutAction.mnemonic = A
-command.refresh.mnemonic = f
-command.activate.name = Activate Editor
-commandParameter.activate.index.name = Person index
-command.adminRights.name = Has Admin Rights
-command.adminRights.mnemonic = H
-command.login.name = Login
-command.login.mnemonic = L
-command.aboutXml.label = About XML
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.contributions/plugin.xml b/examples/org.eclipse.ui.examples.contributions/plugin.xml
deleted file mode 100644
index 96fe1f8..0000000
--- a/examples/org.eclipse.ui.examples.contributions/plugin.xml
+++ /dev/null
@@ -1,739 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-   <!-- A command with a default handler, effectively global but it can -->
-   <!-- be overriden by part contributions -->
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="%contributions.commands.category.name"
-            description="%contributions.commands.category.desc"
-            id="org.eclipse.ui.examples.contributions.commands.category">
-      </category>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            defaultHandler="org.eclipse.ui.examples.contributions.handlers.GlobalMenuHandler"
-            id="org.eclipse.ui.examples.contributions.commands.globalCommand"
-            name="%contributions.commands.globalCommand.name">
-      </command>
-   </extension>
-   
-   <!-- Binding CTRL+6 to the global command -->
-   <extension
-         point="org.eclipse.ui.bindings">
-      <scheme
-            id="org.eclipse.ui.examples.contributions.scheme"
-            name="%scheme.info.name">
-      </scheme>
-      <key
-            commandId="org.eclipse.ui.examples.contributions.commands.globalCommand"
-            contextId="org.eclipse.ui.contexts.window"
-            sequence="M1+6"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+Q">
-      </key>
-      <key
-            commandId="org.eclipse.ui.window.newWindow"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+N">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.save"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+S">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.saveAll"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+SHIFT+S">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.close"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+W">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.closeAll"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+SHIFT+W">
-      </key>
-      <key
-            commandId="org.eclipse.ui.window.showViewMenu"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+F10">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.refresh"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="F5">
-      </key>
-   </extension>
-   
-   <!-- placing the global command in the main menu and main toolbar with a -->
-   <!-- condition.  You can do it without a condition but that's extremely  -->
-   <!-- uncommon. You can treat an actionSet like a context within the --> 
-   <!-- condition. -->
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            id="org.eclipse.ui.examples.contributions.globalActionSet"
-            label="%contributions.globalActionSet.label"
-            visible="false">
-      </actionSet>
-   </extension>
-   
-   <!-- You can reuse expressions for conditions by defining them once -->
-   <extension
-         point="org.eclipse.core.expressions.definitions">
-      <definition
-            id="org.eclipse.ui.examples.contributions.inGlobalActionSet">
-         <with
-               variable="activeContexts">
-            <iterate
-                  operator="or">
-               <equals
-                     value="org.eclipse.ui.examples.contributions.globalActionSet">
-               </equals>
-            </iterate>
-         </with>
-      </definition>
-      <definition
-            id="org.eclipse.ui.examples.contributions.view.inView">
-         <with
-               variable="activePartId">
-            <equals
-                  value="org.eclipse.ui.examples.contributions.view">
-            </equals>
-         </with>
-      </definition>
-      <definition
-            id="org.eclipse.ui.examples.contributions.view.activeEditor">
-         <with
-               variable="activeEditorId">
-            <equals
-                  value="org.eclipse.ui.examples.contributions.editor">
-            </equals>
-         </with>
-      </definition>
-   </extension>
-   
-   <!-- menus are defined hierarchically from a root, and separate from -->
-   <!-- toolbars. -->
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
-         <menu
-               label="%contributions.menus.globalMenu.label"
-               mnemonic="%contributions.menus.globalMenu.label"
-               id="org.eclipse.ui.examples.contributions.menus.globalMenu">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.commands.globalCommand"
-                  mnemonic="%contributions.menus.globalCommand.mnemonic"
-                  id="org.eclipse.ui.examples.contributions.menus.globalCommand">
-               <visibleWhen>
-                  <reference
-                        definitionId="org.eclipse.ui.examples.contributions.inGlobalActionSet">
-                  </reference>
-               </visibleWhen>
-            </command>
-            <separator
-                  name="additions"
-                  visible="false">
-            </separator>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
-         <toolbar
-               id="org.eclipse.ui.examples.contributions.toolbars.sampleToolbar">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.commands.globalCommand"
-                  icon="icons/sample.gif"
-                  tooltip="%contributions.toolbars.globalCommand.tooltip"
-                  id="org.eclipse.ui.examples.contributions.toolbars.globalCommand">
-               <visibleWhen>
-                  <reference
-                        definitionId="org.eclipse.ui.examples.contributions.inGlobalActionSet">
-                  </reference>
-               </visibleWhen>
-            </command>
-            <separator
-                  name="additions"
-                  visible="false">
-            </separator>
-         </toolbar>
-      </menuContribution>
-   </extension>
-   
-   <!-- Create a view and some view commands -->
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            id="org.eclipse.ui.examples.contributions.viewCategory"
-            name="%contributions.viewCategory.name">
-      </category>
-      <view
-            category="org.eclipse.ui.examples.contributions.viewCategory"
-            class="org.eclipse.ui.examples.contributions.view.InfoView"
-            id="org.eclipse.ui.examples.contributions.view"
-            name="%contributions.view.name">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.view.count"
-            description="%contributions.view.count.desc"
-            name="%contributions.view.count.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.view.swap"
-            name="%contributions.view.swap.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.view.edit"
-            name="%contributions.view.edit.name">
-      </command>
-      <command
-            id="org.eclipse.ui.examples.contributions.editor.infoAbout"
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            name="%contributions.editor.about.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.view.adminRights"
-            name="%command.adminRights.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            defaultHandler="org.eclipse.ui.examples.contributions.view.LoginHandler"
-            id="org.eclipse.ui.examples.contributions.view.login"
-            name="%command.login.name">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.examples.contributions.view?after=additions">
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.count"
-               mnemonic="%contributions.view.count.mnemonic">
-         </command>
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.edit"
-               mnemonic="%contributions.view.edit.mnemonic">
-         </command>
-         <command
-               commandId="org.eclipse.ui.file.refresh"
-               mnemonic="%contributions.view.refresh.mnemonic">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.examples.contributions.view?after=additions">
-         <command
-               commandId="org.eclipse.ui.newWizard"
-               icon="icons/new_wiz.gif"
-               style="push"
-               tooltip="%command.new.tooltip">
-            <parameter
-                  name="newWizardId"
-                  value="org.eclipse.ui.examples.contributions.wizard.newPerson">
-            </parameter>
-         </command>
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.swap"
-               label="%contributions.view.swap.name"
-               tooltip="%contributions.view.swap.tooltip">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.examples.contributions.view?after=additions">
-         <command
-               commandId="org.eclipse.ui.file.refresh"
-               mnemonic="%contributions.view.refresh.mnemonic">
-         </command>
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.login"
-               mnemonic="%command.login.mnemonic"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.adminRights"
-               mnemonic="%command.adminRights.mnemonic"
-               style="toggle">
-            <visibleWhen
-                  checkEnabled="true">
-            </visibleWhen>
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.popup.any?after=additions">
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.edit"
-               mnemonic="%contributions.view.edit.mnemonic">
-            <visibleWhen>
-               <with
-                     variable="activeMenuSelection">
-                  <iterate>
-                     <adapt
-                           type="org.eclipse.ui.examples.contributions.model.Person">
-                     </adapt>
-                  </iterate>
-               </with>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:help?after=additions">
-         <command
-               commandId="org.eclipse.ui.examples.contributions.editor.infoAbout"
-               style="push">
-            <visibleWhen
-                  checkEnabled="true">
-            </visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.ui.examples.contributions.view.RefreshInfoHandler"
-            commandId="org.eclipse.ui.file.refresh">
-         <activeWhen>
-            <reference
-                  definitionId="org.eclipse.ui.examples.contributions.view.inView">
-            </reference>
-         </activeWhen>
-      </handler>
-      <handler
-            class="org.eclipse.ui.examples.contributions.view.SwapInfoHandler"
-            commandId="org.eclipse.ui.examples.contributions.view.swap">
-         <activeWhen>
-            <reference
-                  definitionId="org.eclipse.ui.examples.contributions.view.inView">
-            </reference>
-         </activeWhen>
-         <enabledWhen>
-            <with
-                  variable="selection">
-               <count
-                     value="2">
-               </count>
-            </with>
-         </enabledWhen>
-      </handler>
-      <handler
-            class="org.eclipse.ui.examples.contributions.view.EditInfoHandler"
-            commandId="org.eclipse.ui.examples.contributions.view.edit">
-         <activeWhen>
-            <reference
-                  definitionId="org.eclipse.ui.examples.contributions.view.inView">
-            </reference>
-         </activeWhen>
-         <enabledWhen>
-            <with
-                  variable="selection">
-               <count
-                     value="1">
-               </count>
-            </with>
-         </enabledWhen>
-      </handler>
-      <handler
-            class="org.eclipse.ui.examples.contributions.handlers.InfoAboutHandler"
-            commandId="org.eclipse.ui.examples.contributions.editor.infoAbout">
-         <enabledWhen>
-            <with
-                  variable="activePart">
-               <instanceof
-                     value="org.eclipse.ui.examples.contributions.view.InfoView">
-               </instanceof>
-            </with>
-         </enabledWhen>
-      </handler>
-      <handler
-            class="org.eclipse.ui.examples.contributions.view.AdminHandler"
-            commandId="org.eclipse.ui.examples.contributions.view.adminRights">
-         <enabledWhen>
-            <and>
-               <count
-                     value="1">
-               </count>
-               <iterate>
-                  <instanceof
-                        value="org.eclipse.ui.examples.contributions.model.Person">
-                  </instanceof>
-               </iterate>
-               <with
-                     variable="org.eclipse.ui.examples.contributions.user">
-                  <test
-                        property="org.eclipse.ui.examples.contributions.user.isAdmin"
-                        value="true">
-                  </test>
-               </with>
-            </and>
-         </enabledWhen>
-      </handler>
-   </extension>
-   <extension
-         point="org.eclipse.ui.contexts">
-      <context
-            id="org.eclipse.ui.examples.contributions.view.context"
-            name="%contributions.view.context.name"
-            parentId="org.eclipse.ui.contexts.window">
-      </context>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.ui.examples.contributions.view.edit"
-            contextId="org.eclipse.ui.examples.contributions.view.context"
-            sequence="M1+O"
-            schemeId="org.eclipse.ui.examples.contributions.scheme">
-      </key>
-      <key
-            commandId="org.eclipse.ui.newWizard"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+SHIFT+P">
-            <parameter
-                  id="newWizardId"
-                  value="org.eclipse.ui.examples.contributions.wizard.newPerson">
-            </parameter>
-      </key>
-   </extension>
-   
-   <!-- Add an editor for the Person model and some commands -->
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            class="org.eclipse.ui.examples.contributions.editor.InfoEditor"
-            icon="icons/editor.gif"
-            id="org.eclipse.ui.examples.contributions.editor"
-            name="%contributions.editor.name">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.editor.reset"
-            name="%contributions.editor.reset.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.editor.delta"
-            name="%contributions.editor.delta.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            defaultHandler="org.eclipse.ui.examples.contributions.editor.ActivateEditorHandler"
-            id="org.eclipse.ui.examples.contributions.editor.activate"
-            name="%command.activate.name">
-         <commandParameter
-               id="org.eclipse.ui.examples.contributions.editor.activate.index"
-               name="%commandParameter.activate.index.name"
-               optional="false"
-               typeId="org.eclipse.ui.examples.contributions.IntegerType">
-         </commandParameter>
-      </command>
-      <commandParameterType
-            converter="org.eclipse.ui.examples.contributions.editor.IntegerTypeConverter"
-            id="org.eclipse.ui.examples.contributions.IntegerType"
-            type="java.lang.Integer">
-      </commandParameterType>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
-         <menu
-               id="org.eclipse.ui.examples.contributions.editor.menu"
-               label="%contributions.editor.menu.label"
-               mnemonic="%contributions.editor.menu.mnemonic">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.editor.reset"
-                  mnemonic="%contributions.editor.reset.mnemonic">
-               <visibleWhen>
-                  <reference
-                        definitionId="org.eclipse.ui.examples.contributions.view.activeEditor">
-                  </reference>
-               </visibleWhen>
-            </command>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
-         <toolbar
-               id="org.eclipse.ui.examples.contributions.editor.toolbar">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.editor.delta"
-                  icon="icons/change_obj.gif"
-                  tooltip="%contributions.editor.delta.tooltip">
-               <visibleWhen>
-                  <reference
-                        definitionId="org.eclipse.ui.examples.contributions.view.activeEditor">
-                  </reference>
-               </visibleWhen>
-            </command>
-         </toolbar>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.ui.examples.contributions.editor.DeltaInfoHandler"
-            commandId="org.eclipse.ui.examples.contributions.editor.delta">
-         <activeWhen>
-            <reference
-                  definitionId="org.eclipse.ui.examples.contributions.view.activeEditor">
-            </reference>
-         </activeWhen>
-      </handler>
-   </extension>
-   
-   <!-- adding a control and commands to the trim -->
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.trim.status">
-         <toolbar
-               id="org.eclipse.ui.examples.contributions.verticalTrim">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.item2"
-                  icon="icons/editor.gif"
-                  id="contributions.trimItem"
-                  label="%Trim.item"
-                  tooltip="%TrimItem.toolTip">
-            </command>
-            <control
-                  class="org.eclipse.ui.examples.contributions.ExampleControlContribution"
-                  id="contributions.controlContrib1">
-            </control>
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.item2"
-                  icon="icons/editor.gif"
-                  id="contributions.trimItem2"
-                  label="%Trim2.item"
-                  tooltip="%TrimItem2.toolTip">
-            </command>
-         </toolbar>
-      </menuContribution>
-      <!-- this is an example of an object contribution -->
-      <menuContribution
-            locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
-         <command
-               commandId="org.eclipse.ui.help.aboutAction"
-               label="%command.aboutXml.label"
-               style="push">
-            <visibleWhen
-                  checkEnabled="false">
-               <with
-                     variable="activeMenuSelection">
-                  <count
-                        value="1">
-                  </count>
-                  <iterate>
-                     <!-- I know it can't find this, just ignore it -->
-                     <adapt
-                           type="org.eclipse.core.resources.IFile">
-                        <test
-                              property="org.eclipse.core.resources.name"
-                              value="*.xml">
-                        </test>
-                        <test
-                              property="org.eclipse.core.resources.contentTypeId"
-                              value="org.eclipse.ant.core.antBuildFile">
-                        </test>
-                     </adapt>
-                  </iterate>
-               </with>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.eclipse.ui.examples.contributions.item2"
-            name="%CmdLabel">
-      </command>
-   </extension>
-   <extension
-         id="application"
-         name="%application.name"
-         point="org.eclipse.core.runtime.applications">
-      <application
-            cardinality="singleton-global"
-            thread="main"
-            visible="true">
-         <run
-               class="org.eclipse.ui.examples.contributions.rcp.ContributionApplication">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.ui.examples.contributions.rcp.Perspective"
-            fixed="true"
-            icon="icons/perspective.gif"
-            id="org.eclipse.ui.examples.contributions.perspective"
-            name="%info.perspective.name">
-      </perspective>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.ui.examples.contributions.application"
-            name="%info.product.name">
-         <property
-               name="windowImages"
-               value="icons/sample2.gif">
-         </property>
-         <property
-               name="aboutText"
-               value="RCP Info product modified from the RCP Mail template">
-         </property>
-         <property
-               name="aboutImage"
-               value="product_lg.gif">
-         </property>
-         <property
-               name="appName"
-               value="%info.product.name">
-         </property>
-      </product>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="file"
-               label="%menu.file.label"
-               mnemonic="%menu.file.mnemonic">
-            <command
-                  commandId="org.eclipse.ui.file.refresh"
-                  mnemonic="%command.refresh.mnemonic"
-                  style="push">
-            </command>
-            <separator
-                  name="sep1"
-                  visible="true">
-            </separator>
-            <command
-                  commandId="org.eclipse.ui.file.exit"
-                  mnemonic="%command.exit.mnemonic"
-                  style="push">
-            </command>
-         </menu>
-         <separator
-               name="additions"
-               visible="false">
-         </separator>
-         <menu
-               id="window"
-               label="%menu.window.label"
-               mnemonic="%menu.window.mnemonic">
-            <command
-                  commandId="org.eclipse.ui.window.newWindow"
-                  mnemonic="%command.newWindow.mnemonic"
-                  style="push">
-            </command>
-            <separator
-                  name="sep1"
-                  visible="true">
-            </separator>
-            <dynamic
-                  class="org.eclipse.ui.examples.contributions.editor.DynamicEditorList"
-                  id="org.eclipse.ui.tutorials.commands.dynamicEditorList">
-            </dynamic>
-         </menu>
-         <menu
-               id="help"
-               label="%menu.help.label"
-               mnemonic="%menu.help.mnemonic">
-            <command
-                  commandId="org.eclipse.ui.help.aboutAction"
-                  mnemonic="%command.aboutAction.mnemonic"
-                  style="push">
-            </command>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.main.toolbar">
-         <toolbar
-               id="org.eclipse.ui.examples.contributions.group.file">
-            <command
-                  commandId="org.eclipse.ui.file.save"
-                  style="push">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.file.saveAll"
-                  style="push">
-            </command>
-         </toolbar>
-         <separator
-               name="additions"
-               visible="false">
-         </separator>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.services">
-      <serviceFactory
-            factoryClass="org.eclipse.ui.examples.contributions.model.PersonServiceFactory">
-         <service
-               serviceClass="org.eclipse.ui.examples.contributions.model.IPersonService"/>
-      </serviceFactory>
-      <sourceProvider
-            provider="org.eclipse.ui.examples.contributions.model.UserSourceProvider">
-         <variable
-               name="org.eclipse.ui.examples.contributions.user"
-               priorityLevel="activeSite">
-         </variable>
-      </sourceProvider>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            id="org.eclipse.ui.examples.contributions.wizardCategory"
-            name="%person.category.name">
-      </category>
-      <wizard
-            category="org.eclipse.ui.examples.contributions.wizardCategory"
-            class="org.eclipse.ui.examples.contributions.model.PersonWizard"
-            id="org.eclipse.ui.examples.contributions.wizard.newPerson"
-            name="%person.wizard.name">
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="org.eclipse.ui.examples.contributions.model.UserPropertyTester"
-            id="org.eclipse.ui.examples.contributions.user.propertyTester"
-            namespace="org.eclipse.ui.examples.contributions.user"
-            properties="isAdmin,id"
-            type="org.eclipse.ui.examples.contributions.model.Person">
-      </propertyTester>
-   </extension>
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.contributions/plugin_customization.ini b/examples/org.eclipse.ui.examples.contributions/plugin_customization.ini
deleted file mode 100644
index 589ade4..0000000
--- a/examples/org.eclipse.ui.examples.contributions/plugin_customization.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.examples.contributions.scheme
-org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = false
diff --git a/examples/org.eclipse.ui.examples.contributions/product_lg.gif b/examples/org.eclipse.ui.examples.contributions/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/examples/org.eclipse.ui.examples.contributions/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/splash.bmp b/examples/org.eclipse.ui.examples.contributions/splash.bmp
deleted file mode 100644
index d7d2e30..0000000
--- a/examples/org.eclipse.ui.examples.contributions/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/Activator.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/Activator.java
deleted file mode 100644
index 308d069..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/Activator.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle.
- * 
- * @since 3.3
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.ui.examples.contributions"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-		DEBUG_COMMANDS = getDebugOption("/trace/commands"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given plug-in
-	 * relative path
-	 * 
-	 * @param path
-	 *            the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-	
-	/**
-	 * Piggy back of off org.eclipse.ui/trace/commands
-	 */
-	public static boolean DEBUG_COMMANDS = false;
-	
-	private static boolean getDebugOption(String option) {
-        return "true".equalsIgnoreCase(Platform.getDebugOption(PlatformUI.PLUGIN_ID + option)); //$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ContributionMessages.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ContributionMessages.java
deleted file mode 100644
index def585d..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ContributionMessages.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Externalized messages for the code in this plugin.
- * 
- * @since 3.3
- */
-public class ContributionMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.examples.contributions.messages";//$NON-NLS-1$
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ContributionMessages.class);
-	}
-	public static String DeltaInfoHandler_found;
-	public static String DeltaInfoHandler_notFound;
-	public static String DeltaInfoHandler_shellTitle;
-	public static String DynamicEditorList_label;
-	public static String EditInfoHandler_failed_to_open;
-	public static String InfoEditor_givenname;
-	public static String InfoEditor_surname;
-	public static String InfoView_about_msg;
-	public static String InfoView_countElements;
-	public static String PersonWizardPage_descriptoin;
-	public static String PersonWizardPage_error_alreadyExists;
-	public static String PersonWizardPage_error_missingGivenname;
-	public static String PersonWizardPage_error_missingSurname;
-	public static String PersonWizardPage_id_label;
-	public static String PersonWizardPage_title;
-	public static String SampleHandler_hello_msg;
-	public static String SampleHandler_plugin_name;
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ExampleControlContribution.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ExampleControlContribution.java
deleted file mode 100644
index 4516fe3..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ExampleControlContribution.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.contributions;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
-
-/**
- * Moved from org.eclipse.ui.examples.readmetool
- * 
- * @since 3.3
- */
-public class ExampleControlContribution extends
-		WorkbenchWindowControlContribution {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.ControlContribution#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createControl(Composite parent) {
-		// Create a composite to place the label in
-		Composite comp = new Composite(parent, SWT.NONE);
-
-		// Give some room around the control
-		FillLayout layout = new FillLayout();
-		layout.marginHeight = 2;
-		layout.marginWidth = 2;
-		comp.setLayout(layout);
-
-		// Create a label for the trim.
-		Label ccCtrl = new Label(comp, SWT.BORDER | SWT.CENTER);
-		ccCtrl.setBackground(parent.getDisplay().getSystemColor(
-				SWT.COLOR_DARK_BLUE));
-		ccCtrl.setForeground(parent.getDisplay()
-				.getSystemColor(SWT.COLOR_WHITE));
-		ccCtrl.setText(" Ctrl Contrib (" + getSideName(getCurSide()) + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-		ccCtrl.setToolTipText("Ctrl Contrib Tooltip"); //$NON-NLS-1$
-
-		return comp;
-	}
-
-	private String getSideName(int side) {
-		if (side == SWT.TOP)
-			return "Top"; //$NON-NLS-1$
-		if (side == SWT.BOTTOM)
-			return "Bottom"; //$NON-NLS-1$
-		if (side == SWT.LEFT)
-			return "Left"; //$NON-NLS-1$
-		if (side == SWT.RIGHT)
-			return "Right"; //$NON-NLS-1$
-
-		return "Unknown Side"; //$NON-NLS-1$
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/ActivateEditorHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/ActivateEditorHandler.java
deleted file mode 100644
index 94f8281..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/ActivateEditorHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.editor;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.contributions.model.PersonInput;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Activate an already open editor (although technically this would open a new
- * one as well)
- * 
- * @since 3.4
- */
-public class ActivateEditorHandler extends AbstractHandler {
-	public static final String ID = "org.eclipse.ui.examples.contributions.editor.activate"; //$NON-NLS-1$
-	public static final String PARM_EDITOR = "org.eclipse.ui.examples.contributions.editor.activate.index"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-		Object index = event.getObjectParameterForExecution(PARM_EDITOR);
-		if (!(index instanceof Integer)) {
-			throw new ExecutionException("Invalid index: " + index); //$NON-NLS-1$
-		}
-		PersonInput input = new PersonInput(((Integer) index).intValue());
-		try {
-			window.getActivePage().openEditor(input, InfoEditor.ID, true);
-		} catch (PartInitException e) {
-			throw new ExecutionException("Failed to activate editor", e); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DeltaInfoHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DeltaInfoHandler.java
deleted file mode 100644
index fd5a651..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DeltaInfoHandler.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.editor;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Show if there is any delta from the model for the active editor.
- * 
- * @since 3.3
- */
-public class DeltaInfoHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		InfoEditor editor = (InfoEditor) HandlerUtil
-				.getActiveEditorChecked(event);
-		Person local = editor.getCurrentPerson();
-
-		IPersonService service = (IPersonService) editor.getSite().getService(
-				IPersonService.class);
-		Person model = service.getPerson(local.getId());
-
-		boolean delta = false;
-		StringBuffer buf = new StringBuffer();
-		buf.append(ContributionMessages.InfoEditor_surname);
-		if (!model.getSurname().equals(local.getSurname())) {
-			delta = true;
-			buf.append(' ');
-			buf.append(model.getSurname());
-			buf.append(", "); //$NON-NLS-1$
-			buf.append(local.getSurname());
-		}
-		buf.append(" - "); //$NON-NLS-1$
-		buf.append(ContributionMessages.InfoEditor_givenname);
-		if (!model.getGivenname().equals(local.getGivenname())) {
-			delta = true;
-			buf.append(' ');
-			buf.append(model.getGivenname());
-			buf.append(", "); //$NON-NLS-1$
-			buf.append(local.getGivenname());
-		}
-		buf.append(" - "); //$NON-NLS-1$
-		if (delta) {
-			buf.append(ContributionMessages.DeltaInfoHandler_found);
-		} else {
-			buf.append(ContributionMessages.DeltaInfoHandler_notFound);
-		}
-		MessageDialog.openInformation(editor.getSite().getShell(),
-				ContributionMessages.DeltaInfoHandler_shellTitle, buf
-						.toString());
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DynamicEditorList.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DynamicEditorList.java
deleted file mode 100644
index fd680da..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DynamicEditorList.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.editor;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.PersonInput;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.CommandContributionItemParameter;
-
-/**
- * Provide a dynamic list of open editors to activate.
- * 
- * @since 3.4
- */
-public class DynamicEditorList extends CompoundContributionItem {
-	private static final IContributionItem[] EMPTY = new IContributionItem[0];
-
-	private static class NobodyHereContribution extends ContributionItem {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Menu,
-		 *      int)
-		 */
-		public void fill(Menu menu, int index) {
-			MenuItem item = new MenuItem(menu, SWT.NONE, index);
-			item.setText(ContributionMessages.DynamicEditorList_label);
-			item.setEnabled(false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
-	 */
-	protected IContributionItem[] getContributionItems() {
-		// maybe we can find a better way for contributed IContributionItems
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		if (window == null) {
-			return EMPTY;
-		}
-
-		IWorkbenchPage page = window.getActivePage();
-		if (page == null) {
-			return EMPTY;
-		}
-		IEditorReference[] editors = page.getEditorReferences();
-		ArrayList menuList = new ArrayList();
-
-		int editorNum = 1;
-		for (int i = 0; i < editors.length && editorNum < 10; i++) {
-			try {
-				if (editors[i].getId().equals(InfoEditor.ID)) {
-					menuList.add(createItem(editorNum++, editors[i]));
-				}
-			} catch (PartInitException e) {
-			}
-
-		}
-		if (menuList.isEmpty()) {
-			menuList.add(new NobodyHereContribution());
-		}
-		return (IContributionItem[]) menuList
-				.toArray(new IContributionItem[menuList.size()]);
-	}
-
-	private IContributionItem createItem(int i, IEditorReference ref)
-			throws PartInitException {
-		CommandContributionItemParameter p = new CommandContributionItemParameter(
-				PlatformUI.getWorkbench(), null, ActivateEditorHandler.ID,
-				CommandContributionItem.STYLE_PUSH);
-		p.parameters = new HashMap();
-		PersonInput editorInput = (PersonInput) ref.getEditorInput();
-		p.parameters.put(ActivateEditorHandler.PARM_EDITOR, new Integer(
-				editorInput.getIndex()));
-		String menuNum = Integer.toString(i);
-		p.label = menuNum + " " + ref.getTitle(); //$NON-NLS-1$
-		p.mnemonic = menuNum;
-		return new CommandContributionItem(p);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/InfoEditor.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/InfoEditor.java
deleted file mode 100644
index 167fa2f..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/InfoEditor.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.editor;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.examples.contributions.model.PersonInput;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * Edit a person.
- * 
- * @since 3.3
- */
-public class InfoEditor extends EditorPart {
-	public static final String ID = "org.eclipse.ui.examples.contributions.editor"; //$NON-NLS-1$
-	private static final String EDITOR_RESET_ID = "org.eclipse.ui.examples.contributions.editor.reset"; //$NON-NLS-1$
-
-	private Person person;
-	private Text surnameText;
-	private Text givennameText;
-	private boolean dirty = false;
-	private IHandler resetHandler;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		monitor.beginTask(getPartName(), 3);
-		person.setSurname(surnameText.getText());
-		monitor.worked(1);
-		person.setGivenname(givennameText.getText());
-		monitor.worked(1);
-		IPersonService service = (IPersonService) getSite().getService(
-				IPersonService.class);
-		service.updatePerson(person);
-		monitor.worked(1);
-		monitor.done();
-		setDirty(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		// nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
-	 *      org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		setSite(site);
-		setInput(input);
-		if (!(input instanceof PersonInput)) {
-			throw new PartInitException("Not a person"); //$NON-NLS-1$
-		}
-		PersonInput pinput = (PersonInput) input;
-		IPersonService service = (IPersonService) getSite().getService(
-				IPersonService.class);
-		person = service.getPerson(pinput.getIndex());
-		if (person == null) {
-			throw new PartInitException("person does not exist"); //$NON-NLS-1$
-		}
-		setPartName("Person - " + pinput.getIndex()); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#isDirty()
-	 */
-	public boolean isDirty() {
-		return dirty;
-	}
-
-	private void setDirty(boolean d) {
-		dirty = d;
-		firePropertyChange(ISaveablePart.PROP_DIRTY);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		KeyListener keyListener = new KeyListener() {
-			public void keyPressed(KeyEvent e) {
-				if ((e.keyCode & SWT.MODIFIER_MASK) == 0) {
-					setDirty(true);
-				}
-			}
-
-			public void keyReleased(KeyEvent e) {
-				// nothing
-			}
-		};
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout gridLayout = new GridLayout(2, false);
-		composite.setLayout(gridLayout);
-
-		Label l = new Label(composite, SWT.RIGHT);
-		l.setText(ContributionMessages.InfoEditor_surname);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		surnameText = new Text(composite, SWT.SINGLE);
-		GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		surnameText.setLayoutData(gridData);
-		surnameText.addKeyListener(keyListener);
-
-		l = new Label(composite, SWT.RIGHT);
-		l.setText(ContributionMessages.InfoEditor_givenname);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		givennameText = new Text(composite, SWT.SINGLE);
-		gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		givennameText.setLayoutData(gridData);
-		givennameText.addKeyListener(keyListener);
-
-		updateText();
-
-		createHandlers();
-	}
-
-	/**
-	 * Set our text field to the person text.
-	 */
-	private void updateText() {
-		surnameText.setText(person.getSurname());
-		givennameText.setText(person.getGivenname());
-	}
-
-	/**
-	 * Instantiate any handlers specific to this view and activate them.
-	 */
-	private void createHandlers() {
-		IHandlerService handlerService = (IHandlerService) getSite()
-				.getService(IHandlerService.class);
-		resetHandler = new AbstractHandler() {
-			public Object execute(ExecutionEvent event) {
-				updateText();
-				setDirty(false);
-				return null;
-			}
-		};
-		handlerService.activateHandler(EDITOR_RESET_ID, resetHandler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		surnameText.setFocus();
-	}
-
-	public Person getCurrentPerson() {
-		person.setSurname(surnameText.getText());
-		person.setGivenname(givennameText.getText());
-		return person;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/IntegerTypeConverter.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/IntegerTypeConverter.java
deleted file mode 100644
index c376fdc..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/IntegerTypeConverter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.editor;
-
-import org.eclipse.core.commands.AbstractParameterValueConverter;
-import org.eclipse.core.commands.ParameterValueConversionException;
-
-/**
- * Convert between Integer and String for a command parameter type.
- * 
- * @since 3.4
- */
-public class IntegerTypeConverter extends AbstractParameterValueConverter {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.AbstractParameterValueConverter#convertToObject(java.lang.String)
-	 */
-	public Object convertToObject(String parameterValue)
-			throws ParameterValueConversionException {
-		try {
-			return Integer.decode(parameterValue);
-		} catch (NumberFormatException e) {
-			throw new ParameterValueConversionException("Failed to decode", e); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.AbstractParameterValueConverter#convertToString(java.lang.Object)
-	 */
-	public String convertToString(Object parameterValue)
-			throws ParameterValueConversionException {
-		if (!(parameterValue instanceof Integer)) {
-			throw new ParameterValueConversionException("Failed to convert"); //$NON-NLS-1$
-		}
-		return parameterValue.toString();
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/GlobalMenuHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/GlobalMenuHandler.java
deleted file mode 100644
index fb53ae6..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/GlobalMenuHandler.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.jface.dialogs.MessageDialog;
-
-/**
- * Our sample handler extends AbstractHandler, an IHandler base class.
- * 
- * @see org.eclipse.core.commands.IHandler
- * @see org.eclipse.core.commands.AbstractHandler
- * @since 3.3
- */
-public class GlobalMenuHandler extends AbstractHandler {
-	/**
-	 * The constructor.
-	 */
-	public GlobalMenuHandler() {
-	}
-
-	/**
-	 * the command has been executed, so extract extract the needed information
-	 * from the application context.
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-		MessageDialog.openInformation(window.getShell(),
-				ContributionMessages.SampleHandler_plugin_name,
-				ContributionMessages.SampleHandler_hello_msg);
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/InfoAboutHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/InfoAboutHandler.java
deleted file mode 100644
index ca4992d..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/InfoAboutHandler.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Opens a blank dialog with the InfoView title. The handler should only be
- * active when the activePart is an InfoView part.
- * <p>
- * This is used for the menu contribution example.
- * </p>
- * 
- * @since 3.4
- *
- */
-public class InfoAboutHandler extends AbstractHandler {
-
-	/**
-	 * A blank dialog. This is activated by the About InfoView menu
-	 * contribution. The handler is active when the InfoView part is active.
-	 * 
-	 * @since 3.4
-	 * 
-	 */
-	private final class InfoAboutDialog extends Dialog {
-		private InfoAboutDialog(Shell parentShell) {
-			super(parentShell);
-		}
-
-		protected void configureShell(Shell newShell) {
-			super.configureShell(newShell);
-			newShell.setText(ContributionMessages.InfoView_about_msg);
-		}
-	}
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-		Dialog dialog = new InfoAboutDialog(window.getShell());
-		dialog.open();
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/messages.properties b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/messages.properties
deleted file mode 100644
index d3336d5..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/messages.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-SampleHandler_plugin_name=Command Contribution Examples
-SampleHandler_hello_msg=Hello, Eclipse world
-InfoView_countElements=There are {0} model elements
-InfoView_about_msg=About InfoView
-EditInfoHandler_failed_to_open=Failed to open model editor
-InfoEditor_surname=Surname:
-InfoEditor_givenname=Given name:
-DeltaInfoHandler_found=Delta found\!
-DeltaInfoHandler_notFound=No delta found\!
-DeltaInfoHandler_shellTitle=Delta
-DynamicEditorList_label=Nobody here
-PersonWizardPage_descriptoin=Create a new Person
-PersonWizardPage_error_alreadyExists=Person ''{0}'' already exists
-PersonWizardPage_error_missingGivenname=Must supply a given name
-PersonWizardPage_error_missingSurname=Must supply a surname
-PersonWizardPage_id_label=Employee ID
-PersonWizardPage_title=New Person
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/IPersonService.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/IPersonService.java
deleted file mode 100644
index d819dc1..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/IPersonService.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import java.util.Collection;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-/**
- * An example service to manage People.
- * 
- * @since 3.4
- */
-public interface IPersonService {
-	/**
-	 * Fired when a new person is created.
-	 */
-	public static final String PROP_ADD = "add"; //$NON-NLS-1$
-
-	/**
-	 * Fired when a Person is updated by the service.
-	 */
-	public static final String PROP_CHANGE = "change"; //$NON-NLS-1$
-
-	/**
-	 * The collection of people.
-	 * 
-	 * @return an unmodifiable Collection. For looking, not touching. Will not
-	 *         be <code>null</code>.
-	 */
-	public Collection getPeople();
-
-	/**
-	 * Return the person identified by <code>id</code>.
-	 * 
-	 * @param id
-	 *            a valid ID
-	 * @return a copy of the person, or <code>null</code> if not found.
-	 */
-	public Person getPerson(int id);
-
-	/**
-	 * Update the person in this service. If this person does not exist in the
-	 * service it does nothing.
-	 * 
-	 * @param person
-	 *            the person to update. Must not be <code>null</code>.
-	 */
-	public void updatePerson(Person person);
-
-	/**
-	 * Create a person object for this id. Does nothing if a person already
-	 * exists for this id. The returned person has default values for most
-	 * attributes, and the person's ID is set to <code>id</code>.
-	 * 
-	 * @param id
-	 *            the id for the person.
-	 * @return a copy of the person, or <code>null</code> if a person already
-	 *         exists.
-	 */
-	public Person createPerson(int id);
-
-	/**
-	 * Listen for changes to people managed by this service.
-	 * <p>
-	 * Note: this services cleans up listeners when it is disposed.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the property change listener. Has no effect if an identical
-	 *            listener is already registered. Must not be <code>null</code>
-	 * @see #PROP_ADD
-	 * @see #PROP_CHANGE
-	 * @see IPersonService#removePersonChangeListener(IPropertyChangeListener)
-	 */
-	public void addPersonChangeListener(IPropertyChangeListener listener);
-
-	/**
-	 * Remove the change listener.
-	 * 
-	 * @param listener
-	 *            the property change listener. Has no effect if it is not
-	 *            already registered. Must not be <code>null</code>.
-	 */
-	public void removePersonChangeListener(IPropertyChangeListener listener);
-
-	/**
-	 * Log this person into the system. This is in effect until anoteher person
-	 * is logged in.
-	 * 
-	 * @param person
-	 *            the person to log in. May be <code>null</code>.
-	 */
-	public void login(Person person);
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/Person.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/Person.java
deleted file mode 100644
index 30beef7..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/Person.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-/**
- * A simple model object that is mutable.
- * 
- * @since 3.3
- */
-public class Person {
-
-	private int id;
-	private String surname;
-	private String givenname;
-	private boolean admin = false;
-
-
-	Person(int id, String sn, String gn) {
-		surname = sn;
-		givenname = gn;
-		this.id = id;
-	}
-
-	public String getSurname() {
-		return surname;
-	}
-
-	public void setSurname(String surname) {
-		this.surname = surname;
-	}
-
-	public int getId() {
-		return id;
-	}
-
-	public String getGivenname() {
-		return givenname;
-	}
-
-	public void setGivenname(String givenname) {
-		this.givenname = givenname;
-	}
-	
-	public boolean hasAdminRights() {
-		return admin;
-	}
-	
-	public void setAdminRights(boolean admin) {
-		this.admin = admin;
-	}
-
-	public String toString() {
-		StringBuffer buf = new StringBuffer(surname);
-		buf.append(", "); //$NON-NLS-1$
-		buf.append(givenname);
-		buf.append(" ("); //$NON-NLS-1$
-		buf.append(id);
-		if (admin) {
-			buf.append("-adm"); //$NON-NLS-1$
-		}
-		buf.append(")"); //$NON-NLS-1$
-		return buf.toString();
-	}
-
-	protected Person copy() {
-		return new Person(id, surname, givenname);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof Person) {
-			Person p = (Person) o;
-			return p.givenname == givenname && p.id == id
-					&& p.surname == surname;
-		}
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonInput.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonInput.java
deleted file mode 100644
index 75ec98a..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonInput.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * The editor input for looking up a person.
- * 
- * @since 3.3
- */
-public class PersonInput implements IEditorInput {
-	private int index;
-
-	public PersonInput(int i) {
-		index = i;
-	}
-
-	public int getIndex() {
-		return index;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return "" + index; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return getName();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return index;
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof PersonInput) {
-			return index == ((PersonInput)o).index; 
-		}
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonService.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonService.java
deleted file mode 100644
index fa451a2..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonService.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.services.IDisposable;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.services.ISourceProviderService;
-
-/**
- * Example implementation of the person service.
- * 
- * @since 3.4
- */
-public class PersonService implements IPersonService, IDisposable {
-
-	private static final int ME = 1114;
-	private Map people = new TreeMap();
-	private IServiceLocator serviceLocator;
-	private ListenerList listeners = new ListenerList(ListenerList.IDENTITY);
-
-	public PersonService(IServiceLocator locator) {
-		serviceLocator = locator;
-		serviceLocator.hasService(IHandlerService.class);
-		fillModel();
-	}
-
-	private static final String[] datafill = {
-			"Webster", "Paul", "Doe", "John", "Doe", "Jane", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-			"Public", "John", "Public", "Jane" }; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
-
-	private void fillModel() {
-		int i = ME;
-		for (int j = 0; j < datafill.length; j += 2) {
-			Integer iid = new Integer(i++);
-			Person p = new Person(iid.intValue(), datafill[j], datafill[j + 1]);
-			if (p.getId() == ME) {
-				p.setAdminRights(true);
-			}
-			people.put(iid, p);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#addPersonChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPersonChangeListener(IPropertyChangeListener listener) {
-		listeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#getPeople()
-	 */
-	public Collection getPeople() {
-		return Collections.unmodifiableCollection(people.values());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#getPerson(int)
-	 */
-	public Person getPerson(int id) {
-		Person p = (Person) people.get(new Integer(id));
-		if (p == null) {
-			return null;
-		}
-		return p.copy();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#removePersonChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePersonChangeListener(IPropertyChangeListener listener) {
-		listeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#updatePerson(org.eclipse.ui.examples.contributions.model.Person)
-	 */
-	public void updatePerson(Person person) {
-		Assert.isNotNull(person);
-		Person p = (Person) people.get(new Integer(person.getId()));
-		if (p == null) {
-			Assert.isNotNull(p, "Must update a real person"); //$NON-NLS-1$
-		}
-		if (person.equals(p)) {
-			return;
-		}
-		Person oldVal = p.copy();
-		p.setGivenname(person.getGivenname());
-		p.setSurname(person.getSurname());
-		firePersonChange(PROP_CHANGE, oldVal, person);
-	}
-
-	/**
-	 * @param oldVal
-	 * @param person
-	 */
-	private void firePersonChange(String property, Person oldVal, Person person) {
-		if (listeners.isEmpty()) {
-			return;
-		}
-		PropertyChangeEvent event = new PropertyChangeEvent(this, property,
-				oldVal, person);
-		Object[] array = listeners.getListeners();
-		for (int i = 0; i < array.length; i++) {
-			((IPropertyChangeListener) array[i]).propertyChange(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#createPerson(int)
-	 */
-	public Person createPerson(int id) {
-		Integer iid = new Integer(id);
-		if (people.containsKey(iid)) {
-			return null;
-		}
-		Person person = new Person(id, "surname", "givenname"); //$NON-NLS-1$//$NON-NLS-2$
-		people.put(iid, person);
-		firePersonChange(PROP_ADD, null, person);
-		return person;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.services.IDisposable#dispose()
-	 */
-	public void dispose() {
-		// we'd save stuff here, maybe, if we cared
-		listeners.clear();
-		serviceLocator = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#login(org.eclipse.ui.examples.contributions.model.Person)
-	 */
-	public void login(Person person) {
-		ISourceProviderService sources = (ISourceProviderService) serviceLocator
-				.getService(ISourceProviderService.class);
-		// should do some more checks
-		UserSourceProvider userProvider = (UserSourceProvider) sources
-				.getSourceProvider(UserSourceProvider.USER);
-		userProvider.login(person);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceFactory.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceFactory.java
deleted file mode 100644
index f079c73..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import org.eclipse.ui.services.AbstractServiceFactory;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * Supply the person service to the IServiceLocator framework.
- * 
- * @since 3.4
- */
-public class PersonServiceFactory extends AbstractServiceFactory {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.services.AbstractServiceFactory#create(java.lang.Class,
-	 *      org.eclipse.ui.services.IServiceLocator,
-	 *      org.eclipse.ui.services.IServiceLocator)
-	 */
-	public Object create(Class serviceInterface, IServiceLocator parentLocator,
-			IServiceLocator locator) {
-		if (!IPersonService.class.equals(serviceInterface)) {
-			return null;
-		}
-		Object parentService = parentLocator.getService(IPersonService.class);
-		if (parentService == null) {
-			// the global level person service implementation
-			return new PersonService(locator);
-		}
-		return new PersonServiceSlave(locator, (IPersonService) parentService);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceSlave.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceSlave.java
deleted file mode 100644
index 3bb67b6..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceSlave.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import java.util.Collection;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.services.IDisposable;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * Example implementation that cleans up listeners when the IServiceLocator
- * (site, window, etc) is disposed. It delegates to its parent for the actual
- * behaviour.
- * 
- * @since 3.4
- */
-public class PersonServiceSlave implements IPersonService, IDisposable {
-
-	private IServiceLocator serviceLocator;
-	private IPersonService parentService;
-	private ListenerList localListeners = new ListenerList(
-			ListenerList.IDENTITY);
-
-	public PersonServiceSlave(IServiceLocator locator, IPersonService parent) {
-		serviceLocator = locator;
-		parentService = parent;
-		serviceLocator.hasService(IHandlerService.class);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#addPersonChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPersonChangeListener(IPropertyChangeListener listener) {
-		localListeners.add(listener);
-		parentService.addPersonChangeListener(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#getPeople()
-	 */
-	public Collection getPeople() {
-		return parentService.getPeople();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#getPerson(int)
-	 */
-	public Person getPerson(int id) {
-		return parentService.getPerson(id);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#removePersonChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePersonChangeListener(IPropertyChangeListener listener) {
-		localListeners.remove(listener);
-		parentService.removePersonChangeListener(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#updatePerson(org.eclipse.ui.examples.contributions.model.Person)
-	 */
-	public void updatePerson(Person person) {
-		parentService.updatePerson(person);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#createPerson(int)
-	 */
-	public Person createPerson(int id) {
-		return parentService.createPerson(id);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.services.IDisposable#dispose()
-	 */
-	public void dispose() {
-		Object[] array = localListeners.getListeners();
-		localListeners.clear();
-		for (int i = 0; i < array.length; i++) {
-			parentService
-					.removePersonChangeListener((IPropertyChangeListener) array[i]);
-		}
-		serviceLocator = null;
-		parentService = null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#login(org.eclipse.ui.examples.contributions.model.Person)
-	 */
-	public void login(Person person) {
-		parentService.login(person);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizard.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizard.java
deleted file mode 100644
index 8c2089f..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizard.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * Use the service to create a person.
- * 
- * @since 3.4
- */
-public class PersonWizard extends Wizard implements INewWizard {
-	private PersonWizardPage mainPage;
-	private IWorkbench workbench;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.wizard.Wizard#addPages()
-	 */
-	public void addPages() {
-		mainPage = new PersonWizardPage(workbench);
-		addPage(mainPage);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
-	 */
-	public boolean performFinish() {
-		return mainPage.finish();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
-	 *      org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		this.workbench = workbench;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizardPage.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizardPage.java
deleted file mode 100644
index 6454053..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizardPage.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * Create a Person, fill in the correct fields.
- * 
- * @since 3.4
- */
-public class PersonWizardPage extends WizardPage implements Listener {
-
-	private IServiceLocator locator;
-	private Text surnameText;
-	private Text givennameText;
-	private Text idText;
-
-	/**
-	 * @param pageName
-	 */
-	public PersonWizardPage(IServiceLocator locator) {
-		super("personWizardPage"); //$NON-NLS-1$
-		this.locator = locator;
-		setTitle(ContributionMessages.PersonWizardPage_title);
-		setDescription(ContributionMessages.PersonWizardPage_descriptoin);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		initializeDialogUnits(parent);
-		// top level group
-		Composite topLevel = new Composite(parent, SWT.NONE);
-		GridLayout gridLayout = new GridLayout(2, false);
-		topLevel.setLayout(gridLayout);
-
-		Label l = new Label(topLevel, SWT.RIGHT);
-		l.setText(ContributionMessages.PersonWizardPage_id_label);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		idText = new Text(topLevel, SWT.SINGLE);
-		GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		idText.setLayoutData(gridData);
-		idText.addListener(SWT.FocusOut, this);
-		idText.addListener(SWT.KeyUp, this);
-
-		l = new Label(topLevel, SWT.RIGHT);
-		l.setText(ContributionMessages.InfoEditor_surname);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		surnameText = new Text(topLevel, SWT.SINGLE);
-		gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		surnameText.setLayoutData(gridData);
-		surnameText.addListener(SWT.FocusOut, this);
-		surnameText.addListener(SWT.KeyUp, this);
-
-		l = new Label(topLevel, SWT.RIGHT);
-		l.setText(ContributionMessages.InfoEditor_givenname);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		givennameText = new Text(topLevel, SWT.SINGLE);
-		gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		givennameText.setLayoutData(gridData);
-		givennameText.addListener(SWT.FocusOut, this);
-		givennameText.addListener(SWT.KeyUp, this);
-
-		setControl(topLevel);
-		setPageComplete(validatePage());
-		setErrorMessage(null);
-		setMessage(null);
-	}
-
-	private boolean validatePage() {
-		if (getId() == 0) {
-			return false;
-		}
-		IPersonService service = (IPersonService) locator
-				.getService(IPersonService.class);
-		if (service.getPerson(getId()) != null) {
-			setErrorMessage(NLS.bind(
-					ContributionMessages.PersonWizardPage_error_alreadyExists,
-					new Integer(getId())));
-			return false;
-		}
-		if (getSurname() == null || getSurname().length() == 0) {
-			setErrorMessage(ContributionMessages.PersonWizardPage_error_missingSurname);
-			return false;
-		}
-		if (getGivenname() == null || getGivenname().length() == 0) {
-			setErrorMessage(ContributionMessages.PersonWizardPage_error_missingGivenname);
-			return false;
-		}
-		setErrorMessage(null);
-		return true;
-	}
-
-	int getId() {
-		try {
-			return Integer.parseInt(idText.getText());
-		} catch (NumberFormatException e) {
-		}
-		return 0;
-	}
-
-	String getGivenname() {
-		return givennameText.getText();
-	}
-
-	String getSurname() {
-		return surnameText.getText();
-	}
-
-	boolean finish() {
-		IPersonService service = (IPersonService) locator
-				.getService(IPersonService.class);
-		Person person = service.createPerson(getId());
-		if (person == null) {
-			return false;
-		}
-		person.setGivenname(getGivenname());
-		person.setSurname(getSurname());
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void handleEvent(Event event) {
-		// this plus validatePage() are blunt force validation.
-		setPageComplete(validatePage());
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserPropertyTester.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserPropertyTester.java
deleted file mode 100644
index d1fcec5..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserPropertyTester.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import org.eclipse.core.expressions.PropertyTester;
-
-/**
- * Test properties of a Person object provided as a variable.
- * 
- * @since 3.4
- */
-public class UserPropertyTester extends PropertyTester {
-	private final static String IS_ADMIN = "isAdmin"; //$NON-NLS-1$
-	private final static String ID = "id"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object,
-	 *      java.lang.String, java.lang.Object[], java.lang.Object)
-	 */
-	public boolean test(Object receiver, String property, Object[] args,
-			Object expectedValue) {
-		if (!(receiver instanceof Person)) {
-			return false;
-		}
-		Person person = (Person) receiver;
-		if (property.equals(IS_ADMIN) && expectedValue instanceof Boolean) {
-			boolean value = ((Boolean) expectedValue).booleanValue();
-			return person.hasAdminRights() == value;
-		}
-		if (property.equals(ID) && expectedValue instanceof Integer) {
-			int value = ((Integer) expectedValue).intValue();
-			return person.getId() == value;
-		}
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserSourceProvider.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserSourceProvider.java
deleted file mode 100644
index 7e61eba..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserSourceProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ui.AbstractSourceProvider;
-import org.eclipse.ui.ISources;
-
-/**
- * An example of provide a Person as a variable to the evaluation service.
- * 
- * @since 3.4
- */
-public class UserSourceProvider extends AbstractSourceProvider {
-	public static final String USER = "org.eclipse.ui.examples.contributions.user"; //$NON-NLS-1$
-	private static final String[] PROVIDED_SOURCE_NAMES = new String[] { USER };
-	private static final Object GUEST = new Object();
-
-	private Person user = null;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#dispose()
-	 */
-	public void dispose() {
-		user = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#getCurrentState()
-	 */
-	public Map getCurrentState() {
-		Map m = new HashMap();
-		m.put(USER, getCurrentUser());
-		return m;
-	}
-
-	private Object getCurrentUser() {
-		return user == null ? GUEST : user;
-	}
-
-	public void login(Person person) {
-		user = person;
-		// I'm not sure whether this has to be accurate, so use the matching
-		// declaration priority <<1 for now
-		fireSourceChanged(ISources.ACTIVE_SITE << 1, USER, getCurrentUser());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#getProvidedSourceNames()
-	 */
-	public String[] getProvidedSourceNames() {
-		return PROVIDED_SOURCE_NAMES;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationActionBarAdvisor.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationActionBarAdvisor.java
deleted file mode 100644
index ff5604a..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.eclipse.ui.examples.contributions.rcp;
-
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * The action bar advisor must still be used sometimes to register workbench
- * actions that have not been converted into handlers.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-	private IWorkbenchAction openWindow;
-	private IWorkbenchAction save;
-	private IWorkbenchAction saveAll;
-
-	public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-		super(configurer);
-	}
-
-	protected void makeActions(final IWorkbenchWindow window) {
-		// register any actions that need to be there as
-		// default handlers for commands.
-
-		openWindow = ActionFactory.OPEN_NEW_WINDOW.create(window);
-		register(openWindow);
-
-		save = ActionFactory.SAVE.create(window);
-		register(save);
-
-		saveAll = ActionFactory.SAVE_ALL.create(window);
-		register(saveAll);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.ActionBarAdvisor#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		openWindow = null;
-		save = null;
-		saveAll = null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index 302f96b..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.eclipse.ui.examples.contributions.rcp;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IExecutionListenerWithChecks;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.examples.contributions.Activator;
-
-/**
- * This workbench advisor creates the window advisor, and specifies the
- * perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String PERSPECTIVE_ID = "org.eclipse.ui.examples.contributions.perspective"; //$NON-NLS-1$
-
-	public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-			IWorkbenchWindowConfigurer configurer) {
-		return new ApplicationWorkbenchWindowAdvisor(configurer);
-	}
-
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	}
-
-	public void postStartup() {
-		if (!Activator.DEBUG_COMMANDS) {
-			return;
-		}
-		ICommandService service = (ICommandService) getWorkbenchConfigurer()
-				.getWorkbench().getService(ICommandService.class);
-		service.addExecutionListener(new IExecutionListenerWithChecks() {
-
-			public void notHandled(String commandId,
-					NotHandledException exception) {
-				System.out.println("commandId = " + commandId //$NON-NLS-1$
-						+ " : not handled"); //$NON-NLS-1$
-			}
-
-			public void postExecuteFailure(String commandId,
-					ExecutionException exception) {
-				System.out.println("commandId = " + commandId + " : failed"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			public void postExecuteSuccess(String commandId, Object returnValue) {
-				System.out.println("commandId = " + commandId + " : success " //$NON-NLS-1$ //$NON-NLS-2$
-						+ returnValue);
-			}
-
-			public void preExecute(String commandId, ExecutionEvent event) {
-				System.out.println("commandId = " + commandId + " : parms " //$NON-NLS-1$ //$NON-NLS-2$
-						+ event.getParameters().keySet());
-			}
-
-			public void notDefined(String commandId,
-					NotDefinedException exception) {
-				System.out.println("commandId = " + commandId //$NON-NLS-1$
-						+ " : not defined"); //$NON-NLS-1$
-			}
-
-			public void notEnabled(String commandId,
-					NotEnabledException exception) {
-				System.out.println("commandId = " + commandId //$NON-NLS-1$
-						+ " : not enabled"); //$NON-NLS-1$
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 3065901..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.ui.examples.contributions.rcp;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * Some initial workbench window configuration.
- * 
- * @since 3.4
- */
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(800, 300));
-        configurer.setShowCoolBar(true);
-        configurer.setShowStatusLine(false);
-    }
-    
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ContributionApplication.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ContributionApplication.java
deleted file mode 100644
index f7a244b..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ContributionApplication.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.rcp;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @since 3.4
- *
- */
-public class ContributionApplication implements IApplication {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/Perspective.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/Perspective.java
deleted file mode 100644
index 1355b77..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/Perspective.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.eclipse.ui.examples.contributions.rcp;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.examples.contributions.view.InfoView;
-
-public class Perspective implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(true);
-		
-		layout.addStandaloneView(InfoView.ID,  true, IPageLayout.LEFT, 0.25f, editorArea);
-		
-		layout.getViewLayout(InfoView.ID).setCloseable(false);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/AdminHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/AdminHandler.java
deleted file mode 100644
index c49072a..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/AdminHandler.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.view;
-
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.commands.IElementUpdater;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.menus.UIElement;
-import org.eclipse.ui.services.IEvaluationService;
-
-/**
- * Allow the admin rights to be updated.
- * 
- * @since 3.4
- */
-public class AdminHandler extends AbstractHandler implements IElementUpdater {
-	private static final String ID = "org.eclipse.ui.examples.contributions.view.adminRights"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.commands.IElementUpdater#updateElement(org.eclipse.ui.menus.UIElement,
-	 *      java.util.Map)
-	 */
-	public void updateElement(UIElement element, Map parameters) {
-		IEvaluationService service = (IEvaluationService) PlatformUI
-				.getWorkbench().getService(IEvaluationService.class);
-		if (service == null) {
-			return;
-		}
-		ISelection sel = (ISelection) service.getCurrentState().getVariable(
-				ISources.ACTIVE_MENU_SELECTION_NAME);
-		if (!(sel instanceof IStructuredSelection)) {
-			return;
-		}
-		IStructuredSelection ssel = (IStructuredSelection) sel;
-		if (ssel.isEmpty()) {
-			return;
-		}
-		Object o = ssel.getFirstElement();
-		if (!(o instanceof Person)) {
-			return;
-		}
-		element.setChecked(((Person) o).hasAdminRights());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) {
-		ISelection sel = HandlerUtil.getActiveMenuSelection(event);
-		if (!(sel instanceof IStructuredSelection)) {
-			return null;
-		}
-		IStructuredSelection ssel = (IStructuredSelection) sel;
-		if (ssel.isEmpty()) {
-			return null;
-		}
-		Object o = ssel.getFirstElement();
-		if (!(o instanceof Person)) {
-			return null;
-		}
-		Person p = (Person) o;
-		p.setAdminRights(!p.hasAdminRights());
-		IPersonService service = (IPersonService) PlatformUI.getWorkbench()
-				.getService(IPersonService.class);
-		service.updatePerson(p);
-		ICommandService commands = (ICommandService) PlatformUI.getWorkbench()
-				.getService(ICommandService.class);
-		commands.refreshElements(ID, null);
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/EditInfoHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/EditInfoHandler.java
deleted file mode 100644
index f1c55b7..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/EditInfoHandler.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.view;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.examples.contributions.model.PersonInput;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * open an element for editing.
- * 
- * @since 3.3
- */
-public class EditInfoHandler extends AbstractHandler {
-	
-	public static final String ID = "org.eclipse.ui.examples.contributions.view.edit"; //$NON-NLS-1$
-
-	private static final String EDITOR_ID = "org.eclipse.ui.examples.contributions.editor"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
-		if (window == null) {
-			return null;
-		}
-		// this is written to check a context menu selection, and if not take
-		// the standard application context selection.
-		ISelection sel = HandlerUtil.getActiveMenuSelection(event);
-		if (sel == null) {
-			sel = HandlerUtil.getCurrentSelection(event);
-		}
-		if (sel instanceof IStructuredSelection && !sel.isEmpty()) {
-			IStructuredSelection selection = (IStructuredSelection) sel;
-			Person person = (Person) selection.getFirstElement();
-			PersonInput input = new PersonInput(person.getId());
-			try {
-				window.getActivePage().openEditor(input, EDITOR_ID);
-			} catch (PartInitException e) {
-				throw new ExecutionException(
-						ContributionMessages.EditInfoHandler_failed_to_open, e);
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/InfoView.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/InfoView.java
deleted file mode 100644
index fc7732d..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/InfoView.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.view;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Our example view.
- * 
- * @since 3.3
- */
-public class InfoView extends ViewPart {
-	public static final String ID = "org.eclipse.ui.examples.contributions.view"; //$NON-NLS-1$
-
-	private static final String VIEW_COUNT_ID = "org.eclipse.ui.examples.contributions.view.count"; //$NON-NLS-1$
-	private static final String VIEW_CONTEXT_ID = "org.eclipse.ui.examples.contributions.view.context"; //$NON-NLS-1$
-	private ListViewer viewer;
-	private IHandler countHandler;
-	private ArrayList viewerInput;
-
-	private IPropertyChangeListener personListener = new IPropertyChangeListener() {
-		public void propertyChange(PropertyChangeEvent event) {
-			if (IPersonService.PROP_CHANGE.equals(event.getProperty())) {
-				refresh();
-			} else if (IPersonService.PROP_ADD.equals(event.getProperty())) {
-				viewerInput.add(event.getNewValue());
-				viewer.add(event.getNewValue());
-			}
-		}
-	};
-
-	private static class ContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-		 *      java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			// nothing to do here
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			if (inputElement instanceof List) {
-				return ((List) inputElement).toArray();
-			}
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new ListViewer(parent);
-		viewer.setContentProvider(new ContentProvider());
-		viewer.setLabelProvider(new LabelProvider());
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				editSelection();
-			}
-		});
-		IPersonService service = (IPersonService) getSite().getService(
-				IPersonService.class);
-		viewerInput = new ArrayList(service.getPeople());
-		service.addPersonChangeListener(personListener);
-		viewer.setInput(viewerInput);
-		getSite().setSelectionProvider(viewer);
-
-		MenuManager contextMenu = new MenuManager();
-		contextMenu.setRemoveAllWhenShown(true);
-
-		getSite().registerContextMenu(contextMenu, viewer);
-		Control control = viewer.getControl();
-		Menu menu = contextMenu.createContextMenu(control);
-		control.setMenu(menu);
-
-		activateContext();
-		createHandlers();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-
-	/**
-	 * Activate a context that this view uses. It will be tied to this view
-	 * activation events and will be removed when the view is disposed.
-	 */
-	private void activateContext() {
-		IContextService contextService = (IContextService) getSite()
-				.getService(IContextService.class);
-		// this will get cleaned up automatically when the site
-		// is disposed
-		contextService.activateContext(VIEW_CONTEXT_ID);
-	}
-
-	/**
-	 * Instantiate any handlers specific to this view and activate them.
-	 */
-	private void createHandlers() {
-		IHandlerService handlerService = (IHandlerService) getSite()
-				.getService(IHandlerService.class);
-		countHandler = new AbstractHandler() {
-			public Object execute(ExecutionEvent event) {
-				List elements = (List) viewer.getInput();
-				MessageDialog.openInformation(getSite().getShell(),
-						ContributionMessages.SampleHandler_plugin_name,
-						NLS.bind(ContributionMessages.InfoView_countElements,
-								new Integer(elements.size())));
-				return null;
-			}
-		};
-		handlerService.activateHandler(VIEW_COUNT_ID, countHandler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		if (countHandler != null) {
-			// we must dispose our handlers, although in this case it will
-			// be a no-op
-			countHandler.dispose();
-			countHandler = null;
-		}
-		super.dispose();
-	}
-
-	/**
-	 * Swap the 2 given elements from the model.
-	 * 
-	 * @param p1
-	 * @param p2
-	 */
-	public void swap(Person p1, Person p2) {
-		List elements = viewerInput;
-		int i1 = elements.indexOf(p1);
-		int i2 = elements.indexOf(p2);
-		Collections.swap(elements, i1, i2);
-		viewer.refresh();
-	}
-
-	/**
-	 * Refresh the viewer from the model.
-	 */
-	public void refresh() {
-		viewer.refresh();
-	}
-
-	private void editSelection() {
-		IHandlerService handlerService = (IHandlerService) getSite()
-				.getService(IHandlerService.class);
-		try {
-			handlerService.executeCommand(EditInfoHandler.ID, null);
-		} catch (ExecutionException e) {
-			// perhaps some logging here
-		} catch (NotDefinedException e) {
-		} catch (NotEnabledException e) {
-		} catch (NotHandledException e) {
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/LoginHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/LoginHandler.java
deleted file mode 100644
index 40d5d6f..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/LoginHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.view;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Allow login as the selected user. If you are doing this for real, I would
- * suggest checking their credentials!
- * 
- * @since 3.4
- */
-public class LoginHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchPart part = HandlerUtil.getActivePartChecked(event);
-		ISelection sel = HandlerUtil.getActiveMenuSelection(event);
-		if (sel == null) {
-			sel = HandlerUtil.getCurrentSelection(event);
-		}
-		if (sel instanceof IStructuredSelection && !sel.isEmpty()) {
-			IStructuredSelection selection = (IStructuredSelection) sel;
-			Person person = (Person) selection.getFirstElement();
-			IPersonService service = (IPersonService) part.getSite()
-					.getService(IPersonService.class);
-			service.login(person);
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/RefreshInfoHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/RefreshInfoHandler.java
deleted file mode 100644
index a35ea14..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/RefreshInfoHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.view;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Request the view refresh from the model.
- * 
- * @since 3.3
- */
-public class RefreshInfoHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		InfoView view = (InfoView) HandlerUtil.getActivePartChecked(event);
-		view.refresh();
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/SwapInfoHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/SwapInfoHandler.java
deleted file mode 100644
index 08f41d0..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/SwapInfoHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.contributions.view;
-
-import java.util.Iterator;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Swap 2 elements around in the the view.
- * 
- * @since 3.3
- */
-public class SwapInfoHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		InfoView view = (InfoView) HandlerUtil.getActivePartChecked(event);
-		ISelection sel = HandlerUtil.getCurrentSelection(event);
-		if (sel instanceof IStructuredSelection) {
-			IStructuredSelection selection = (IStructuredSelection) sel;
-			if (selection.size() != 2) {
-				return null;
-			}
-			Iterator i = selection.iterator();
-			Person p1 = (Person) i.next();
-			Person p2 = (Person) i.next();
-			view.swap(p1, p2);
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.classpath b/examples/org.eclipse.ui.examples.fieldassist/.classpath
deleted file mode 100644
index 203998a..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples Field Assist"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.cvsignore b/examples/org.eclipse.ui.examples.fieldassist/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.project b/examples/org.eclipse.ui.examples.fieldassist/.project
deleted file mode 100644
index 440e70b..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.fieldassist</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8630599..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Jan 15 21:19:47 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.4
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0cb7d76..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Tue Oct 18 15:15:38 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index a26a239..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Oct 18 16:45:19 EDT 2005
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistPlugin.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistPlugin.java
deleted file mode 100644
index d6f0772..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistPlugin.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist;
-
-import org.eclipse.ui.plugin.*;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class FieldAssistPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static FieldAssistPlugin plugin;
-	
-	// Our own content assist decorator (which adds the key binding)
-	static String DEC_CONTENTASSIST = "org.eclipse.ui.examples.fieldassist.contentAssistDecoration";
-	
-	/**
-	 * The constructor.
-	 */
-	public FieldAssistPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 * 
-	 * @return the shared plugin instance
-	 */
-	public static FieldAssistPlugin getDefault() {
-		return plugin;
-	}
-}
-
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistTestDialog.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistTestDialog.java
deleted file mode 100644
index 89c8f30..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistTestDialog.java
+++ /dev/null
@@ -1,855 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Sebastian Davids <sdavids@gmx.de> - bug 132479 - [FieldAssist] Field assist example improvements
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.StatusDialog;
-import org.eclipse.jface.fieldassist.AutoCompleteField;
-import org.eclipse.jface.fieldassist.ComboContentAdapter;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.fieldassist.IControlContentAdapter;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MenuDetectEvent;
-import org.eclipse.swt.events.MenuDetectListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.examples.fieldassist.preferences.PreferenceConstants;
-
-/**
- * Example dialog that shows different field assist capabilities.
- */
-public class FieldAssistTestDialog extends StatusDialog {
-
-	class SpinnerContentAdapter implements IControlContentAdapter {
-		// We are only implementing this for our internal use, not for
-		// content assist, so many of the methods are ignored.
-		public String getControlContents(Control control) {
-			return new Integer(((Spinner) control).getSelection()).toString();
-		}
-
-		public void setControlContents(Control control, String text,
-				int cursorPosition) {
-			// ignore
-		}
-
-		public void insertControlContents(Control control, String text,
-				int cursorPosition) {
-			// ignore
-		}
-
-		public int getCursorPosition(Control control) {
-			// ignore
-			return 0;
-		}
-
-		public Rectangle getInsertionBounds(Control control) {
-			return control.getBounds();
-		}
-
-		public void setCursorPosition(Control control, int index) {
-			// ignore
-		}
-	}
-
-	abstract class SmartField {
-		ControlDecoration controlDecoration;
-
-		Control control;
-
-		IControlContentAdapter contentAdapter;
-
-		FieldDecoration errorDecoration, warningDecoration;
-
-		SmartField(ControlDecoration dec, Control control,
-				IControlContentAdapter adapter) {
-			this.controlDecoration = dec;
-			this.contentAdapter = adapter;
-			this.control = control;
-		}
-
-		boolean isRequiredField() {
-			return true;
-		}
-
-		boolean hasQuickFix() {
-			return false;
-		}
-
-		void quickFix() {
-			// do nothing
-		}
-
-		boolean hasContentAssist() {
-			return false;
-		}
-
-		void dispose() {
-			// do nothing
-		}
-
-		FieldDecoration getErrorDecoration() {
-			if (errorDecoration == null) {
-				FieldDecoration standardError;
-				if (hasQuickFix()) {
-					standardError = FieldDecorationRegistry.getDefault()
-							.getFieldDecoration(
-									FieldDecorationRegistry.DEC_ERROR_QUICKFIX);
-				} else {
-					standardError = FieldDecorationRegistry.getDefault()
-							.getFieldDecoration(
-									FieldDecorationRegistry.DEC_ERROR);
-				}
-				if (getErrorMessage() == null) {
-					errorDecoration = standardError;
-				} else {
-					errorDecoration = new FieldDecoration(standardError
-							.getImage(), getErrorMessage());
-				}
-			}
-			return errorDecoration;
-
-		}
-
-		FieldDecoration getWarningDecoration() {
-			if (warningDecoration == null) {
-				FieldDecoration standardWarning = FieldDecorationRegistry
-						.getDefault().getFieldDecoration(
-								FieldDecorationRegistry.DEC_WARNING);
-				if (getWarningMessage() == null) {
-					warningDecoration = standardWarning;
-				} else {
-					warningDecoration = new FieldDecoration(standardWarning
-							.getImage(), getWarningMessage());
-				}
-			}
-			return warningDecoration;
-		}
-
-		String getContents() {
-			return contentAdapter.getControlContents(control);
-		}
-
-		void setContents(String contents) {
-			contentAdapter.setControlContents(control, contents, contents
-					.length());
-		}
-
-		abstract boolean isValid();
-
-		abstract boolean isWarning();
-
-		String getErrorMessage() {
-			return null;
-		}
-
-		String getWarningMessage() {
-			return null;
-		}
-
-	}
-
-	class UserField extends SmartField {
-		Menu quickFixMenu;
-
-		UserField(ControlDecoration dec, Control control,
-				IControlContentAdapter adapter) {
-			super(dec, control, adapter);
-		}
-
-		boolean isValid() {
-			String contents = getContents();
-			for (int i = 0; i < contents.length(); i++) {
-				if (!Character.isLetter(contents.charAt(i))) {
-					return false;
-				}
-			}
-			return true;
-		}
-
-		String getErrorMessage() {
-			return TaskAssistExampleMessages.ExampleDialog_UserError;
-		}
-
-		boolean isWarning() {
-			return getContents().equals(
-					TaskAssistExampleMessages.ExampleDialog_WarningName);
-		}
-
-		String getWarningMessage() {
-			return TaskAssistExampleMessages.ExampleDialog_UserWarning;
-		}
-
-		boolean hasContentAssist() {
-			return true;
-		}
-
-		boolean hasQuickFix() {
-			return true;
-		}
-
-		void quickFix() {
-			String contents = getContents();
-			StringBuffer lettersOnly = new StringBuffer();
-			int length = contents.length();
-			for (int i = 0; i < length;) {
-				char ch = contents.charAt(i++);
-				if (Character.isLetter(ch)) {
-					lettersOnly.append(ch);
-				}
-			}
-			setContents(lettersOnly.toString());
-		}
-
-		void dispose() {
-			if (quickFixMenu != null) {
-				quickFixMenu.dispose();
-				quickFixMenu = null;
-			}
-		}
-	}
-
-	class AgeField extends SmartField {
-
-		AgeField(ControlDecoration dec, Control control,
-				IControlContentAdapter adapter) {
-			super(dec, control, adapter);
-		}
-
-		boolean isValid() {
-			// We seed the spinner with valid values always.
-			return true;
-		}
-
-		boolean isWarning() {
-			Spinner spinner = (Spinner) control;
-			return spinner.getSelection() > 65;
-		}
-
-		String getWarningMessage() {
-			return TaskAssistExampleMessages.ExampleDialog_AgeWarning;
-		}
-	}
-
-	String[] validUsers = { "tom", "dick", "harry", "ferdinand", "tim", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-			"teresa", "tori", "daniela", "aaron", "kevin", "tod", "mike", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-			"kim", "eric", "paul", "todd" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-	String triggerKey;
-
-	String username;
-
-	boolean showErrorDecoration, showErrorMessage, showWarningDecoration,
-			showRequiredFieldDecoration, showRequiredFieldLabelIndicator,
-			showSecondaryPopup, showContentAssist;
-
-	int marginWidth;
-
-	UserField textField, comboField;
-
-	/**
-	 * Open the example dialog.
-	 * 
-	 * @param parent
-	 *            the parent shell
-	 * @param username
-	 *            the default username
-	 */
-	public FieldAssistTestDialog(Shell parent, String username) {
-		super(parent);
-		setTitle(TaskAssistExampleMessages.ExampleDialog_Title);
-		this.username = username;
-		getPreferenceValues();
-	}
-
-	protected Control createDialogArea(Composite parent) {
-
-		Composite outer = (Composite) super.createDialogArea(parent);
-
-		initializeDialogUnits(outer);
-		createSecurityGroup(outer);
-
-		// Create a simple field to show how field assist can be used for
-		// autocomplete.
-		Group autoComplete = new Group(outer, SWT.NONE);
-		autoComplete.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		autoComplete.setLayout(layout);
-		autoComplete
-				.setText(TaskAssistExampleMessages.ExampleDialog_AutoCompleteGroup);
-
-		Label label = new Label(autoComplete, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_UserName);
-
-		// Create an auto-complete field representing a user name
-		Text text = new Text(autoComplete, SWT.BORDER);
-		text.setLayoutData(getFieldGridData());
-		new AutoCompleteField(text, new TextContentAdapter(), validUsers);
-
-		// Another one to test combos
-		label = new Label(autoComplete, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_ComboUserName);
-
-		Combo combo = new Combo(autoComplete, SWT.BORDER | SWT.DROP_DOWN);
-		combo.setText(username);
-		combo.setItems(validUsers);
-		combo.setLayoutData(getFieldGridData());
-		new AutoCompleteField(combo, new ComboContentAdapter(), validUsers);
-
-		Dialog.applyDialogFont(outer);
-
-		return outer;
-	}
-
-	private void getPreferenceValues() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		showErrorMessage = store
-				.getBoolean(PreferenceConstants.PREF_SHOWERRORMESSAGE);
-		showErrorDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWERRORDECORATION);
-		showWarningDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWWARNINGDECORATION);
-		showRequiredFieldDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION);
-		showRequiredFieldLabelIndicator = store
-				.getBoolean(PreferenceConstants.PREF_SHOWREQUIREDFIELDLABELINDICATOR);
-		showSecondaryPopup = store
-				.getBoolean(PreferenceConstants.PREF_SHOWSECONDARYPOPUP);
-		showContentAssist = store
-				.getBoolean(PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE);
-		triggerKey = store.getString(PreferenceConstants.PREF_CONTENTASSISTKEY);
-		marginWidth = store
-				.getInt(PreferenceConstants.PREF_DECORATOR_MARGINWIDTH);
-	}
-
-	FieldDecoration getCueDecoration() {
-		// We use our own decoration which is based on the JFace version.
-		FieldDecorationRegistry registry = FieldDecorationRegistry.getDefault();
-		FieldDecoration dec = registry
-				.getFieldDecoration(FieldAssistPlugin.DEC_CONTENTASSIST);
-		if (dec == null) {
-			// Get the standard one. We use its image and our own customized
-			// text.
-			FieldDecoration standardDecoration = registry
-					.getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
-			registry.registerFieldDecoration(
-					FieldAssistPlugin.DEC_CONTENTASSIST, NLS.bind(
-							TaskAssistExampleMessages.Decorator_ContentAssist,
-							triggerKey), standardDecoration.getImage());
-			dec = registry
-					.getFieldDecoration(FieldAssistPlugin.DEC_CONTENTASSIST);
-		}
-		return dec;
-	}
-
-	FieldDecoration getWarningDecoration() {
-		return FieldDecorationRegistry.getDefault().getFieldDecoration(
-				FieldDecorationRegistry.DEC_WARNING);
-	}
-
-	void handleModify(SmartField smartField) {
-		// Error indicator supercedes all others
-		if (!smartField.isValid()) {
-			showError(smartField);
-		} else {
-			hideError(smartField);
-			if (smartField.isWarning()) {
-				showWarning(smartField);
-			} else {
-				hideWarning(smartField);
-				if (showContentAssist && smartField.hasContentAssist()) {
-					showContentAssistDecoration(smartField, true);
-				} else {
-					showContentAssistDecoration(smartField, false);
-					showRequiredFieldDecoration(smartField,
-							showRequiredFieldDecoration);
-				}
-			}
-		}
-	}
-
-	GridData getFieldGridData() {
-		int margin = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth();
-		GridData data = new GridData();
-		data.horizontalAlignment = SWT.FILL;
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH + margin;
-		data.horizontalIndent = margin;
-		data.grabExcessHorizontalSpace = true;
-		return data;
-
-	}
-	
-	GridData getMultiLineTextFieldGridData() {
-		int margin = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth();
-		GridData data = new GridData();
-		data.horizontalAlignment = SWT.FILL;
-		data.verticalAlignment = SWT.FILL;
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH + margin;
-		data.heightHint = JFaceResources.getDialogFont().getFontData()[0].getHeight()*5;
-		data.horizontalIndent = margin;
-		data.grabExcessHorizontalSpace = true;
-		data.grabExcessVerticalSpace = true;
-		return data;
-
-	}
-
-	void showError(SmartField smartField) {
-		FieldDecoration dec = smartField.getErrorDecoration();
-		if (showErrorMessage) {
-			updateStatus(new Status(IStatus.ERROR,
-					"org.eclipse.examples.contentassist", 0, dec //$NON-NLS-1$
-							.getDescription(), null));
-		}
-		if (showErrorDecoration) {
-			showErrorDecoration(smartField, true);
-		}
-	}
-
-	void hideError(SmartField smartField) {
-		if (showErrorMessage) {
-			this.updateStatus(Status.OK_STATUS);
-		}
-		if (showErrorDecoration) {
-			showErrorDecoration(smartField, false);
-		}
-	}
-
-	void showWarning(SmartField smartField) {
-		if (showWarningDecoration) {
-			showWarningDecoration(smartField, true);
-		}
-	}
-
-	void hideWarning(SmartField smartField) {
-		if (showWarningDecoration) {
-			showWarningDecoration(smartField, false);
-		}
-	}
-
-	void installContentProposalAdapter(Control control,
-			IControlContentAdapter contentAdapter) {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		boolean propagate = store
-				.getBoolean(PreferenceConstants.PREF_CONTENTASSISTKEY_PROPAGATE);
-		KeyStroke keyStroke;
-		char[] autoActivationCharacters = null;
-		int autoActivationDelay = store
-				.getInt(PreferenceConstants.PREF_CONTENTASSISTDELAY);
-
-		if (triggerKey.equals(PreferenceConstants.PREF_CONTENTASSISTKEYAUTO)) {
-			// null means automatically assist when character typed
-			keyStroke = null;
-		} else if (triggerKey
-				.equals(PreferenceConstants.PREF_CONTENTASSISTKEYAUTOSUBSET)) {
-			keyStroke = null;
-			autoActivationCharacters = new char[] { 't', 'd' };
-		} else {
-			try {
-				keyStroke = KeyStroke.getInstance(triggerKey);
-			} catch (ParseException e) {
-				keyStroke = KeyStroke.getInstance(SWT.F10);
-			}
-		}
-
-		ContentProposalAdapter adapter = new ContentProposalAdapter(control,
-				contentAdapter, getContentProposalProvider(), keyStroke,
-				autoActivationCharacters) {
-			public void closeProposalPopup() {
-				closeProposalPopup();
-			}
-		};
-		adapter.setAutoActivationDelay(autoActivationDelay);
-		adapter.setPropagateKeys(propagate);
-		adapter.setFilterStyle(getContentAssistFilterStyle());
-		adapter.setProposalAcceptanceStyle(getContentAssistAcceptance());
-	}
-
-	private IContentProposalProvider getContentProposalProvider() {
-		return new IContentProposalProvider() {
-			public IContentProposal[] getProposals(String contents, int position) {
-				IContentProposal[] proposals = new IContentProposal[validUsers.length];
-				for (int i = 0; i < validUsers.length; i++) {
-					final String user = validUsers[i];
-					proposals[i] = new IContentProposal() {
-						public String getContent() {
-							return user;
-						}
-
-						public String getLabel() {
-							return user;
-						}
-
-						public String getDescription() {
-							if (showSecondaryPopup && !user.equals("tori"))  //$NON-NLS-1$
-								return MessageFormat
-										.format(
-												TaskAssistExampleMessages.ExampleDialog_ProposalDescription,
-												new String[] { user });
-							return null;
-						}
-
-						public int getCursorPosition() {
-							return user.length();
-						}
-					};
-				}
-				return proposals;
-			}
-		};
-	}
-
-	private int getContentAssistAcceptance() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		String acceptanceStyle = store
-				.getString(PreferenceConstants.PREF_CONTENTASSISTRESULT);
-		if (acceptanceStyle
-				.equals(PreferenceConstants.PREF_CONTENTASSISTRESULT_INSERT))
-			return ContentProposalAdapter.PROPOSAL_INSERT;
-		if (acceptanceStyle
-				.equals(PreferenceConstants.PREF_CONTENTASSISTRESULT_REPLACE))
-			return ContentProposalAdapter.PROPOSAL_REPLACE;
-		return ContentProposalAdapter.PROPOSAL_IGNORE;
-	}
-
-	private int getContentAssistFilterStyle() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		String acceptanceStyle = store
-				.getString(PreferenceConstants.PREF_CONTENTASSISTFILTER);
-		if (acceptanceStyle
-				.equals(PreferenceConstants.PREF_CONTENTASSISTFILTER_CHAR))
-			return ContentProposalAdapter.FILTER_CHARACTER;
-		if (acceptanceStyle
-				.equals(PreferenceConstants.PREF_CONTENTASSISTFILTER_CUMULATIVE))
-			return ContentProposalAdapter.FILTER_CUMULATIVE;
-		return ContentProposalAdapter.FILTER_NONE;
-	}
-
-	void addRequiredFieldIndicator(Label label) {
-		String text = label.getText();
-		// This concatenation could be done by a field assist helper.
-		text = text.concat("*"); //$NON-NLS-1$
-		label.setText(text);
-	}
-
-	FieldDecoration getRequiredFieldDecoration() {
-		return FieldDecorationRegistry.getDefault().getFieldDecoration(
-				FieldDecorationRegistry.DEC_REQUIRED);
-	}
-
-	int getDecorationLocationBits() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		int bits = 0;
-		String vert = store
-				.getString(PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION);
-		if (vert
-				.equals(PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_BOTTOM)) {
-			bits = SWT.BOTTOM;
-		} else if (vert
-				.equals(PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_CENTER)) {
-			bits = SWT.CENTER;
-		} else {
-			bits = SWT.TOP;
-		}
-
-		String horz = store
-				.getString(PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION);
-		if (horz
-				.equals(PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION_RIGHT)) {
-			bits |= SWT.RIGHT;
-		} else {
-			bits |= SWT.LEFT;
-		}
-		return bits;
-	}
-
-	void createSecurityGroup(Composite parent) {
-
-		Group main = new Group(parent, SWT.NONE);
-		main.setLayoutData(new GridData(GridData.FILL_BOTH));
-		main.setText(TaskAssistExampleMessages.ExampleDialog_SecurityGroup);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		main.setLayout(layout);
-
-		Label label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_UserName);
-
-		// Create a field representing a user name
-		Text text = new Text(main, SWT.BORDER);
-		ControlDecoration dec = new ControlDecoration(text,
-				getDecorationLocationBits());
-		dec.setMarginWidth(marginWidth);
-		dec.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				MessageDialog
-						.openInformation(
-								getShell(),
-								TaskAssistExampleMessages.ExampleDialog_SelectionTitle,
-								TaskAssistExampleMessages.ExampleDialog_SelectionMessage);
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// Nothing on default select
-			}
-		});
-
-		textField = new UserField(dec, text, new TextContentAdapter());
-		dec.addMenuDetectListener(new MenuDetectListener() {
-			public void menuDetected(MenuDetectEvent event) {
-				// no quick fix if we aren't in error state.
-				if (textField.isValid()) {
-					return;
-				}
-				if (textField.quickFixMenu == null) {
-					textField.quickFixMenu = createQuickFixMenu(textField);
-				}
-				textField.quickFixMenu.setLocation(event.x, event.y);
-				textField.quickFixMenu.setVisible(true);
-			}
-		});
-		if (showRequiredFieldLabelIndicator && textField.isRequiredField()) {
-			addRequiredFieldIndicator(label);
-		}
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(textField);
-			}
-		});
-
-		text.setText(username);
-		installContentProposalAdapter(text, new TextContentAdapter());
-		text.setLayoutData(getFieldGridData());
-
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_ComboUserName);
-
-		// Create a combo field representing a user name
-		Combo combo = new Combo(main, SWT.BORDER | SWT.DROP_DOWN);
-		dec = new ControlDecoration(combo, getDecorationLocationBits());
-		dec.setMarginWidth(marginWidth);
-		comboField = new UserField(dec, combo, new ComboContentAdapter());
-
-		dec.addMenuDetectListener(new MenuDetectListener() {
-			public void menuDetected(MenuDetectEvent event) {
-				// no quick fix if we aren't in error state.
-				if (comboField.isValid()) {
-					return;
-				}
-				if (comboField.quickFixMenu == null) {
-					comboField.quickFixMenu = createQuickFixMenu(comboField);
-				}
-				comboField.quickFixMenu.setLocation(event.x, event.y);
-				comboField.quickFixMenu.setVisible(true);
-			}
-		});
-		dec.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent event) {
-				MessageDialog
-						.openInformation(
-								getShell(),
-								TaskAssistExampleMessages.ExampleDialog_DefaultSelectionTitle,
-								TaskAssistExampleMessages.ExampleDialog_DefaultSelectionMessage);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				// Do nothing on selection
-			}
-		});
-
-		if (showRequiredFieldLabelIndicator) {
-			addRequiredFieldIndicator(label);
-		}
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(comboField);
-			}
-		});
-
-		combo.setText(username);
-		combo.setItems(validUsers);
-		combo.setLayoutData(getFieldGridData());
-		installContentProposalAdapter(combo, new ComboContentAdapter());
-
-		// Create a spinner representing a user age
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_Age);
-
-		Spinner spinner = new Spinner(main, SWT.BORDER);
-		dec = new ControlDecoration(spinner, getDecorationLocationBits());
-		dec.setMarginWidth(marginWidth);
-
-		if (showRequiredFieldLabelIndicator) {
-			addRequiredFieldIndicator(label);
-		}
-		final SmartField spinnerField = new AgeField(dec, spinner,
-				new SpinnerContentAdapter());
-		spinner.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(spinnerField);
-			}
-		});
-		spinner.setSelection(40);
-		spinner.setLayoutData(getFieldGridData());
-
-		// This field has no decorator
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_Password);
-		text = new Text(main, SWT.BORDER);
-		text.setText("******"); //$NON-NLS-1$
-		text.setLayoutData(getFieldGridData());
-		if (showRequiredFieldLabelIndicator) {
-			addRequiredFieldIndicator(label);
-		}
-		
-		// This tests multi-line text popup placement
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.FieldAssistTestDialog_Comments);
-		text = new Text(main, SWT.BORDER | SWT.MULTI | SWT.WRAP);
-		text.setText(TaskAssistExampleMessages.FieldAssistTestDialog_CommentsDefaultContent); 
-		text.setLayoutData(getMultiLineTextFieldGridData());
-		if (showRequiredFieldLabelIndicator) {
-			addRequiredFieldIndicator(label);
-		}
-		installContentProposalAdapter(text, new TextContentAdapter());
-
-	}
-
-	Menu createQuickFixMenu(final SmartField field) {
-		Menu newMenu = new Menu(field.control);
-		MenuItem item = new MenuItem(newMenu, SWT.PUSH);
-		item
-				.setText(TaskAssistExampleMessages.ExampleDialog_DecorationMenuItem);
-		item.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				field.quickFix();
-			}
-
-			public void widgetDefaultSelected(SelectionEvent event) {
-
-			}
-		});
-		return newMenu;
-	}
-
-	void showErrorDecoration(SmartField smartField, boolean show) {
-		FieldDecoration dec = smartField.getErrorDecoration();
-		ControlDecoration cd = smartField.controlDecoration;
-		if (show) {
-			cd.setImage(dec.getImage());
-			cd.setDescriptionText(dec.getDescription());
-			cd.setShowOnlyOnFocus(false);
-			cd.show();
-		} else {
-			cd.hide();
-		}
-	}
-
-	void showWarningDecoration(SmartField smartField, boolean show) {
-		FieldDecoration dec = smartField.getWarningDecoration();
-		ControlDecoration cd = smartField.controlDecoration;
-		if (show) {
-			cd.setImage(dec.getImage());
-			cd.setDescriptionText(dec.getDescription());
-			cd.setShowOnlyOnFocus(false);
-			cd.show();
-		} else {
-			cd.hide();
-		}
-	}
-
-	void showRequiredFieldDecoration(SmartField smartField, boolean show) {
-		FieldDecoration dec = getRequiredFieldDecoration();
-		ControlDecoration cd = smartField.controlDecoration;
-		if (show) {
-			cd.setImage(dec.getImage());
-			cd.setDescriptionText(dec.getDescription());
-			cd.setShowOnlyOnFocus(false);
-			cd.show();
-		} else {
-			cd.hide();
-		}
-	}
-
-	void showContentAssistDecoration(SmartField smartField, boolean show) {
-		FieldDecoration dec = getCueDecoration();
-		ControlDecoration cd = smartField.controlDecoration;
-		if (show) {
-			cd.setImage(dec.getImage());
-			cd.setDescriptionText(dec.getDescription());
-			cd.setShowOnlyOnFocus(true);
-			cd.show();
-		} else {
-			cd.hide();
-		}
-	}
-
-	public boolean close() {
-		textField.dispose();
-		comboField.dispose();
-		return super.close();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#isResizable()
-	 */
-	protected boolean isResizable() {
-		return true;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.java
deleted file mode 100644
index 55c47d2..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Message class for the undo example.
- * 
- */
-public class TaskAssistExampleMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.examples.fieldassist.messages";//$NON-NLS-1$
-
-	public static String Preferences_ContentAssistKey;
-	public static String Preferences_ContentAssistKeyPropagate;
-	public static String Preferences_ContentAssistResult;
-	public static String Preferences_ContentAssistResultReplace;
-	public static String Preferences_ContentAssistResultInsert;
-	public static String Preferences_ContentAssistResultNone;
-	public static String Preferences_ContentAssistFilter;
-	public static String Preferences_ContentAssistFilterCumulative;
-	public static String Preferences_ContentAssistFilterCharacter;
-	public static String Preferences_ContentAssistFilterNone;
-	public static String Preferences_ShowSecondaryPopup;
-	public static String Preferences_ContentAssistDelay;
-	public static String Preferences_ErrorIndicator;
-	public static String Preferences_ShowErrorMessage;
-	public static String Preferences_ShowErrorDecorator;
-	public static String Preferences_ShowWarningDecorator;
-	public static String Preferences_ShowProposalCue;
-	public static String Preferences_RequiredFieldIndicator;
-	public static String Preferences_ShowRequiredFieldDecorator;
-	public static String Preferences_ShowRequiredFieldLabelIndicator;
-	public static String Preferences_Description;
-	public static String Preferences_ContentAssistDescription;
-	public static String Preferences_DecoratorDetails;
-	public static String Preferences_DecoratorImpl;
-	public static String Preferences_DecoratorVert;
-	public static String Preferences_DecoratorTop;
-	public static String Preferences_DecoratorCenter;
-	public static String Preferences_DecoratorBottom;
-	public static String Preferences_DecoratorHorz;
-	public static String Preferences_DecoratorLeft;
-	public static String Preferences_DecoratorRight;
-	public static String Preferences_DecoratorMargin;
-	public static String Decorator_Warning;
-	public static String Decorator_Error;
-	public static String Decorator_ContentAssist;
-
-	public static String ExampleDialog_UserError;
-	public static String ExampleDialog_WarningName;
-	public static String ExampleDialog_UserWarning;
-	public static String ExampleDialog_AgeWarning;
-	public static String ExampleDialog_Title;
-	public static String ExampleDialog_SecurityGroup;
-	public static String ExampleDialog_AutoCompleteGroup;
-	public static String ExampleDialog_UserName;
-	public static String ExampleDialog_ComboUserName;
-	public static String ExampleDialog_Age;
-	public static String ExampleDialog_Password;
-	public static String ExampleDialog_ProposalDescription;
-	public static String ExampleDialog_DefaultSelectionTitle;
-	public static String ExampleDialog_DefaultSelectionMessage;
-	public static String ExampleDialog_SelectionTitle;
-	public static String ExampleDialog_SelectionMessage;
-
-	public static String FieldAssistTestDialog_Comments;
-
-	public static String FieldAssistTestDialog_CommentsDefaultContent;
-	public static String ExampleDialog_DecorationMenuItem;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, TaskAssistExampleMessages.class);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/TestDialogAction.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/TestDialogAction.java
deleted file mode 100644
index f07fc86..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/TestDialogAction.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.examples.fieldassist.FieldAssistTestDialog;
-
-/**
- * Our sample action implements workbench action delegate. The action proxy will
- * be created by the workbench and shown in the UI. When the user tries to use
- * the action, this delegate will be created and execution will be delegated to
- * it.
- * 
- * @see IWorkbenchWindowActionDelegate
- */
-public class TestDialogAction implements IWorkbenchWindowActionDelegate {
-	private IWorkbenchWindow window;
-
-	/**
-	 * The constructor.
-	 */
-	public TestDialogAction() {
-	}
-
-	/**
-	 * The action has been activated. The argument of the method represents the
-	 * 'real' action sitting in the workbench UI.
-	 * 
-	 * @see IWorkbenchWindowActionDelegate#run
-	 */
-	public void run(IAction action) {
-		new FieldAssistTestDialog(window.getShell(), "tom").open();
-	}
-
-	/**
-	 * Selection in the workbench has been changed. We can change the state of
-	 * the 'real' action here if we want, but this can only happen after the
-	 * delegate has been created.
-	 * 
-	 * @see IWorkbenchWindowActionDelegate#selectionChanged
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-
-	/**
-	 * We can use this method to dispose of any system resources we previously
-	 * allocated.
-	 * 
-	 * @see IWorkbenchWindowActionDelegate#dispose
-	 */
-	public void dispose() {
-	}
-
-	/**
-	 * We will cache window object in order to be able to provide parent shell
-	 * for the dialog.
-	 * 
-	 * @see IWorkbenchWindowActionDelegate#init
-	 */
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties
deleted file mode 100644
index 5dece35..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties
+++ /dev/null
@@ -1,67 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-#     Sebastian Davids <sdavids@gmx.de> - bug 132479 - [FieldAssist] Field assist example improvements
-###############################################################################
-
-########### Preferences ###########################
-Preferences_RequiredFieldIndicator = Showing Required Fields:
-Preferences_ShowRequiredFieldLabelIndicator = Show required field indicator in field's label
-Preferences_ShowRequiredFieldDecorator = Decorate required fields
-Preferences_ContentAssistKey = Content Assist Key:
-Preferences_ContentAssistKeyPropagate = Propagate keystrokes to control when popup is active
-Preferences_ShowProposalCue = Decorate fields that have content assist
-Preferences_ShowSecondaryPopup = Show a secondary popup further describing the proposal
-Preferences_ContentAssistDelay = Delay (in milliseconds) when content assist is auto-activated:
-Preferences_ErrorIndicator = Showing Errors:
-Preferences_ShowErrorMessage = Show errors in status area of dialog
-Preferences_ShowErrorDecorator = Decorate fields that have errors
-Preferences_ShowWarningDecorator = Decorate fields that have warnings
-Preferences_Description = This page controls the decorations used in the example dialog.
-Preferences_DecoratorDetails = Other Decorators:
-Preferences_DecoratorImpl = Decorator implementation class:
-Preferences_DecoratorVert = Vertical location:
-Preferences_DecoratorTop = SWT.TOP
-Preferences_DecoratorCenter = SWT.CENTER
-Preferences_DecoratorBottom = SWT.BOTTOM
-Preferences_DecoratorHorz = Horizontal location:
-Preferences_DecoratorLeft = SWT.LEFT
-Preferences_DecoratorRight = SWT.RIGHT
-Preferences_DecoratorMargin = Margin width:
-Preferences_ContentAssistDescription = This page controls the behavior of the content assist.
-Preferences_ContentAssistResult = When a content proposal is chosen:
-Preferences_ContentAssistResultReplace = Replace field content
-Preferences_ContentAssistResultInsert = Insert into field content
-Preferences_ContentAssistResultNone = Custom behavior (none)
-Preferences_ContentAssistFilter = When typing while popup is open:
-Preferences_ContentAssistFilterCumulative = Filter popup content with cumulative typing (deprecated)
-Preferences_ContentAssistFilterCharacter = Filter popup according to last character typed
-Preferences_ContentAssistFilterNone = No filtering
-Decorator_Warning = User name bob is too casual
-Decorator_Error = User name can only contain letters
-Decorator_ContentAssist = Content assist available for this field, press {0}
-ExampleDialog_UserError=User name must only contain letters.  Use QuickFix Menu.
-ExampleDialog_WarningName=bob
-ExampleDialog_UserWarning=Bob is entirely too casual a name.
-ExampleDialog_AgeWarning=May be eligible for senior citizen user status
-ExampleDialog_Title=Field Assist Example
-ExampleDialog_SecurityGroup=&Security info
-ExampleDialog_AutoCompleteGroup=&Autocomplete examples
-ExampleDialog_UserName=&User name:
-ExampleDialog_ComboUserName=&Combo user name:
-ExampleDialog_Age=&Age:
-ExampleDialog_Password=&Password:
-ExampleDialog_ProposalDescription={0} is a wonderful choice and you should seriously consider it.
-ExampleDialog_DefaultSelectionTitle=Default Selection
-ExampleDialog_DefaultSelectionMessage=The decoration was double clicked.
-ExampleDialog_SelectionTitle=Selection
-ExampleDialog_SelectionMessage=The decoration was selected.
-FieldAssistTestDialog_Comments=Comments:
-FieldAssistTestDialog_CommentsDefaultContent=This field is here simply to demonstrate multi-line text and popup placement.  Try invoking content proposals in autoactivate and regular mode (insert and replace) and make sure the popup comes up where you think it should.
-ExampleDialog_DecorationMenuItem=Remove illegal characters
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/ContentAssistPreferencePage.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/ContentAssistPreferencePage.java
deleted file mode 100644
index f7b9b89..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/ContentAssistPreferencePage.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist.preferences;
-
-import org.eclipse.jface.preference.*;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.examples.fieldassist.FieldAssistPlugin;
-import org.eclipse.ui.examples.fieldassist.TaskAssistExampleMessages;
-
-/**
- * This class represents a preference page that is contributed to the
- * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>,
- * we can use the field support built into JFace that allows us to create a page
- * that is small and knows how to save, restore and apply itself.
- * <p>
- * This page is used to modify preferences only. They are stored in the
- * preference store that belongs to the main plug-in class. That way,
- * preferences can be accessed directly via the preference store.
- */
-
-public class ContentAssistPreferencePage extends FieldEditorPreferencePage
-		implements IWorkbenchPreferencePage {
-
-	/**
-	 *  Create a ContentAssistPreferencePage
-	 */
-	public ContentAssistPreferencePage() {
-		super(GRID);
-		setPreferenceStore(FieldAssistPlugin.getDefault().getPreferenceStore());
-		setDescription(TaskAssistExampleMessages.Preferences_ContentAssistDescription);
-	}
-
-	/**
-	 * Creates the field editors. Field editors are abstractions of the common
-	 * GUI blocks needed to manipulate various types of preferences. Each field
-	 * editor knows how to save and
-	 */
-	public void createFieldEditors() {
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTKEY,
-				TaskAssistExampleMessages.Preferences_ContentAssistKey,
-				1,
-				new String[][] {
-						{ PreferenceConstants.PREF_CONTENTASSISTKEY1,
-								PreferenceConstants.PREF_CONTENTASSISTKEY1 },
-						{ PreferenceConstants.PREF_CONTENTASSISTKEY2,
-								PreferenceConstants.PREF_CONTENTASSISTKEY2 },
-						{ PreferenceConstants.PREF_CONTENTASSISTKEYAUTO,
-								PreferenceConstants.PREF_CONTENTASSISTKEYAUTO },
-						{ PreferenceConstants.PREF_CONTENTASSISTKEYAUTOSUBSET,
-								PreferenceConstants.PREF_CONTENTASSISTKEYAUTOSUBSET }, },
-				getFieldEditorParent()));
-		
-		IntegerFieldEditor editor = new IntegerFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTDELAY,
-				TaskAssistExampleMessages.Preferences_ContentAssistDelay,
-				getFieldEditorParent());
-		editor.setValidRange(0, 10000);
-		addField(editor);
-
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTKEY_PROPAGATE,
-				TaskAssistExampleMessages.Preferences_ContentAssistKeyPropagate,
-				getFieldEditorParent()));
-
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWSECONDARYPOPUP,
-				TaskAssistExampleMessages.Preferences_ShowSecondaryPopup,
-				getFieldEditorParent()));
-
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTRESULT,
-				TaskAssistExampleMessages.Preferences_ContentAssistResult,
-				1,
-				new String[][] {
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistResultReplace,
-								PreferenceConstants.PREF_CONTENTASSISTRESULT_REPLACE },
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistResultInsert,
-								PreferenceConstants.PREF_CONTENTASSISTRESULT_INSERT },
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistResultNone,
-								PreferenceConstants.PREF_CONTENTASSISTRESULT_NONE } },
-				getFieldEditorParent()));
-		
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTFILTER,
-				TaskAssistExampleMessages.Preferences_ContentAssistFilter,
-				1,
-				new String[][] {
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistFilterCharacter,
-								PreferenceConstants.PREF_CONTENTASSISTFILTER_CHAR },
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistFilterCumulative,
-								PreferenceConstants.PREF_CONTENTASSISTFILTER_CUMULATIVE },
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistFilterNone,
-								PreferenceConstants.PREF_CONTENTASSISTFILTER_NONE } },
-				getFieldEditorParent()));
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.java
deleted file mode 100644
index 4d4071e..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Sebastian Davids <sdavids@gmx.de> - bug 132479 - [FieldAssist] Field assist example improvements
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist.preferences;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.examples.fieldassist.FieldAssistPlugin;
-import org.eclipse.ui.examples.fieldassist.TaskAssistExampleMessages;
-
-/**
- * This class represents a preference page that is contributed to the
- * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>,
- * we can use the field support built into JFace that allows us to create a page
- * that is small and knows how to save, restore and apply itself.
- * <p>
- * This page is used to modify preferences only. They are stored in the
- * preference store that belongs to the main plug-in class. That way,
- * preferences can be accessed directly via the preference store.
- */
-
-public class FieldAssistPreferencePage extends FieldEditorPreferencePage
-		implements IWorkbenchPreferencePage {
-
-	/**
-	 * Create the FieldAssistPreferencePage
-	 */
-	public FieldAssistPreferencePage() {
-		super(GRID);
-		setPreferenceStore(FieldAssistPlugin.getDefault().getPreferenceStore());
-		setDescription(TaskAssistExampleMessages.Preferences_Description);
-	}
-
-	/**
-	 * Creates the field editors. Field editors are abstractions of the common
-	 * GUI blocks needed to manipulate various types of preferences. Each field
-	 * editor knows how to save and
-	 */
-	public void createFieldEditors() {
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION,
-				TaskAssistExampleMessages.Preferences_DecoratorVert,
-				1,
-				new String[][] {
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorTop,
-								PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_TOP },
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorCenter,
-								PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_CENTER },
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorBottom,
-								PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_BOTTOM } },
-				getFieldEditorParent()));
-
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION,
-				TaskAssistExampleMessages.Preferences_DecoratorHorz,
-				1,
-				new String[][] {
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorLeft,
-								PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION_LEFT },
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorRight,
-								PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION_RIGHT } },
-				getFieldEditorParent()));
-
-		IntegerFieldEditor editor = new IntegerFieldEditor(
-				PreferenceConstants.PREF_DECORATOR_MARGINWIDTH,
-				TaskAssistExampleMessages.Preferences_DecoratorMargin,
-				getFieldEditorParent());
-		editor.setValidRange(0, 10);
-		addField(editor);
-
-		Label label = new Label(getFieldEditorParent(), SWT.WRAP);
-		label.setText(TaskAssistExampleMessages.Preferences_ErrorIndicator);
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWERRORMESSAGE,
-				TaskAssistExampleMessages.Preferences_ShowErrorMessage,
-				getFieldEditorParent()));
-
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWERRORDECORATION,
-				TaskAssistExampleMessages.Preferences_ShowErrorDecorator,
-				getFieldEditorParent()));
-
-		label = new Label(getFieldEditorParent(), SWT.WRAP);
-		label
-				.setText(TaskAssistExampleMessages.Preferences_RequiredFieldIndicator);
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWREQUIREDFIELDLABELINDICATOR,
-				TaskAssistExampleMessages.Preferences_ShowRequiredFieldLabelIndicator,
-				getFieldEditorParent()));
-
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION,
-				TaskAssistExampleMessages.Preferences_ShowRequiredFieldDecorator,
-				getFieldEditorParent()));
-
-		label = new Label(getFieldEditorParent(), SWT.WRAP);
-		label.setText(TaskAssistExampleMessages.Preferences_DecoratorDetails);
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWWARNINGDECORATION,
-				TaskAssistExampleMessages.Preferences_ShowWarningDecorator,
-				getFieldEditorParent()));
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE,
-				TaskAssistExampleMessages.Preferences_ShowProposalCue,
-				getFieldEditorParent()));
-
-		Dialog.applyDialogFont(getFieldEditorParent());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.java
deleted file mode 100644
index 4d7bf21..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Sebastian Davids <sdavids@gmx.de> - bug 132479 - [FieldAssist] Field assist example improvements
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist.preferences;
-
-/**
- * Constant definitions for plug-in preferences
- */
-public class PreferenceConstants {	
-	public static final String PREF_DECORATOR_VERTICALLOCATION = "prefDecoratorVerticalLocation";
-	public static final String PREF_DECORATOR_VERTICALLOCATION_TOP = "prefDecoratorVerticalTop";
-	public static final String PREF_DECORATOR_VERTICALLOCATION_CENTER = "prefDecoratorVerticalCenter";
-	public static final String PREF_DECORATOR_VERTICALLOCATION_BOTTOM = "prefDecoratorVerticalBottom";
-	public static final String PREF_DECORATOR_HORIZONTALLOCATION = "prefDecoratorHorizontalLocation";
-	public static final String PREF_DECORATOR_HORIZONTALLOCATION_LEFT = "prefDecoratorHorizontalLeft";
-	public static final String PREF_DECORATOR_HORIZONTALLOCATION_RIGHT = "prefDecoratorHorizontalRight";
-	
-	public static final String PREF_DECORATOR_MARGINWIDTH = "prefDecoratorMarginWidth";
-
-	public static final String PREF_SHOWERRORDECORATION = "prefShowErrorDecoration";
-	public static final String PREF_SHOWERRORMESSAGE = "prefShowErrorMessage";
-	
-	public static final String PREF_SHOWWARNINGDECORATION = "prefShowWarningDecoration";
-	
-	public static final String PREF_SHOWREQUIREDFIELDDECORATION = "prefShowRequiredFieldDecoration";
-	public static final String PREF_SHOWREQUIREDFIELDLABELINDICATOR = "prefShowRequiredFieldLabelIndicator";	
-	
-	public static final String PREF_SHOWCONTENTPROPOSALCUE = "prefShowContentProposalCue";	
-
-	public static final String PREF_SHOWSECONDARYPOPUP = "prefShowSecondaryPopup";
-	public static final String PREF_CONTENTASSISTKEY_PROPAGATE = "prefContentAssistKeyPropagate";
-	public static final String PREF_CONTENTASSISTDELAY = "prefContentAssistDelay";
-
-	public static final String PREF_CONTENTASSISTKEY = "prefContentAssistKey";
-	public static final String PREF_CONTENTASSISTKEY1 = "Ctrl+Space";
-	public static final String PREF_CONTENTASSISTKEY2 = "*";
-	public static final String PREF_CONTENTASSISTKEYAUTO = "Alphanumeric key (on auto-activate delay)";
-	public static final String PREF_CONTENTASSISTKEYAUTOSUBSET = "t, d (on auto-activate delay)";
-	
-	public static final String PREF_CONTENTASSISTRESULT = "prefContentResult";
-	public static final String PREF_CONTENTASSISTRESULT_REPLACE = "replace";
-	public static final String PREF_CONTENTASSISTRESULT_INSERT = "insert";
-	public static final String PREF_CONTENTASSISTRESULT_NONE = "none";
-	
-	public static final String PREF_CONTENTASSISTFILTER = "prefContentAssistFilter";
-	public static final String PREF_CONTENTASSISTFILTER_CUMULATIVE = "cumulative filter";
-	public static final String PREF_CONTENTASSISTFILTER_CHAR = "character filter";
-	public static final String PREF_CONTENTASSISTFILTER_NONE = "none";
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.java
deleted file mode 100644
index e4c3c13..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.ui.examples.fieldassist.FieldAssistPlugin;
-
-/**
- * Class used to initialize default preference values.
- */
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		store.setDefault(PreferenceConstants.PREF_SHOWERRORDECORATION, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWERRORMESSAGE, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWWARNINGDECORATION, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION,
-				false);
-		store.setDefault(
-				PreferenceConstants.PREF_SHOWREQUIREDFIELDLABELINDICATOR, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE, true);
-		store.setDefault(PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION,
-				PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION_LEFT);
-		store.setDefault(PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION,
-				PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_CENTER);
-		store.setDefault(PreferenceConstants.PREF_DECORATOR_MARGINWIDTH, 0);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTKEY,
-				PreferenceConstants.PREF_CONTENTASSISTKEY1);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTKEY_PROPAGATE,
-				false);
-		store.setDefault(PreferenceConstants.PREF_SHOWSECONDARYPOPUP, true);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTDELAY, 1000);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTRESULT,
-				PreferenceConstants.PREF_CONTENTASSISTRESULT_REPLACE);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTFILTER,
-				PreferenceConstants.PREF_CONTENTASSISTFILTER_CHAR);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
deleted file mode 100644
index de8dca4..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.fieldassist; singleton:=true
-Bundle-Version: 1.1.0
-Bundle-Activator: org.eclipse.ui.examples.fieldassist.FieldAssistPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.ui.examples.fieldassist/about.html b/examples/org.eclipse.ui.examples.fieldassist/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.fieldassist/build.properties b/examples/org.eclipse.ui.examples.fieldassist/build.properties
deleted file mode 100644
index 0cf35a9..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = Eclipse UI Examples Field Assist/
-
-bin.includes = doc-html/,\
-               icons/,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               .,\
-               META-INF/
-
-src.includes = about.html
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.fieldassist/doc-html/hglegal.htm b/examples/org.eclipse.ui.examples.fieldassist/doc-html/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/doc-html/hglegal.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html b/examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html
deleted file mode 100644
index d437456..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2006. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Workbench - Field Assist Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Field Assist</b></h2>
-
-<h3>
-Introduction</h3>
-The Field Assist example shows how to use the support provided in <code>org.eclipse.jface.fieldassist</code>
-to provide task assistance in text fields.  An example dialog shows how to set up field decorations
-to indicate required fields, fields with errors and warnings, and fields that supply content assist or quick
-fix.  The 
-example also includes a preference page that 
-allows you to configure the decorations and the content assist support.
-<h3>
-Running the example</h3>
-When the plug-in is installed, you should see a FieldAssist action
-on the action bar.  Choose the menu item "Open Field Assist Dialog..."
-This will launch the field assist dialog.  The dialog can be configured
-using the example preferences.  
-<h4>
-Setting Field Assist Preferences</h4>
-<p>
-Two preference pages are provided for setting up the way the dialog
-behaves.  The <b>Field Assist Example Preferences</b> page allows you
-to configure how the dialog annotates fields with errors and warnings,
-required fields, and content assist.  A combination of decorations 
-can be used to annotate the fields.  This preference
-page is intended to show what is possible when configuring decorations.
-It is geared more toward the programmer trying out field assist, and
-is not intended to be an example of a good preference page for letting
-end users control the annotations.
-</p>
-<p>The <b>Content Assist
-Preferences</b> page allows you to configure how the content assist is 
-installed on the dialog text field.  Most of the options provided in the
-field assist API (ContentProposalAdapter) are configurable on this page.
-Note that it is possible to configure the content assist for an undesirable
-user experience.  For example, setting content assist to auto-activate on all
-characters using a long delay is not desirable.  It can be confusing
-to use cumulative proposal filtering when the filter keys are not propagated
-back to the control.  The purpose of exposing the API in the preference page is
-to allow the field assist programmer to try all possible combinations.
-It is not expected that any of these preferences would ever be exposed to
-an end user, but rather that the developer chooses the best combination of
-these values to provide a certain style of content assist.
-</p>
-<h4>Using the dialog</h4>
-<p>
-The example dialog shows several different ways to configure
-decorations and content proposal behavior in the first
-dialog group (Security group):
-<ul>
-<li> The <b>User name</b> field is configured as a required field with content
-assist.  This field is considered in error when a non-alphabetic character
-is typed in the field.  A quick fix menu is installed on the error decoration
-that allows the user to strip non-alphabetic characters.  The field is
-considered in a warning mode when the name "bob"
-is typed in the field.  This field also installs a default select (double-click) listener on
-the decoration to demonstrate the decoration listener interface.</li>
-<li>The <b>Combo user name</b> field is configured similarly, but uses a combo box 
-instead of a text field, and installs a selection (single click) listener on
-the decoration rather than a default select listener.</li>
-<li>The <b>Age</b> field demonstrates the use of a Spinner widget with decorations.
-It is configured as a required field, but does not provide an error state.  It
-is considered in a warning mode when an age greater than 65 is set.</li>
-<li>The <b>Password</b> field does not use any decorations or content assist.
-It is merely provided to demonstrate that non-decorated fields can be easily aligned
-with decorated fields.</li>
-</ul>
-</p>
-<p>
-The second dialog group shows how to use the AutoCompleteField to
-get automatic field completion without using a content assist key or
-decorator.
-</p>
-<h4>Example source code</h4>
-<p>
-The example dialog is not very complex, but is intended to demonstrate how to
-program field assist.  Some notes about the source code follow:
-<ul>
-<li>When using ControlDecoration, the layout code must ensure that there is
-enough margin space around the decoration to render the decoration.
-<li>The example plug-in registers standard field decorators for indicating
-the availability of content assist, marking a field as required, or marking
-a field that has an error with quick fix or warning.  In cases where a standard decorator
-description is used in all fields, the actual decorations from the registry are
-used.  In cases where the field provides a unique description of an error or warning, 
-a unique decoration containing the text is managed by the field. </li>
-<li>SmartField and its subclasses are used to provide field-specific 
-validation, error and warning messages, content retrieval, and optional quick fix for
-the different fields in the dialog.  We expect that applications provide
-similar frameworks (such as data binding) to achieve this goal.  SmartField
-is intended to show a simple technique for validating different fields inside
-a dialog.  It is not considered a robust example of a semantic field definition
-framework.</li>
-</ul>
-</p>
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.fieldassist/icons/sample.gif b/examples/org.eclipse.ui.examples.fieldassist/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.fieldassist/plugin.properties b/examples/org.eclipse.ui.examples.fieldassist/plugin.properties
deleted file mode 100644
index dad4c04..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Field Assist Example
-Plugin.providerName = Eclipse.org
-MainPreferences.Name = Field Assist Example Preferences
-ContentAssistPreferences.Name = Content Assist Preferences
-Actions.ActionSetName = Field Assist Example Action Set
-Actions.ExampleMenu = Fiel&d Assist 
-Actions.TestDialogName = &Field Assist Test Dialog...
-Actions.TestDialogTooltip = Open a dialog that tests the field assist API
diff --git a/examples/org.eclipse.ui.examples.fieldassist/plugin.xml b/examples/org.eclipse.ui.examples.fieldassist/plugin.xml
deleted file mode 100644
index 1e0aa76..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/plugin.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="%Actions.ActionSetName"
-            visible="true"
-            id="org.eclipse.ui.examples.fieldassist.actionSet">
-         <menu
-               label="%Actions.ExampleMenu"
-               id="exampleMenu">
-            <separator
-                  name="exampleGroup">
-            </separator>
-         </menu>
-         <action
-               label="%Actions.TestDialogName"
-               icon="icons/sample.gif"
-               class="org.eclipse.ui.examples.fieldassist.actions.TestDialogAction"
-               tooltip="%Actions.TestDialogTooltip"
-               menubarPath="exampleMenu/exampleGroup"
-               toolbarPath="exampleGroup"
-               id="org.eclipse.ui.examples.fieldassist.actions.ExampleAction">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%MainPreferences.Name"
-            class="org.eclipse.ui.examples.fieldassist.preferences.FieldAssistPreferencePage"
-            id="org.eclipse.ui.examples.fieldassist.preferences.FieldAssistPreferencePage">
-      </page>
-     <page
-            name="%ContentAssistPreferences.Name"
-            class="org.eclipse.ui.examples.fieldassist.preferences.ContentAssistPreferencePage"
-            category="org.eclipse.ui.examples.fieldassist.preferences.FieldAssistPreferencePage"
-            id="org.eclipse.ui.examples.fieldassist.preferences.ContentAssistPreferencePage">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.ui.examples.fieldassist.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.job/.classpath b/examples/org.eclipse.ui.examples.job/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/examples/org.eclipse.ui.examples.job/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.job/.cvsignore b/examples/org.eclipse.ui.examples.job/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.job/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.job/.project b/examples/org.eclipse.ui.examples.job/.project
deleted file mode 100644
index bf9091f..0000000
--- a/examples/org.eclipse.ui.examples.job/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.job</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.job/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.job/META-INF/MANIFEST.MF
deleted file mode 100644
index 108ff21..0000000
--- a/examples/org.eclipse.ui.examples.job/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Progress Examples Plug-in
-Bundle-SymbolicName: org.eclipse.ui.examples.job; singleton:=true
-Bundle-Version: 3.0.0
-Bundle-ClassPath: ProgressExamples.jar
-Bundle-Activator: org.eclipse.ui.examples.jobs.ProgressExamplesPlugin
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.examples.jobs,
- org.eclipse.ui.examples.jobs.actions,
- org.eclipse.ui.examples.jobs.views
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors
-Eclipse-AutoStart: true
diff --git a/examples/org.eclipse.ui.examples.job/README.TXT b/examples/org.eclipse.ui.examples.job/README.TXT
deleted file mode 100644
index b835369..0000000
--- a/examples/org.eclipse.ui.examples.job/README.TXT
+++ /dev/null
@@ -1,38 +0,0 @@
-This examples plug-in demonstrates the following features:

-

-1. deferred tree/table population

-    - serialized children fetch jobs or concurrent

-    - batching updates to the collector

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

-    

-2. progress view

-    - cancellation

-    - showing progress, sub tasks

-    - showing errors

-    - progress groups

-    - appearing/disapearing as floating window

-    - system jobs aren't shown

-    

-3. requestInUI

-    - post a request

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

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

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

-    

-4. blocked foreground operation

-    - run a background job that locks the workspace

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

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

-    

-5. workbench part support for progress

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

-    - get busy cursor plus animating something

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

-    

-6. Creating progress groups

-    - that are run serialized

-    - that are run concurrently

-    - cancel one sub job

-    - parent is updated correctly

-    

-7. running action via busyCursorWhile
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/about.html b/examples/org.eclipse.ui.examples.job/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.job/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/build.properties b/examples/org.eclipse.ui.examples.job/build.properties
deleted file mode 100644
index 384a829..0000000
--- a/examples/org.eclipse.ui.examples.job/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.ProgressExamples.jar = src/
-bin.includes = plugin.xml,\
-               icons/,\
-               *.jar,\
-               ProgressExamples.jar,\
-               META-INF/
diff --git a/examples/org.eclipse.ui.examples.job/doc/Responsive UIs.ppt b/examples/org.eclipse.ui.examples.job/doc/Responsive UIs.ppt
deleted file mode 100644
index 6d52538..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/Responsive UIs.ppt
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/doc/eclipse-con-talk_2.doc b/examples/org.eclipse.ui.examples.job/doc/eclipse-con-talk_2.doc
deleted file mode 100644
index 235f922..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/eclipse-con-talk_2.doc
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/doc/responsive_ui.html b/examples/org.eclipse.ui.examples.job/doc/responsive_ui.html
deleted file mode 100644
index d1060f4..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/responsive_ui.html
+++ /dev/null
@@ -1,321 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-  <title></title>
-</head>
- <body>
- 
-<h1>Towards a more responsive Eclipse UI</h1>
- 
-<font size="-1">Last modified: June 2, 2003</font> 
-<p>Eclipse is well known as a powerful integrated development environment,
-but it is perceived by users as sometimes being unwieldy or unresponsive
-to work with. The goal of this work is to uncover the underlying causes of
-the unresponsiveness and provide Eclipse developers with the tools they need
-to focus on making their code responsive.  </p>
- 
-<p>To begin with, it is important to note that, responsiveness is not the
-same as performance, and to some extent they are contradictory:</p>
- 
-<p>The <i>performance</i> of an application is a measure of how much work
-it can do in a given length of time. For example, the Eclipse Platform can
-operate on thousands of files per minute on a typical desktop system. One
-way to achieve high performance is to ensure that all available resources 
-are dedicated to each task until it is complete. Since most modern window
-systems require applications to regularly call system code to keep their
-user interfaces active, dedicating all processing resources to a non-user-interface
-task will cause the user interface to become unresponsive.</p>
- 
-<p>The <i>responsiveness</i> of an application is a measure of how often
-its user interface is in a state where the user can interact with it, how
-often those interactions can trigger new tasks being initiated, and how often
-the information the user interface is displaying accurately reflects the state
-of the system it is modeling. Implementing a responsive system will require
-the system resources to be split across multiple concurrent tasks, so although
-the user will typically be more productive, the time it takes the system
-to complete a particular task will be longer (i.e. Its performance on <u>that
-task</u> will be lower).</p>
- 
-<p>In order to increase the responsiveness of the Eclipse Platform we will
-be looking at the following two areas:</p>
- 
-<ol>
- 	<li>
-    <p>all of the user interface "features" of the 	Eclipse Platform will
-be investigated to remove any inherent 	limitations which prevent them from
-being used in a responsive 	fashion. We have not begun work on this aspect
-of the problem, so it 	is difficult to provide any definitive examples. However,
-some 	likely candidates for investigation, at least, would be:</p>
- </li>
-</ol>
-<ul>
- 	<li>
-    <p>the startup sequence, since the time between when the user 	starts
-the application and when they can start working is very 	important to their
-perception of its responsiveness.</p>
- 	</li>
-  <li>
-    <p>SWT widgets like the Table, Tree, and List whose API make it 	difficult
-to code in an "on demand" style where the 	contents are requested by the
-widget when they are required for 	display, rather than up front by the application.</p>
- 	</li>
-  <li>
-    <p>the Java text editor, which takes significantly longer to get 	to
-the point where the contents can be edited than the simple text 	editor.</p>
- </li>
-</ul>
- 
-<ol start="2">
- 	<li>
-    <p>certain operations like builds and searches which currently 	run synchronously
-and block the user (at the UI) from doing other 	work until they are completed
-will be modified to run asynchronously 	in the background. Implementing this
-requires an improved 	concurrency architecture. The remainder of this document
-describes 	the work which has been done so far in that area.</p>
- </li>
-</ol>
- 
-<h2>Overview of current problems</h2>
- 
-<ul>
- <li> Use of modal progress dialogs is pervasive in the UI, preventing the
-user from doing any other work (or even browsing) while long running tasks
-are processing. </li>
- <li> Very long running operations only update the UI once at the very end.
-For example, when searching, no search results are available for viewing
-until the entire search is complete.  When importing or checking out large
-projects, the project doesn't appear in the UI until every file in the project
-has been created. </li>
- <li> Many components have their own mechanism for managing background activity.
- Examples include: search indexing, UI decoration, Java editor reconciling,
-and workspace snapshot. Each component should not have to roll their own
-concurrency architecture for off-loading work into background threads. </li>
- <li>The current workspace lock is heavy handed.  There is a single write
-lock for the entire  workspace, and it is generally acquired for significant
-periods of time.  This can block other processes for several minutes.  When
-the lock is acquired, no other threads can modify the workspace in any way. 
-  </li>
- <li> The workspace locking mechanism is currently tied to the mechanism
-for batching workspace changes.  We widely advertise that compound workspace
-changes should be done within an IWorkspaceRunnable.  The workspace is always
-locked for the duration of the IWorkspaceRunnable even if it is not making
-changes to the workspace. </li>
- <li> Various plugins have their own locking mechanisms.  Since plugins don't
-always know about each other, these locks can conflict in unforeseeable ways,
-making Eclipse prone to deadlock. </li>
- 
-  <p> </p>
-</ul>
-  
-<h2>Proposed solutions</h2>
- 
-<h3>Job scheduling mechanism</h3>
- 
-<p> Platform core (runtime plugin) will introduce a new job manager API for
-background work.  This API will allow clients to: </p>
-<ul>
- <li> Schedule <i>Job</i> instances, units of runnable background activity.
-Jobs can be scheduled either for immediate execution, or execution after
-some specified delay.  The platform will maintain a queue for waiting jobs,
-and will manage a pool of worker threads for running the jobs. </li>
- <li> Specify job scheduling priority, as well as explicit dependencies between
-jobs (Job A must run after Job B but before Job C, etc). </li>
- <li> Specify job scheduling rules, which will allow implicit constraints
-to be created between jobs that don't know about each other.  For example,
-a Job can say: "While I'm running, I require exclusive access to resource
-X.  Don't run me until it's safe to do so, and don't run any other jobs that
-might conflict with me until I'm done".  The constraint system will be generic
-at the level of the job scheduling API, but other plugins can introduce standard
-constraints that apply to their components. </li>
- <li> Query, cancel and change priority of jobs that are waiting to run.  This
-allows clients to cancel jobs that have become irrelevant before they had
-a chance to run. (Example: cancel pending indexing or decoration jobs on
-a project when the project is deleted). </li>
- <li> Group jobs into families, and query, cancel, and manage entire job
-families as a unit. </li>
- <li> Register for notification when jobs are scheduled, started, finished,
-canceled, etc.  Clients can register for notification on a single job, or
-on all jobs. </li>
- <li> Provide a mechanism to allow jobs to carry their work over to another
- thread and finish asynchronously.  This is needed to allow jobs to asyncExec
- into the UI, but maintain scheduling rules and avoid notifiying listeners until
- the async block has returned.
- </li>
- <li> Add listeners to be hooked to the progress monitor callbacks of the
-running jobs.  This allows the UI to report progress on jobs that would otherwise
-have no way of connecting with the UI (such as indexing or snapshot jobs). 
-  </li>
- 
-</ul>
- 
-<p> This scheduling mechanism will replace most (if not all) existing background
-thread mechanisms in the SDK.  This includes: editor reconcilers, UI decoration, 
-search and Java indexing, workspace snapshot, and various threads used in the launch/debug
-framework: JDI thread for communicating with the VM, threads for monitoring
-input and output streams, debug view update thread, and the thread waiting
- for VM termination. </p>
- 
-<p> Also, the scheduling facility will make it easier for more components
-to off-load work into background threads, in order to free up the UI thread
-for responding to the user.  This includes all jobs that currently run in
-the context of a modal progress indicator, but also other processing work
-that currently executes in the UI.  Examples of activity that can be offloaded
-into jobs: decorating editors (marker ruler, overview ruler), type hierarchy
-computation, structure compare in compare editors, auto-refresh with file
-system, etc.  </p>
-   
-<h3>New UI look and feel for long running activity</h3>
- 
-<p> Long running operations will generally be run without a modal progress indicator 
-  by scheduling them with the core job manager API.   Most jobs currently using a
-  modal progress dialog will switch to this new non-modal way of running.
-  The platform UI will provide a view from which users can see the list of waiting and 
-  running background jobs, along with their current progress. This is a view rather than 
-  a dialog so the user can continue to manipulate the UI while background jobs are 
-  running. This view will likely take the form of a tree so that expanding a job will
-  give more detailed progress information.  The UI will also provide some ubiquitous 
-  feedback device (much like the page loading indicator in popular web browsers or the 
-  Macintosh user interface), that will indicate when background activity is happening. 
- </p>
-<p>Users will be able to cancel any background activity from the progress view. 
-  Users will also be able to pause, resume, or fast forward (increase priority 
-  of) any waiting job. Since we can never know which of several background jobs 
-  the user is most anxious to complete, this puts some power in the user's hands 
-  to influence the order of execution of waiting background jobs.</p>
-
-<p>
-  The platform UI will introduce a special job called a UI job, which is simply a job that 
-  needs to be run in the UI Thread. We define this type of job as a convenience for those 
-  who do not want to keep looking for a Display to asyncExec in.  Casting UI work
-  as jobs will allow the framework to control scheduling based on priority and user 
-  defined scheduling rules.  Note that although UI jobs should generally be brief
-  in duration, they may require locks and thus the framework must have a strategy
-  for avoiding deadlock when the UI thread is waiting for a lock.
- 
-<h3>Minimize use of long term workspace locks</h3>
- 
-<p> We will actively discourage clients from acquiring the workspace lock
-for indefinite periods of time.  <code>IWorkspaceRunnable</code> is the current
-mechanism that allows clients to lock the workspace for the duration of a
-runnable.  This API will be deprecated.   Clients that require exclusive
-access to portions of the workspace should  schedule background jobs with
-appropriate scheduling rules.  Scheduling rules can  specify smaller portions
-of the workspace, allowing clients to "lock" only the resources  they need.
-Longer running workspace API methods will be broken up as much as  possible
-to avoid locking the workspace for extended periods.  Clients that do not 
-run as jobs, or that run as jobs without the appropriate scheduling rules,
-will have to be tolerant of concurrent modifications to the workspace. </p>
-  
-<h3>New resource change notification and autobuild strategy</h3>
- 
-<p> The current mechanism for batching resource changes and auto-building
-is based on the <code>IWorkspaceRunnable</code> API.  This approach has two
-problems: </p>
-<ol>
- <li> Clients sometimes forget to use it, which results in severe performance
-problems because notifications and auto-builds happen more often than necessary. 
-  </li>
- <li> This can become too coarse-grained for long running operations.  If
-the user begins an operation that will take several minutes, it would be
-nice to perform some incremental updates (notifications) while the operation
-is still running. </li>
- 
-</ol>
- 
-<p></p>
- 
-<p> The resources plugin will adopt new heuristics for when builds and notifications 
-should happen.  These heuristics will likely require some fine-tuning and
-may need to be customizable, but generally: </p>
-<ul>
- <li>Resource change notifications will always start within a bounded  period
-after the workspace has changed (such as five seconds). This will ensure notifications
-occur periodically during long operations. </li>
- <li> Notification will begin immediately if there have been no workspace
-changing jobs in the job queue for a short period (such as 500 milliseconds).
- This ensures timely  user feedback when background activity has stopped.
- There will be a lower bound on the frequency of notifications to prevent
-listeners from hogging the CPU. </li>
- <li>There will be API for forcing an immediate notification if clients know
-it is either necessary or desirable for a notification to occur.  (actually,
-this mechanism  has existed since Eclipse 1.0 in the method <code>IWorkspace.checkpoint</code>). 
-UI actions will use this for indicating when a user action has completed.
- Other clients that absolutely depend on the results of notifications can
-also use this mechanism  (for example clients that depend on the java model
-being up to date). </li>
- <li> Autobuilds will begin (if needed) when the work queue has been idle
-for a sufficient period of time (such as 1 second).  If a background job
-that requires write access to the workspace is scheduled before autobuild
-completes, then auto-build will be canceled automatically.  Existing builders
-will need to improve their cancelation behaviour so that a minimal amount
-of work is lost. </li>
- <li> There will still be a mechanism to allow users or API clients to force
-a build to occur, and these explicit builds will not be canceled automatically
-by conflicting background activity. </li>
- <li> Both builders and listeners could adapt automatically if they start
-interfering with ongoing work by increasing their wait period. This would
-allow builders and listeners to adapt to changes in activity levels. </li>
- 
-</ul>
- 
-<p></p>
- 
-<p> Unless explicitly requested, builds and resource change listeners will
-always be run  asynchronously in a different thread from the one that initiated
-the change.  This will improve the responsiveness of workspace changing operations
-that are initiated from the UI thread. </p>
- 
-<h3>Centralized locking mechanism</h3>
- 
-<p> Platform core (runtime plugin) will introduce a smart locking facility.
- Clients that  require exclusive access to a code region should use these
-locks as a replacement for  Java object monitors in code that may interact
-with other locks.  This will allow the platform to detect and break potential
-deadlocks.  Note that these locks are orthogonal to the job scheduling rules
-described earlier.  Job scheduling rules typically ensure that only non conflicting
-jobs are running, but cannot guarantee protection from malicious or incorrect
-code. </p>
-  These locks will have the following features: 
-<ul>
- <li>They will be reentrant.  A single thread can acquire a given lock more
-than once, and it will only be released when the number of acquires equals
-the number of releases. </li>
- <li>They will automatically manage interaction with the SWT synchronizer
-to avoid  deadlocking in the face of a syncExec.  I.e., if the UI thread
-tries to acquire a lock, and another thread holding that lock tries to perform
-a syncExec, the UI thread will service the syncExec work and then continue
-to wait for the lock. </li>
- <li>They will avoid deadlocking with each other.  I.e., if thread A acquires
-lock 1, then waits on lock 2, while thread B acquires lock 2 and waits on
-lock 1, deadlock would normally ensue.  The platform locking facility will
-employ a release and wait protocol to ensure that threads waiting for locks
-do not block other threads. </li>
- 
-</ul>
-   
-<h2>Milestone targets</h2>
- 
-<ul>
- <li> M1: Core runtime job manager API defined and implemented.  UI API defined
-with reference implementation.  Prototype UI implementation of progress view
-and progress animation. All components should begin looking into thread safety
-issues with their API. </li>
- <li>M2: In a branch, a significant subset of the Eclipse platform converted
-to use the new mechanisms. Ongoing work in all components to become thread 
-safe and to port existing components to job manager API (reconciler, indexer,
-decorator, debug events). </li>
- <li> M3: all platform work moved from branch to HEAD at beginning of M3
-cycle.  Goal for end of M3 is some level of stability across entire SDK
-in new concurrent world.  All  component API must be thread safe. </li>
- 
-</ul>
-<p>
- This schedule is aggressive but the intent is to wrap up platform work by
-end of M3.  This allows plenty of time to shake out threading bugs and allow
-other components to stabilize by M4. 
-</p>
-
-(Plan item bug reference: <a
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36957">36957</a>)<br>
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/doc/usecases.txt b/examples/org.eclipse.ui.examples.job/doc/usecases.txt
deleted file mode 100644
index f90c3ef..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/usecases.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-Basic concurrency use cases.  Some are overlapping, but each requires
-a different level of concurrency support.  Roughly ordered by perceived
-implementation difficulty.  1. and 2. are currently support in Eclipse 2.1,
-but we need to keep them in mind with any new story.
-
-1. Allow decoration tasks to continue in background without affecting
-   UI responsiveness or ability to modify resources.
-   
-   Examples:
-     a) User performs a CVS update.  While CVS is computing and updating 
-        new decorations in various views, the user wants to continue viewing
-        and modifying resources.  Duplicate decoration work should be detected
-        and avoided (don't decorate the same resource twice if possible).
-     b) User is typing in an editor.  Computation of effects such as
-        "red sea", and bracket matching should happen in the background
-        without affecting responsiveness.
-
-2. Very long running operations that do not modify resources, but must
-   be stoppable, and joinable.
-   
-   Examples:
-     a) User imports a JAR file.  This triggers an indexing job in the background.
-        User can continue to view and modify resources while indexing happens.
-        If the user deletes the JAR, or modifies it, duplicate or superfluous
-        background jobs should be canceled automatically.
-     b) User imports a JAR file.  This triggers an indexing job in the background.
-        User then requests a type hierarchy.  Priority of any index jobs
-        required by the type hierarchy should be bumped up and completed
-        immediately.
-
-3. Allow browsing during long operation
-
-  Example:
-    The user has started some long running background task (checkout,
-    import, build, etc).  They want a live UI so they can browse resources
-    (get children, get contents, dirty editors) while they wait for the long 
-    operation to finish.
-    
-  Deluxe:
-    The background task can complete in chunks, allowing the user to browse
-    and modify resources that were involved in the operation.  I.e., they
-    can edit imported resources before the import has completed.
-
-4. Allow edit during long running read-only operations
-  
-  Example:
-    The user starts a search.  Since searches don't modify resources,
-    the user may want to modify (add, delete, change) resources while
-    the search is happening.  This may or may not affect the search
-    results.
-
-5. Concurrent edit.
-
-  Examples:
-    a) The user does a CVS update on project A while project B is being deleted.
-    b) The user does a CVS update on project A while that same project is
-    being compiled, deleted, etc.  This is the extreme concurrency example.  
-
-    
-6. Allow preemption and restart on long-running operation.
-
-  Examples:
-  	a) The Mcq example.  User hits save on a file, and build starts.  User
-  	   realizes that there is an error, and they modify and save again.
-  	   They want to cancel the currently running build and start a new one.
-  	b) User selects a revision in the CVS repositories view, and hits
-  	   checkout.  While checkout is running, user realizes they chose
-  	   the wrong version, and they want to checkout a different one instead.
-  	   They want to cancel the current checkout and pre-empt with another.
-  	   
diff --git a/examples/org.eclipse.ui.examples.job/doc/workspace-lock.html b/examples/org.eclipse.ui.examples.job/doc/workspace-lock.html
deleted file mode 100644
index 83f19f3..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/workspace-lock.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-<h1>Workspace lock granularity</h1>
-<h2>The problem</h2>
-<ul>
-<li>The current workspace lock is heavy handed.  There is a single write lock for the entire 
-workspace, and it is generally acquired for significant periods of time.  This can block
-other processes for several minutes.  When the lock is acquired, no other threads
-can write to the workspace in any way. The write lock does not interfere with workspace
-readers, which are always allowed to proceed.
-</li>
-<p>
-<li>
-Processes often don't know in advance whether writes are necessary, so often the 
-lock is acquired for long periods even when no writing occurs (for example on searches).
-</li>
-<p>
-<li>
-The workspace locking mechanism is currently tied to the mechanism for batching
-workspace changes.  We widely advertise that compound workspace changes should
-be done within an IWorkspaceRunnable.  The workspace is always locked for the
-duration of the IWorkspaceRunnable even if it is not making changes to the workspace.
-</li>
-<p>
-<li>
-In the absence of other sync mechanisms, other clients use the workspace lock
-for working with operations that don't necessarily even operate on resources.
-</li>
-<p>
-<li>
-To avoid deadlock, many clients acquire the workspace lock "just in case", before
-acquiring their own private lock mechanism.
-</li>
-<p>
-<li>
-Although this problem is most evident with the workspace lock, there are other
-heavy-handed locks in Eclipse with which the same issues appear (the CVS lock is
-another example).
-</li>
-</ul>
-
-<h2>Proposed Solution</h2>
-<p>
-The current workspace lock is very coarse-grained both in how long the lock is held,
-and the scope of the resources that are locked by it.  To achieve better concurrency
-in the workspace, we need to attack the lock's physical granularity, its temporal
-granularity, or some combination of the two.
-</p>
-<p>
-We can improve the lock's temporal granularity by removing any public, general way 
-of locking for an arbitrary period of time. I.e., we make the simple change of not 
-acquiring the lock for IWorkspaceRunnables. (or even better, deprecate IWorkspaceRunnable entirely).
-</p>
-<p>
-Internally, the workspace would continue to use a single lock in critical regions to ensure
-the integrity of individual API calls.  However, a systematic effort would be made to
-break down the duration of locking within those calls, where possible.  For example,
-a best-effort copy method does not need to lock the workspace for its entire duration,
-but only for each unit of work where a new resource is created at the destination.
-</p>
-<p>
-The underlying design rule is to prevent an atomic operation from locking
-the workspace for a long period of time.  Without the presence of long term locks, 
-long running concurrent operations will interleave their access to the workspace, 
-enabling several workspace-modifying operations to run at the same time.
-</p>
-<p>
-This solution is optimistic. It assumes that concurrent writes to the same set 
-of resources in a conflicting manner are relatively rare. One could in fact go further, and
-say that if concurrent operations are modifying the same resources at the same time,
-then it is either a user or programming error, and the concurrent tasks should just fail.
-Serves them right for trying to do contradictory things on the same set of resources.
-</p>
-<p>
-However, this philosophy is not acceptable without a very strong visual indication
-to the user of what is happening and when it will be finished.  I.e., if we had a progress
-dialog saying, "Resource X is being modified, and I will let you know when I'm done",
-then it might be acceptable to blame the user if they start a conflicting task before
-it finishes.  Some of the drawbacks of this approach are:
-<ol style="a">
-<li>The dialog is a distraction to the user in the cases where the user
-doesn't care when the task ends and is not waiting for its result</li>
-<li>This interaction style puts the onus on the user to avoid making mistakes.  </li>
-<li>In many cases the user doesn't know what resources are modified by a given 
-operation. I.e., it is unrealistic to assume that users can compute the intersection
-between the set of resources that all current background threads may modify
-and the set of resources that might be modified by another task they are thinking
-of starting.</li>
-<li>The penalty to the user for making a mistake can be severe.  For example,
-if the user starts a CVS commit operation, and then, thinking the commit is about done,
-decides to delete the project, they will be unhappy if the deletion started before
-the commit finished.</li>
-</ol>
-<p>
-So, how do we schedule concurrent jobs in a way that prevents conflicts without
-employing a single long term lock? We can introduce a scheme where
-jobs can specify in advance whether they need exclusive access to a resource.
-That is, each job can optionally supply a <i>scheduling rule</i> that is used by
-the job scheduler when making decisions about which jobs to run.  The API for these 
-rules would look something like this:
-<pre>
-public interface ISchedulingRule {
-	public boolean isConflicting(ISchedulingRule);
-}
-</pre>
-<p>
-While these rules would remain generic at the job scheduling level, the workspace
-can introduce some standard rules.  For example, a rule could request an array
-of resources, or the entire workspace.  In this way, finer-grained portions of the workspace
-can be effectively locked by a job.
-</p>
-<p>
-The contract on these rules would be as follows: the job scheduling mechanism 
-guarantees that a job won't be started if there is a job currently running that conflicts
-with its scheduling rule.  This scheduling rule would be orthogonal to any locking 
-mechanism, thus avoiding some of the problems discussed earlier with regard
-to pre-specification of locks. We still need to revisit our previous objections to
-pre-specified locks to see how they apply to scheduling rules:
-<ul>
-<li>Scheduling performance. The scheduling rules need to be resolved every time
-a job is to be run.  It is true that this will still impose an overhead on scheduling.
-Most of the time, however, there will be few or no jobs running so very little rule
-analysis is needed.  As the number of concurrent operations grows, the cost will
-increase.  However, this has the nice property that it is fast most of the time, and 
-only starts to slow down in the uncommon case where the system is already very busy anyway.
-</li>
-<li>How to know what rules to use?  In some cases it is hard to predict what resources
-will be changed by a given unit of work.  When third party API is called, there is often
-no contract saying what will be touched.  This is still an issue.  In the worst case,
-clients will err on the side of caution and specify that the entire workspace is needed.
-We will need to educate users to specify rules carefully, and if necessary to break
-jobs up into separate units with different rules.  We will introduce a way of creating
-composite jobs that will be run in a specific order, but each job can have its
-own scheduling rules.
-</li>
-<li>How to enforce that rules are followed?  The proposal is that we don't enforce
-anything.  That is, a job can request arbitrary locks regardless of what rules were
-stated.  To avoid deadlock, lock ordering with release and wait (described earlier)
-will be used.  The theory is that if jobs are well behaved and specify their rules
-correctly, deadlock will be rare, so release and wait will rarely be necessary.  To put
-it another way, the penalty for not specifying your rules correctly is that you might
-have some locks taken away from you when you don't expect it.  This is a much
-more palatable failure mode than throwing an exception, for example.
-</li>
-<li>Pre-allocation can be wasteful if resources are only actually needed for a short
-period of time.  This is still a potential problem with scheduling rules.  Job writers
-will have to take this into consideration when designing jobs and their rules.  If a 
-job only needs access to a resource briefly at the end of a long operation, it can
-be coded as two jobs with different rules.  This is an area where scheduling rules
-introduce a new complication that clients need to be aware of.
-</li>
-</ul>
-<p>
-Scheduling rules may not be necessary at all in cases where contention is not likely,
-or where the job is written in such a way that concurrent changes are tolerated.
-if clients are confident that no contention is likely, they don't need to specify any
-rules.  A good example for this is search.  Search may create search result markers
-on arbitrary resources.  However, search could be implemented to not have
-any scheduling rules, and it could be tolerant of concurrent changes and deletion.
-Since it only creates search markers, it doesn't care if those markers are changed
-or deleted after they are created.  Thus it is possible that search can be implemented without
-using any scheduling rules at all, even though it may potentially make modifications
-to an arbitrary set of resources.  Another example of this is CVS metadata files.  Since
-the CVS client is the only one that ever views or modifies the CVS metadata files,
-it may not need to create a scheduling rule for them.
-</p>
-<p>
-Finally, when there is contention between jobs, we need a
-mechanism for giving more value to jobs initiated by users versus background jobs 
-that the user is not waiting on results for.  Each job belongs to a priority class that
-can be used to manage this interaction.  User initiated jobs belong to the INTERACTIVE
-priority class. To avoid blocking interactive jobs for unacceptable periods of time, we
-can employ various policies to ensure the job gets run, such as:
-<ul>
-<li>Only start non-interactive jobs when NO interactive jobs are running</li>
-<li>If an interactive job is waiting to be run, and its rule conflicts with a currently
-running non-interactive job, the non-interactive job may be canceled to let the interactive
-job proceed.</li>
-<li>If an interactive job is waiting on a lock held by a non-interactive job, 
-the non-interactive job may be canceled to let the interactive job proceed.</li>
-</ul>
-
-<h3>Locking issues</h3>
-<h4>Is the UI thread allowed to acquire locks?</h4>
-<b>Reasons for "No":</b><br>
-<p>
-Clearly there is a deadlock risk due to the interaction with syncExec.
-We can handle this risk in the same way that we handle it in Eclipse 2.1.  By ensuring
-the core locking mechanism and the SWT synchronizer are aware of each other, we
-can avoid potential deadlocks by servicing syncExecs in the UI thread in the case
-where the UI thread is waiting on an acquired lock.  
-</p>
-<p>
-Not allowing locks in the UI thread would also help improve UI responsiveness.  
-If the UI thread is waiting on a lock, it cannot be processing the event queue, and thus
-the UI will fail to paint.
-</p>
-<p>
-If we don't allow locks in the UI thread, then we can easily add the extra restriction
-that locks must be acquired from within the context of currently running jobs.  This
-would give us a story for cleaning up misbehaving locks.  I.e., if someone acquires
-a lock but fails to release it, we can release it automatically when the job completes.
-</p>
-<b>Reasons for "Yes":</b><br>
-<p>
-The main drawback is that this would be unweildy to program with.  Some operations
-that acquire locks may actually be very fast.  Forcing the UI to fork a 
-job every time a lock is needed may be overkill in many cases.  If third party code is 
-called from the UI, the caller may not know if locks will be acquired deep down in the 
-call stack.  To be defensive, the UI would have to fork jobs whenever third party
-code is called.
-</p>
-<p>
-Another problem is how this rule would be enforced.  Throwing an exception when
-the UI thread attempts to acquire a lock would result in unacceptable runtime errors.
-</p>
-<h4>Do we expose locks?</h4>
-<p>
-Do we allow third party clients to directly acquire, for example, the workspace lock?
-The answer to this question must be "No", if we don't have the restriction that jobs
-be acquired within running jobs.  Otherwise, we would have no way of cleaning up
-locks that clients acquire but fail to release.  Is this acceptable?  Do we know of 
-any cases where clients will need to acquire the workspace lock, given that we have
-a system of rules to prevent conflicting jobs from running concurrently?
-</p>
-
-
-
-</body>	
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/icons/job_view.gif b/examples/org.eclipse.ui.examples.job/icons/job_view.gif
deleted file mode 100644
index 81fb7b4..0000000
--- a/examples/org.eclipse.ui.examples.job/icons/job_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/icons/sample.gif b/examples/org.eclipse.ui.examples.job/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.job/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/icons/suspend.gif b/examples/org.eclipse.ui.examples.job/icons/suspend.gif
deleted file mode 100644
index 0d71e42..0000000
--- a/examples/org.eclipse.ui.examples.job/icons/suspend.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/icons/tree_view.gif b/examples/org.eclipse.ui.examples.job/icons/tree_view.gif
deleted file mode 100644
index ce8bdb9..0000000
--- a/examples/org.eclipse.ui.examples.job/icons/tree_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/plugin.xml b/examples/org.eclipse.ui.examples.job/plugin.xml
deleted file mode 100644
index 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 0533c2f..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/ProgressExamplesPlugin.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.ui.examples.jobs;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.examples.jobs.views.ProgressExampleAdapterFactory;
-import org.eclipse.ui.examples.jobs.views.SlowElement;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class ProgressExamplesPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static ProgressExamplesPlugin plugin;
-	public static String ID = "org.eclipse.ui.examples.job";
-	
-	/**
-	 * The constructor.
-	 */
-	public ProgressExamplesPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static ProgressExamplesPlugin getDefault() {
-		return plugin;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		IAdapterManager m = Platform.getAdapterManager();
-		IAdapterFactory f = new ProgressExampleAdapterFactory();
-		m.registerAdapters(f, SlowElement.class);
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java
deleted file mode 100644
index 6e500e1..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.jobs;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.ui.progress.IProgressConstants;
-
-/**
- * Base class for a simple test job with configurable parameters
- */
-public class TestJob extends Job {
-	/**
-	 * A family identifier for all test jobs
-	 */
-	public static final Object FAMILY_TEST_JOB = new Object();
-	/**
-	 * Total duration that the test job should sleep, in milliseconds.
-	 */
-	private long duration;
-	/**
-	 * Whether the test job should fail.
-	 */
-	private boolean failure;
-	/**
-	 * Whether the job should report unknown progress.
-	 */
-	private boolean unknown;
-	private boolean reschedule;
-	private long rescheduleWait;
-
-	/**
-	 * Creates a new test job
-	 * 
-	 * @param duration
-	 *            Total time that the test job should sleep, in milliseconds.
-	 * @param lock
-	 *            Whether the job should use a workspace scheduling rule
-	 * @param failure
-	 *            Whether the job should fail
-	 * @param indeterminate
-	 *            Whether the job should report indeterminate progress
-	 * @param rescheduleWait
-	 * @param reschedule
-	 */
-	public TestJob(long duration, boolean lock, boolean failure,
-			boolean indeterminate, boolean reschedule, long rescheduleWait) {
-		super("Test job"); //$NON-NLS-1$
-		this.duration = duration;
-		this.failure = failure;
-		this.unknown = indeterminate;
-		this.reschedule = reschedule;
-		this.rescheduleWait = rescheduleWait;
-		setProperty(IProgressConstants.ICON_PROPERTY, ProgressExamplesPlugin
-				.imageDescriptorFromPlugin(ProgressExamplesPlugin.ID,
-						"icons/sample.gif"));
-		if (lock)
-			setRule(ResourcesPlugin.getWorkspace().getRoot());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.jobs.InternalJob#belongsTo(java.lang.Object)
-	 */
-	public boolean belongsTo(Object family) {
-		if (family instanceof TestJob) {
-			return true;
-		}
-		return family == FAMILY_TEST_JOB;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.jobs.InternalJob#run(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus run(IProgressMonitor monitor) {
-		if (failure) {
-			MultiStatus result = new MultiStatus(
-					"org.eclipse.ui.examples.jobs", 1, "This is the MultiStatus message", new RuntimeException("This is the MultiStatus exception")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			result
-					.add(new Status(
-							IStatus.ERROR,
-							"org.eclipse.ui.examples.jobs", 1, "This is the child status message", new RuntimeException("This is the child exception"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			return result;
-		}
-		final long sleep = 10;
-		int ticks = (int) (duration / sleep);
-		if (this.unknown)
-			monitor.beginTask(toString(), IProgressMonitor.UNKNOWN);
-		else
-			monitor.beginTask(toString(), ticks);
-		try {
-			for (int i = 0; i < ticks; i++) {
-				if (monitor.isCanceled())
-					return Status.CANCEL_STATUS;
-				monitor.subTask("Processing tick #" + i); //$NON-NLS-1$
-				try {
-					Thread.sleep(sleep);
-				} catch (InterruptedException e) {
-					return Status.CANCEL_STATUS;
-				}
-				monitor.worked(1);
-			}
-		} finally {
-			if (reschedule)
-				schedule(rescheduleWait);
-			monitor.done();
-		}
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJobRule.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJobRule.java
deleted file mode 100644
index d8759f0..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJobRule.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.ui.examples.jobs;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-
-/**
- * TestJobRule is a scheduling rules that makes all jobs sequential.
- *
- */
-public class TestJobRule implements ISchedulingRule {
-	private int jobOrder;
-
-	public TestJobRule(int order) {
-		jobOrder = order;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse.core.runtime.jobs.ISchedulingRule)
-	 */
-	public boolean contains(ISchedulingRule rule) {
-		if (rule instanceof IResource || rule instanceof TestJobRule)
-			return true;
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse.core.runtime.jobs.ISchedulingRule)
-	 */
-	public boolean isConflicting(ISchedulingRule rule) {
-		if (!(rule instanceof TestJobRule))
-			return false;
-		return ((TestJobRule) rule).getJobOrder() >= jobOrder;
-	}
-
-	/**
-	 * Return the order of this rule.
-	 * @return
-	 */
-	public int getJobOrder() {
-		return jobOrder;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/UITestJob.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/UITestJob.java
deleted file mode 100644
index c38aa63..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/UITestJob.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.jobs;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.progress.UIJob;
-/**
- * Base class for a simple test UI job with configurable parameters
- */
-public class UITestJob extends UIJob {
-	private long duration;
-	private boolean failure;
-	private boolean unknown;
-	public UITestJob(long duration, boolean lock, boolean failure, boolean indeterminate) {
-		super("Test job"); //$NON-NLS-1$
-		this.duration = duration;
-		this.failure = failure;
-		this.unknown = indeterminate;
-		
-		if (lock)
-			setRule(ResourcesPlugin.getWorkspace().getRoot());
-	}
-	public IStatus runInUIThread(IProgressMonitor monitor) {
-		if (failure)
-			throw new RuntimeException();
-		final long sleep = 10;
-		int ticks = (int) (duration / sleep);
-		if(unknown)
-			monitor.beginTask(toString(), IProgressMonitor.UNKNOWN);
-		else
-			monitor.beginTask(toString(), ticks);
-		try {
-			for (int i = 0; i < ticks; i++) {
-				if (monitor.isCanceled())
-					return Status.CANCEL_STATUS;
-				monitor.subTask("Processing tick #" + i); //$NON-NLS-1$
-				try {
-					Thread.sleep(sleep);
-				} catch (InterruptedException e) {
-					return Status.CANCEL_STATUS;
-				}
-				monitor.worked(1);
-			}
-		} finally {
-			monitor.done();
-		}
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/CreateJobsAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/CreateJobsAction.java
deleted file mode 100644
index b9c406f..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/CreateJobsAction.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.jobs.actions;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.examples.jobs.TestJob;
-
-/**
- * Test action that creates a number of fake jobs, and then waits until they complete.
- */
-public class CreateJobsAction implements IWorkbenchWindowActionDelegate {
-	static final long DELAY = 100;
-
-	private IWorkbenchWindow window;
-
-	private long askForDuration() {
-		InputDialog dialog = new InputDialog(window.getShell(), "How long?", "Enter the number of milliseconds per job", "1000", new IInputValidator() { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					public String isValid(String newText) {
-						try {
-							Long.parseLong(newText);
-						} catch (NumberFormatException e) {
-							return "Not a number"; //$NON-NLS-1$
-						}
-						return null;
-					}
-				});
-		if (dialog.open() == Window.CANCEL)
-			throw new OperationCanceledException();
-		return Long.parseLong(dialog.getValue());
-	}
-
-	private boolean askForExclusive() {
-		MessageDialog dialog = new MessageDialog(window.getShell(), "Likes to be left alone?", //$NON-NLS-1$
-				null, "Press yes if the jobs should be run one at a time, and no otherwise", //$NON-NLS-1$
-				MessageDialog.QUESTION, new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL}, 1 // no is the default
-		);
-		return dialog.open() == 0;
-	}
-
-	private boolean askForFailure() {
-		MessageDialog dialog = new MessageDialog(window.getShell(), "Born to fail?", //$NON-NLS-1$
-				null, "Should the jobs return an error status?", //$NON-NLS-1$
-				MessageDialog.QUESTION, new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL}, 1 // no is the default
-		);
-		return dialog.open() == 0;
-	}
-
-	private int askForJobCount() {
-		InputDialog dialog = new InputDialog(window.getShell(), "How much work?", "Enter the number of jobs to run", "100", new IInputValidator() { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					public String isValid(String newText) {
-						try {
-							Integer.parseInt(newText);
-						} catch (NumberFormatException e) {
-							return "Not a number"; //$NON-NLS-1$
-						}
-						return null;
-					}
-				});
-		if (dialog.open() == Window.CANCEL)
-			throw new OperationCanceledException();
-		return Integer.parseInt(dialog.getValue());
-	}
-
-	public void dispose() {
-		//do nothing
-	}
-
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-
-	public void run(IAction action) {
-		int jobCount = askForJobCount();
-		long duration = askForDuration();
-		boolean exclusive = askForExclusive();
-		boolean failure = askForFailure();
-		for (int i = 0; i < jobCount; i++) {
-			new TestJob(duration, exclusive, failure, false, false, 0).schedule(DELAY);
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		//do nothing
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/DebugJobManagerAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/DebugJobManagerAction.java
deleted file mode 100644
index 0272248..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/DebugJobManagerAction.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.jobs.actions;
-
-import org.eclipse.core.internal.jobs.JobManager;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * This class is not really sample code.  This action is used to gather debugging
- * information about the internal state of the background job scheduling 
- * mechanism.
- */
-public class DebugJobManagerAction implements IWorkbenchWindowActionDelegate {
-	public DebugJobManagerAction() {
-		super();
-	}
-	public void dispose() {
-		//
-	}
-
-	public void init(IWorkbenchWindow window) {
-		//
-	}
-
-	public void run(IAction action) {
-		System.out.println("**** BEGIN DUMP JOB MANAGER INFORMATION ****"); //$NON-NLS-1$
-		Job[] jobs = Platform.getJobManager().find(null);
-		for (int i = 0; i < jobs.length; i++) {
-			System.out.println("" + jobs[i].getClass().getName() + " state: " + JobManager.printState(jobs[i].getState())); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		System.out.println("**** END DUMP JOB MANAGER INFORMATION ****"); //$NON-NLS-1$
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		//
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/ForegroundAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/ForegroundAction.java
deleted file mode 100644
index 7d36c26..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/ForegroundAction.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.ui.examples.jobs.actions;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-public class ForegroundAction implements IWorkbenchWindowActionDelegate {
-	public void run(IAction action) {
-		try {
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) {
-					//no-op
-				}
-			}, null);
-		} catch (OperationCanceledException e) {
-			e.printStackTrace();
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-	}
-	public void selectionChanged(IAction action, ISelection selection) {
-		//do nothing
-	}
-	public void dispose() {
-		//do nothing
-	}
-	public void init(IWorkbenchWindow window) {
-		//do nothing
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/JobAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/JobAction.java
deleted file mode 100644
index f0b9ac4..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/JobAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.eclipse.ui.examples.jobs.actions;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * Our sample action implements workbench action delegate.
- * The action proxy will be created by the workbench and
- * shown in the UI. When the user tries to use the action,
- * this delegate will be created and execution will be 
- * delegated to it.
- * @see IWorkbenchWindowActionDelegate
- */
-public class JobAction implements IWorkbenchWindowActionDelegate {
-	public void run(IAction action) {
-		final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		Job job = new WorkspaceJob("Background job") { //$NON-NLS-1$
-			public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
-				monitor.beginTask("Doing something in background", 100); //$NON-NLS-1$
-				for (int i = 0; i < 100; i++) {
-					try {
-						Thread.sleep(100);
-					} catch (InterruptedException e) {
-						return Status.CANCEL_STATUS;
-					}
-					monitor.worked(1);
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		job.setRule(workspace.getRoot());
-		job.schedule();
-	}
-	public void selectionChanged(IAction action, ISelection selection) {
-		//do nothing
-	}
-	public void dispose() {
-		//do nothing
-	}
-	public void init(IWorkbenchWindow window) {
-		//do nothing
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/SuspendJobManagerAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/SuspendJobManagerAction.java
deleted file mode 100644
index bab1674..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/SuspendJobManagerAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.eclipse.ui.examples.jobs.actions;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * Toggles the suspend/resume state of the job manager.
- */
-public class SuspendJobManagerAction implements IWorkbenchWindowActionDelegate {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		try {
-			if (action.isChecked())
-				Platform.getJobManager().suspend();
-			else
-				Platform.getJobManager().resume();
-		} catch (OperationCanceledException e) {
-			//thrown if the user cancels the attempt to suspend
-			e.printStackTrace();
-		}
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-		//do nothing
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-		//do nothing
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow window) {
-		//do nothing
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/DeferredContentProvider.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/DeferredContentProvider.java
deleted file mode 100644
index cd45227..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/DeferredContentProvider.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.jobs.views;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.model.BaseWorkbenchContentProvider;
-import org.eclipse.ui.progress.DeferredTreeContentManager;
-
-public class DeferredContentProvider extends BaseWorkbenchContentProvider {
-
-	private DeferredTreeContentManager manager;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (viewer instanceof AbstractTreeViewer) {
-			manager = new DeferredTreeContentManager(this, (AbstractTreeViewer) viewer);
-		}
-		super.inputChanged(viewer, oldInput, newInput);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		// the + box will always appear, but then disappear
-		// if not needed after you first click on it.
-		if (manager != null) {
-			if (manager.isDeferredAdapter(element))
-				return manager.mayHaveChildren(element);
-		}
-
-		return super.hasChildren(element);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.model.WorkbenchContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object element) {
-		if (manager != null) {
-			Object[] children = manager.getChildren(element);
-			if(children != null) {
-				return children;
-			}
-		}
-		return super.getChildren(element);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java
deleted file mode 100644
index f484f67..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java
+++ /dev/null
@@ -1,649 +0,0 @@
-package org.eclipse.ui.examples.jobs.views;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.examples.jobs.TestJob;
-import org.eclipse.ui.examples.jobs.TestJobRule;
-import org.eclipse.ui.examples.jobs.UITestJob;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.progress.IProgressConstants;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * A view that allows a user to create jobs of various types, and interact with
- * and test other job-related APIs.
- */
-public class JobsView extends ViewPart {
-	private Combo durationField;
-	private Button lockField, failureField, threadField, systemField,
-			userField, groupField, rescheduleField, keepField, keepOneField,
-			unknownField, gotoActionField;
-	private Text quantityField, delayField, rescheduleDelay;
-	private Button schedulingRuleField;
-	private Button noPromptField;
-
-	protected void busyCursorWhile() {
-		try {
-			final long duration = getDuration();
-			final boolean shouldLock = lockField.getSelection();
-			PlatformUI.getWorkbench().getProgressService().busyCursorWhile(
-					new IRunnableWithProgress() {
-						public void run(IProgressMonitor monitor) {
-							if (shouldLock)
-								doRunInWorkspace(duration, monitor);
-							else
-								doRun(duration, monitor);
-						}
-
-					});
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-		} catch (InterruptedException e) {
-			// ignore - interrupt means cancel in this context
-		}
-	}
-
-	protected void createJobs() {
-		int jobCount = Integer.parseInt(quantityField.getText());
-		boolean ui = threadField.getSelection();
-		long duration = getDuration();
-		boolean lock = lockField.getSelection();
-		boolean failure = failureField.getSelection();
-		boolean noPrompt = noPromptField.getSelection();
-		boolean system = systemField.getSelection();
-		boolean useGroup = groupField.getSelection();
-		boolean unknown = unknownField.getSelection();
-		boolean user = userField.getSelection();
-		boolean reschedule = rescheduleField.getSelection();
-		final long rescheduleWait = Long.parseLong(rescheduleDelay.getText());
-		boolean keep = keepField.getSelection();
-		boolean keepOne = keepOneField.getSelection();
-		boolean gotoAction = gotoActionField.getSelection();
-		boolean schedulingRule = schedulingRuleField.getSelection();
-
-		int groupIncrement = IProgressMonitor.UNKNOWN;
-		IProgressMonitor group = new NullProgressMonitor();
-		int total = IProgressMonitor.UNKNOWN;
-
-		if (jobCount > 1) {
-			total = 100;
-			groupIncrement = 100 / jobCount;
-		}
-
-		if (useGroup) {
-			group = Platform.getJobManager().createProgressGroup();
-			group.beginTask("Group", total); //$NON-NLS-1$
-		}
-
-		long delay = Integer.parseInt(delayField.getText());
-		for (int i = 0; i < jobCount; i++) {
-			Job result;
-			if (ui)
-				result = new UITestJob(duration, lock, failure, unknown);
-			else
-				result = new TestJob(duration, lock, failure, unknown,
-						reschedule, rescheduleWait);
-
-			result.setProperty(IProgressConstants.KEEP_PROPERTY, Boolean
-					.valueOf(keep));
-			result.setProperty(IProgressConstants.KEEPONE_PROPERTY, Boolean
-					.valueOf(keepOne));
-			result.setProperty(
-					IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY,
-					Boolean.valueOf(noPrompt));
-			if (gotoAction)
-				result.setProperty(IProgressConstants.ACTION_PROPERTY,
-						new Action("Pop up a dialog") { //$NON-NLS-1$
-							public void run() {
-								MessageDialog
-										.openInformation(
-												getSite().getShell(),
-												"Goto Action", "The job can have an action associated with it"); //$NON-NLS-1$ //$NON-NLS-2$
-							}
-						});
-
-			result.setProgressGroup(group, groupIncrement);
-			result.setSystem(system);
-			result.setUser(user);
-
-			if (schedulingRule)
-				result.setRule(new TestJobRule(i));
-			result.schedule(delay);
-		}
-	}
-
-	/**
-	 * @see ViewPart#createPartControl(Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		Composite body = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = false;
-		body.setLayout(layout);
-
-		createEntryFieldGroup(body);
-		createPushButtonGroup(body);
-		createCheckboxGroup(body);
-	}
-
-	/**
-	 * Create all push button parts for the jobs view.
-	 * 
-	 * @param parent
-	 */
-	private void createPushButtonGroup(Composite parent) {
-		Composite group = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		group.setLayout(layout);
-		group.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// create jobs
-		Button create = new Button(group, SWT.PUSH);
-		create.setText("Create jobs"); //$NON-NLS-1$
-		create
-				.setToolTipText("Creates and schedules jobs according to above parameters"); //$NON-NLS-1$
-		create.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		create.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				createJobs();
-			}
-		});
-
-		// touch workspace
-		Button touch = new Button(group, SWT.PUSH);
-		touch.setText("Touch workspace"); //$NON-NLS-1$
-		touch.setToolTipText("Modifies the workspace in the UI thread"); //$NON-NLS-1$
-		touch.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		touch.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				touchWorkspace();
-			}
-		});
-		// busy cursor while
-		Button busyWhile = new Button(group, SWT.PUSH);
-		busyWhile.setText("busyCursorWhile"); //$NON-NLS-1$
-		busyWhile.setToolTipText("Uses IProgressService.busyCursorWhile"); //$NON-NLS-1$
-		busyWhile.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		busyWhile.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				busyCursorWhile();
-			}
-		});
-		// progress monitor dialog with fork=false
-		Button noFork = new Button(group, SWT.PUSH);
-		noFork.setText("runInUI"); //$NON-NLS-1$
-		noFork.setToolTipText("Uses IProgressService.runInUI"); //$NON-NLS-1$
-		noFork.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		noFork.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				progressNoFork();
-			}
-		});
-
-		// progress monitor dialog with fork=false
-		Button exception = new Button(group, SWT.PUSH);
-		exception.setText("Runtime Exception"); //$NON-NLS-1$
-		exception.setToolTipText("NullPointerException when running"); //$NON-NLS-1$
-		exception.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		exception.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				jobWithRuntimeException();
-			}
-		});
-
-		// join the running test jobs
-		Button join = new Button(group, SWT.PUSH);
-		join.setText("Join Test Jobs"); //$NON-NLS-1$
-		join.setToolTipText("IJobManager.join() on test jobs"); //$NON-NLS-1$
-		join.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		join.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				joinTestJobs();
-			}
-		});
-
-		// join the running test jobs
-		Button window = new Button(group, SWT.PUSH);
-		window.setText("Runnable in Window"); //$NON-NLS-1$
-		window
-				.setToolTipText("Using a runnable context in the workbench window"); //$NON-NLS-1$
-		window.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		window.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				runnableInWindow();
-			}
-		});
-
-		// join the running test jobs
-		Button sleep = new Button(group, SWT.PUSH);
-		sleep.setText("Sleep"); //$NON-NLS-1$
-		sleep.setToolTipText("Calls sleep() on all TestJobs"); //$NON-NLS-1$
-		sleep.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		sleep.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				doSleep();
-			}
-		});
-
-		// join the running test jobs
-		Button wake = new Button(group, SWT.PUSH);
-		wake.setText("WakeUp"); //$NON-NLS-1$
-		wake.setToolTipText("Calls wakeUp() on all TestJobs"); //$NON-NLS-1$
-		wake.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		wake.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				doWakeUp();
-			}
-		});
-
-		// show in dialog
-		Button showInDialog = new Button(group, SWT.PUSH);
-		showInDialog.setText("showInDialog"); //$NON-NLS-1$
-		showInDialog.setToolTipText("Uses IProgressService.showInDialog"); //$NON-NLS-1$
-		showInDialog.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		showInDialog.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				showInDialog();
-			}
-		});
-
-	}
-
-	/**
-	 * Test the showInDialog API
-	 * 
-	 */
-	protected void showInDialog() {
-
-		Job showJob = new Job("Show In Dialog") {//$NON-NLS-1$
-			protected IStatus run(IProgressMonitor monitor) {
-				monitor.beginTask("Run in dialog", 100);//$NON-NLS-1$
-
-				for (int i = 0; i < 100; i++) {
-					if (monitor.isCanceled())
-						return Status.CANCEL_STATUS;
-					try {
-						Thread.sleep(100);
-					} catch (InterruptedException e) {
-						return Status.CANCEL_STATUS;
-					}
-					monitor.worked(1);
-
-				}
-				return Status.OK_STATUS;
-
-			}
-		};
-		showJob.schedule();
-		PlatformUI.getWorkbench().getProgressService().showInDialog(
-				getSite().getShell(), showJob);
-
-	}
-
-	/**
-	 * Wakes up all sleeping test jobs.
-	 */
-	protected void doWakeUp() {
-		Platform.getJobManager().wakeUp(TestJob.FAMILY_TEST_JOB);
-	}
-
-	/**
-	 * Puts to sleep all waiting test jobs.
-	 */
-	protected void doSleep() {
-		Platform.getJobManager().sleep(TestJob.FAMILY_TEST_JOB);
-	}
-
-	/**
-	 * @param body
-	 */
-	private void createEntryFieldGroup(Composite body) {
-		// duration
-		Label label = new Label(body, SWT.NONE);
-		label.setText("Duration:"); //$NON-NLS-1$
-		durationField = new Combo(body, SWT.DROP_DOWN | SWT.READ_ONLY);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		durationField.setLayoutData(data);
-		durationField.add("0"); //$NON-NLS-1$
-		durationField.add("1 millisecond"); //$NON-NLS-1$
-		durationField.add("1 second"); //$NON-NLS-1$
-		durationField.add("10 seconds"); //$NON-NLS-1$
-		durationField.add("1 minute"); //$NON-NLS-1$
-		durationField.add("10 minutes"); //$NON-NLS-1$
-		durationField.select(4);
-
-		// delay
-		label = new Label(body, SWT.NONE);
-		label.setText("Start delay (ms):"); //$NON-NLS-1$
-		delayField = new Text(body, SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		delayField.setLayoutData(data);
-		delayField.setText("0"); //$NON-NLS-1$
-
-		// quantity
-		label = new Label(body, SWT.NONE);
-		label.setText("Quantity:"); //$NON-NLS-1$
-		quantityField = new Text(body, SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		quantityField.setLayoutData(data);
-		quantityField.setText("1"); //$NON-NLS-1$
-
-		// reschedule delay
-		label = new Label(body, SWT.NONE);
-		label.setText("Reschedule Delay (ms):"); //$NON-NLS-1$
-		rescheduleDelay = new Text(body, SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		rescheduleDelay.setLayoutData(data);
-		rescheduleDelay.setText("1000"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Creates all of the checkbox buttons.
-	 */
-	private void createCheckboxGroup(Composite parent) {
-		Composite group = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		group.setLayout(layout);
-		group.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// lock
-		lockField = new Button(group, SWT.CHECK);
-		lockField.setText("Lock the workspace"); //$NON-NLS-1$
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		lockField.setLayoutData(data);
-
-		// system
-		systemField = new Button(group, SWT.CHECK);
-		systemField.setText("System job"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		systemField.setLayoutData(data);
-
-		// thread
-		threadField = new Button(group, SWT.CHECK);
-		threadField.setText("Run in UI thread"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		threadField.setLayoutData(data);
-
-		// groups
-		groupField = new Button(group, SWT.CHECK);
-		groupField.setText("Run in Group"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		groupField.setLayoutData(data);
-
-		// reschedule
-		rescheduleField = new Button(group, SWT.CHECK);
-		rescheduleField.setText("Reschedule"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		rescheduleField.setLayoutData(data);
-
-		// keep
-		keepField = new Button(group, SWT.CHECK);
-		keepField.setText("Keep"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		keepField.setLayoutData(data);
-
-		// keep one
-		keepOneField = new Button(group, SWT.CHECK);
-		keepOneField.setText("KeepOne"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		keepOneField.setLayoutData(data);
-
-		// IProgressMonitor.UNKNOWN
-		unknownField = new Button(group, SWT.CHECK);
-		unknownField.setText("Indeterminate Progress"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		unknownField.setLayoutData(data);
-
-		// whether the job is a user job
-		userField = new Button(group, SWT.CHECK);
-		userField.setText("User job"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		userField.setLayoutData(data);
-
-		// whether the job has a goto action
-		gotoActionField = new Button(group, SWT.CHECK);
-		gotoActionField.setText("Goto action"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		gotoActionField.setLayoutData(data);
-
-		// whether the job should use a scheduling rule
-		schedulingRuleField = new Button(group, SWT.CHECK);
-		schedulingRuleField.setText("Schedule sequentially"); //$NON-NLS-1$
-		schedulingRuleField
-				.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// failure
-		failureField = new Button(group, SWT.CHECK);
-		failureField.setText("Fail"); //$NON-NLS-1$
-		failureField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// failure
-		noPromptField = new Button(group, SWT.CHECK);
-		noPromptField.setText("No Prompt"); //$NON-NLS-1$
-		noPromptField
-				.setToolTipText("Set the IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY to true");
-		noPromptField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-	}
-
-	protected void doRun(long duration, IProgressMonitor monitor) {
-		final long sleep = 10;
-		int ticks = (int) (duration / sleep);
-		monitor.beginTask(
-				"Spinning inside IProgressService.busyCursorWhile", ticks); //$NON-NLS-1$
-		monitor.setTaskName("Spinning inside IProgressService.busyCursorWhile"); //$NON-NLS-1$
-		for (int i = 0; i < ticks; i++) {
-			monitor.subTask("Processing tick #" + i); //$NON-NLS-1$
-			if (monitor.isCanceled())
-				return;
-			try {
-				Thread.sleep(sleep);
-			} catch (InterruptedException e) {
-				// ignore
-			}
-			monitor.worked(1);
-		}
-	}
-
-	protected void doRunInWorkspace(final long duration,
-			IProgressMonitor monitor) {
-		try {
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					doRun(duration, monitor);
-				}
-			}, monitor);
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected long getDuration() {
-		switch (durationField.getSelectionIndex()) {
-		case 0:
-			return 0;
-		case 1:
-			return 1;
-		case 2:
-			return 1000;
-		case 3:
-			return 10000;
-		case 4:
-			return 60000;
-		case 5:
-		default:
-			return 600000;
-		}
-	}
-
-	protected void jobWithRuntimeException() {
-		Job runtimeExceptionJob = new Job("Job with Runtime exception") { //$NON-NLS-1$
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-			 */
-			protected IStatus run(IProgressMonitor monitor) {
-				throw new NullPointerException();
-			}
-		};
-		runtimeExceptionJob.schedule();
-	}
-
-	/**
-	 * Example usage of the IJobManager.join method.
-	 */
-	protected void joinTestJobs() {
-		try {
-			// note that when a null progress monitor is used when in the UI
-			// thread, the workbench will create a default progress monitor
-			// that reports progress in a modal dialog with details area
-			PlatformUI.getWorkbench().getProgressService().busyCursorWhile(
-					new IRunnableWithProgress() {
-						public void run(IProgressMonitor monitor)
-								throws InterruptedException {
-							Job.getJobManager().join(TestJob.FAMILY_TEST_JOB,
-									monitor);
-						}
-					});
-		} catch (InterruptedException e) {
-			// thrown if the user interrupts the join by canceling the progress
-			// monitor
-			// A UI component should swallow the exception and finish the action
-			// or operation. A lower level component should just propagate the
-			// exception
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			// Thrown when the operation running within busyCursorWhile throws
-			// an
-			// exception. This should either be propagated or displayed to the
-			// user
-			e.printStackTrace();
-		}
-	}
-
-	protected void progressNoFork() {
-		try {
-			final long duration = getDuration();
-			final boolean shouldLock = lockField.getSelection();
-			IProgressService progressService = PlatformUI.getWorkbench()
-					.getProgressService();
-			progressService.runInUI(progressService,
-					new IRunnableWithProgress() {
-						public void run(IProgressMonitor monitor)
-								throws InterruptedException {
-							if (shouldLock)
-								doRunInWorkspace(duration, monitor);
-							else
-								doRun(duration, monitor);
-						}
-					}, ResourcesPlugin.getWorkspace().getRoot());
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * @see ViewPart#setFocus()
-	 */
-	public void setFocus() {
-		if (durationField != null && !durationField.isDisposed())
-			durationField.setFocus();
-	}
-
-	protected void touchWorkspace() {
-		// create an asyncExec to touch the workspace the specific number of
-		// times
-		int jobCount = Integer.parseInt(quantityField.getText());
-		for (int i = 0; i < jobCount; i++) {
-			getSite().getShell().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					try {
-						ResourcesPlugin.getWorkspace().run(
-								new IWorkspaceRunnable() {
-									public void run(IProgressMonitor monitor) {
-										// no-op
-									}
-								}, null);
-					} catch (OperationCanceledException e) {
-						// ignore
-					} catch (CoreException e) {
-						e.printStackTrace();
-					}
-				}
-			});
-		}
-	}
-
-	/**
-	 * Run a workspace runnable in the application window.
-	 * 
-	 */
-
-	public void runnableInWindow() {
-
-		final long time = getDuration();
-		final long sleep = 10;
-		IRunnableWithProgress runnableTest = new WorkspaceModifyOperation() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
-			 */
-			protected void execute(IProgressMonitor monitor)
-					throws CoreException, InvocationTargetException,
-					InterruptedException {
-				int ticks = (int) (time / sleep);
-				monitor.beginTask(
-						"Spinning inside ApplicationWindow.run()", ticks); //$NON-NLS-1$
-				monitor.setTaskName("Spinning inside ApplicationWindow.run()"); //$NON-NLS-1$
-				for (int i = 0; i < ticks; i++) {
-					monitor.subTask("Processing tick #" + i); //$NON-NLS-1$
-					if (monitor.isCanceled())
-						return;
-					try {
-						Thread.sleep(sleep);
-					} catch (InterruptedException e) {
-						// ignore
-					}
-					monitor.worked(1);
-				}
-			}
-
-		};
-		try {
-			PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(true,
-					true, runnableTest);
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/LazyTreeView.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/LazyTreeView.java
deleted file mode 100644
index 43f74b8..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/LazyTreeView.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.eclipse.ui.examples.jobs.views;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.ViewPart;
-/**
- * This sample class demonstrates how to plug-in a new workbench view. The view
- * shows data obtained from the model. The sample creates a dummy model on the
- * fly, but a real implementation would connect to the model available either
- * in this or another plug-in (e.g. the workspace). The view is connected to
- * the model using a content provider.
- * <p>
- * The view uses a label provider to define how model objects should be
- * presented in the view. Each view can present the same model objects using
- * different labels and icons, if needed. Alternatively, a single label
- * provider can be shared between views in order to ensure that objects of the
- * same type are presented in the same way everywhere.
- * <p>
- */
-public class LazyTreeView extends ViewPart {
-	protected TreeViewer viewer;
-	protected Button serializeButton, batchButton;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite top) {
-		Composite parent = new Composite(top, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		parent.setLayout(layout);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.grabExcessHorizontalSpace = true;
-		data.grabExcessVerticalSpace = true;
-		parent.setLayoutData(data);
-//		parent.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
-		serializeButton = new Button(parent, SWT.CHECK | SWT.FLAT);
-		serializeButton.setText("Serialize fetch jobs"); //$NON-NLS-1$
-//		serializeButton.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
-		serializeButton.setSelection(SlowElementAdapter.isSerializeFetching());
-		serializeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				SlowElementAdapter.setSerializeFetching(serializeButton.getSelection());
-			}
-		});
-		serializeButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		batchButton = new Button(parent, SWT.CHECK | SWT.FLAT);
-		batchButton.setText("Batch returned children"); //$NON-NLS-1$
-//		batchButton.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
-		serializeButton.setSelection(SlowElementAdapter.isBatchFetchedChildren());
-		batchButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				SlowElementAdapter.setBatchFetchedChildren(batchButton.getSelection());
-			}
-		});
-		batchButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		viewer.setContentProvider(new DeferredContentProvider());
-		viewer.setLabelProvider(new WorkbenchLabelProvider());
-		viewer.setInput(new SlowElement("root")); //$NON-NLS-1$
-		viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/ProgressExampleAdapterFactory.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/ProgressExampleAdapterFactory.java
deleted file mode 100644
index 4ee8a54..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/ProgressExampleAdapterFactory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.jobs.views;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-
-public class ProgressExampleAdapterFactory implements IAdapterFactory {
-	private SlowElementAdapter slowElementAdapter = new SlowElementAdapter();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
-	 */
-	public Object getAdapter(Object object, Class type) {
-		if(object instanceof SlowElement) {
-			if(type == SlowElement.class || type == IDeferredWorkbenchAdapter.class || type == IWorkbenchAdapter.class)
-				return slowElementAdapter;
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	public Class[] getAdapterList() {
-		return new Class[] {
-				SlowElement.class, IDeferredWorkbenchAdapter.class, IWorkbenchAdapter.class
-				};
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElement.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElement.java
deleted file mode 100644
index e2f2d3a..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElement.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.jobs.views;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.PlatformObject;
-
-public class SlowElement extends PlatformObject {
-	private String name;
-	private SlowElement parent;
-
-	SlowElement(String name) {
-		this(null, name, null);	
-	}
-	
-	SlowElement(String name, SlowElement[] children) {
-		this(null, name, children);	
-	}
-	
-	SlowElement(SlowElement parent, String name, SlowElement[] children) {
-		this.name = name;
-		this.parent = parent;
-	}
-	
-	public String getName() {
-		return name;
-	}
-	
-	public SlowElement getParent() {
-		return parent;
-	}
-	
-	public SlowElement[] getChildren() {
-		Random r = new Random();
-		int random = r.nextInt(15);
-		List children = new ArrayList();
-		for(int i = 0; i < random; i++) {
-			children.add(new SlowElement("child" + i)); //$NON-NLS-1$
-		}
-		return (SlowElement[]) children.toArray(new SlowElement[children.size()]);
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElementAdapter.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElementAdapter.java
deleted file mode 100644
index 9b589cb..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElementAdapter.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.jobs.views;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-import org.eclipse.ui.progress.IElementCollector;
-
-public class SlowElementAdapter implements IDeferredWorkbenchAdapter {
-
-	private static boolean serializeFetching = false;
-	private static boolean batchFetchedChildren = false;
-
-	final ISchedulingRule mutexRule = new ISchedulingRule() {
-		public boolean isConflicting(ISchedulingRule rule) {
-			return rule == mutexRule;
-		}
-		public boolean contains(ISchedulingRule rule) {
-			return rule == mutexRule;
-		}
-	};
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#fetchDeferredChildren(java.lang.Object,
-	 *           org.eclipse.jface.progress.IElementCollector,
-	 *           org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void fetchDeferredChildren(Object object, IElementCollector collector, IProgressMonitor monitor) {
-		if (object instanceof SlowElement) {
-			Object[] children = ((SlowElement) object).getChildren();
-			if (isBatchFetchedChildren()) {
-				sleep(4000);
-				collector.add(children, monitor);
-			} else {
-				for (int i = 0; i < children.length; i++) {
-					if (monitor.isCanceled()) {
-						return;
-					}
-					collector.add(children[i], monitor);
-					sleep(4000);
-				}
-			}
-		}
-	}
-
-	private void sleep(long mills) {
-		try {
-			Thread.sleep(1000);
-		} catch (InterruptedException e) {
-			//ignore
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#isContainer()
-	 */
-	public boolean isContainer() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#getRule(java.lang.Object)
-	 */
-	public ISchedulingRule getRule(final Object object) {
-		if (isSerializeFetching())
-			return mutexRule;
-		// Allow several SlowElement parents to fetch children concurrently
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object object) {
-		if (object instanceof SlowElement) {
-			return ((SlowElement) object).getChildren();
-		}
-		return new Object[0];
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-	 */
-	public ImageDescriptor getImageDescriptor(Object object) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
-	 */
-	public String getLabel(Object o) {
-		if (o instanceof SlowElement) {
-			return ((SlowElement) o).getName();
-		}
-		return "unknown"; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object o) {
-		if (o instanceof SlowElement) {
-			return ((SlowElement) o).getParent();
-		}
-		return null;
-	}
-
-	/**
-	 * @return Returns the batchFetchedChildren.
-	 */
-	public static boolean isBatchFetchedChildren() {
-		return batchFetchedChildren;
-	}
-
-	/**
-	 * @param batchFetchedChildren
-	 *                   The batchFetchedChildren to set.
-	 */
-	public static void setBatchFetchedChildren(boolean batchFetchedChildren) {
-		SlowElementAdapter.batchFetchedChildren = batchFetchedChildren;
-	}
-
-	/**
-	 * @return Returns the serializeFetching.
-	 */
-	public static boolean isSerializeFetching() {
-		return serializeFetching;
-	}
-
-	/**
-	 * @param serializeFetching
-	 *                   The serializeFetching to set.
-	 */
-	public static void setSerializeFetching(boolean serializeFetching) {
-		SlowElementAdapter.serializeFetching = serializeFetching;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.classpath b/examples/org.eclipse.ui.examples.multipageeditor/.classpath
deleted file mode 100644
index d6156ef..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples MultiPageEditor"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.cvsignore b/examples/org.eclipse.ui.examples.multipageeditor/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.project b/examples/org.eclipse.ui.examples.multipageeditor/.project
deleted file mode 100644
index 741355f..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.multipageeditor</name>
-	<comment></comment>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9fa9102..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,78 +0,0 @@
-#Mon Jan 15 21:15:54 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 14ac2d9..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Feb 06 11:16:57 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index ceb6314..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Jan 10 16:53:58 EST 2006
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MessageUtil.java b/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MessageUtil.java
deleted file mode 100644
index bff85f7..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MessageUtil.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.multipageeditor;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps with managing messages.
- */
-/* package */class MessageUtil {
-
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.examples.multipageeditor.messages";//$NON-NLS-1$
-
-    private static ResourceBundle fgResourceBundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    private MessageUtil() {
-        // prevent instantiation of class
-    }
-
-    /**
-     * Returns the formatted message for the given key in
-     * the resource bundle. 
-     *
-     * @param key the resource name
-     * @param args the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in
-     * the resource bundle. If there isn't any value under
-     * the given key, the key is returned, surrounded by '!'s.
-     *
-     * @param key the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return fgResourceBundle.getString(key);
-        } catch (MissingResourceException e) {
-            return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageContributor.java b/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageContributor.java
deleted file mode 100644
index 1da18a2..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageContributor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.multipageeditor;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-/**
- * Manages the installation/deinstallation of global actions for multi-page editors.
- * Responsible for the redirection of global actions to the active editor.
- * Multi-page contributor replaces the contributors for the individual editors in the multi-page editor.
- */
-public class MultiPageContributor extends MultiPageEditorActionBarContributor {
-    private IEditorPart activeEditorPart;
-
-    /**
-     * Creates a multi-page contributor.
-     */
-    public MultiPageContributor() {
-        super();
-    }
-
-    /**
-     * Returns the action registed with the given text editor.
-     * @return IAction or null if editor is null.
-     */
-    protected IAction getAction(ITextEditor editor, String actionID) {
-        return (editor == null ? null : editor.getAction(actionID));
-    }
-
-    /* (non-JavaDoc)
-     * Method declared in MultiPageEditorActionBarContributor.
-     */
-    public void setActivePage(IEditorPart part) {
-        if (activeEditorPart == part)
-            return;
-
-        activeEditorPart = part;
-
-        IActionBars actionBars = getActionBars();
-        if (actionBars != null) {
-
-            ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part
-                    : null;
-
-            actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(),
-                    getAction(editor, ActionFactory.DELETE.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
-                    getAction(editor, ActionFactory.UNDO.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
-                    getAction(editor, ActionFactory.REDO.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(),
-                    getAction(editor, ActionFactory.CUT.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(),
-                    getAction(editor, ActionFactory.COPY.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(),
-                    getAction(editor, ActionFactory.PASTE.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
-                    getAction(editor, ActionFactory.SELECT_ALL.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(),
-                    getAction(editor, ActionFactory.FIND.getId()));
-            actionBars.setGlobalActionHandler(
-                    IDEActionFactory.BOOKMARK.getId(), getAction(editor,
-                            IDEActionFactory.BOOKMARK.getId()));
-            actionBars.setGlobalActionHandler(
-                    IDEActionFactory.ADD_TASK.getId(), getAction(editor,
-                            IDEActionFactory.ADD_TASK.getId()));
-            actionBars.updateActionBars();
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageEditorExample.java b/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageEditorExample.java
deleted file mode 100644
index ad83804..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageEditorExample.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.multipageeditor;
-
-import java.io.StringWriter;
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FontDialog;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.IGotoMarker;
-import org.eclipse.ui.part.MultiPageEditorPart;
-
-/**
- * An example showing how to create a multi-page editor.
- * This example has 3 pages:
- * <ul>
- * <li>page 0 contains a nested text editor.
- * <li>page 1 allows you to change the font used in page 2
- * <li>page 2 shows the words in page 0 in sorted order
- * </ul>
- */
-public class MultiPageEditorExample extends MultiPageEditorPart implements
-        IGotoMarker {
-
-    /** The text editor used in page 0. */
-    private TextEditor editor;
-
-    /** The index of the page containing the text editor */
-    private int editorIndex = 0;
-
-    /** The font chosen in page 1. */
-    private Font font;
-
-    /** The text widget used in page 2. */
-    private StyledText text;
-
-    /**
-     * Creates a multi-page editor example.
-     */
-    public MultiPageEditorExample() {
-        super();
-    }
-
-    /**
-     * Creates page 0 of the multi-page editor,
-     * which contains a text editor.
-     */
-    void createPage0() {
-        try {
-            editor = new TextEditor();
-            editorIndex = addPage(editor, getEditorInput());
-            setPageText(editorIndex, MessageUtil.getString("Source")); //$NON-NLS-1$
-        } catch (PartInitException e) {
-            ErrorDialog
-                    .openError(
-                            getSite().getShell(),
-                            MessageUtil.getString("ErrorCreatingNestedEditor"), null, e.getStatus()); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Creates page 1 of the multi-page editor,
-     * which allows you to change the font used in page 2.
-     */
-    void createPage1() {
-
-        Composite composite = new Composite(getContainer(), SWT.NONE);
-        GridLayout layout = new GridLayout();
-        composite.setLayout(layout);
-        layout.numColumns = 2;
-
-        Button fontButton = new Button(composite, SWT.NONE);
-        GridData gd = new GridData(GridData.BEGINNING);
-        gd.horizontalSpan = 2;
-        fontButton.setLayoutData(gd);
-        fontButton.setText(MessageUtil.getString("ChangeFont")); //$NON-NLS-1$
-
-        fontButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                setFont();
-            }
-        });
-
-        int index = addPage(composite);
-        setPageText(index, MessageUtil.getString("Properties")); //$NON-NLS-1$
-    }
-
-    /**
-     * Creates page 2 of the multi-page editor,
-     * which shows the sorted text.
-     */
-    void createPage2() {
-        Composite composite = new Composite(getContainer(), SWT.NONE);
-        FillLayout layout = new FillLayout();
-        composite.setLayout(layout);
-        text = new StyledText(composite, SWT.H_SCROLL | SWT.V_SCROLL);
-        text.setEditable(false);
-
-        int index = addPage(composite);
-        setPageText(index, MessageUtil.getString("Preview")); //$NON-NLS-1$
-    }
-
-    /**
-     * Creates the pages of the multi-page editor.
-     */
-    protected void createPages() {
-        createPage0();
-        createPage1();
-        createPage2();
-    }
-
-    /**
-     * Saves the multi-page editor's document.
-     */
-    public void doSave(IProgressMonitor monitor) {
-        getEditor(0).doSave(monitor);
-    }
-
-    /**
-     * Saves the multi-page editor's document as another file.
-     * Also updates the text for page 0's tab, and updates this multi-page editor's input
-     * to correspond to the nested editor's.
-     */
-    public void doSaveAs() {
-        IEditorPart editor = getEditor(0);
-        editor.doSaveAs();
-        setPageText(0, editor.getTitle());
-        setInput(editor.getEditorInput());
-    }
-
-    /**
-     * The <code>MultiPageEditorExample</code> implementation of this method
-     * checks that the input is an instance of <code>IFileEditorInput</code>.
-     */
-    public void init(IEditorSite site, IEditorInput editorInput)
-            throws PartInitException {
-        if (!(editorInput instanceof IFileEditorInput))
-            throw new PartInitException(MessageUtil.getString("InvalidInput")); //$NON-NLS-1$
-        super.init(site, editorInput);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IEditorPart.
-     */
-    public boolean isSaveAsAllowed() {
-        return true;
-    }
-
-    /**
-     * Calculates the contents of page 2 when the it is activated.
-     */
-    protected void pageChange(int newPageIndex) {
-        super.pageChange(newPageIndex);
-        if (newPageIndex == 2) {
-            sortWords();
-        }
-    }
-
-    /**
-     * Sets the font related data to be applied to the text in page 2.
-     */
-    void setFont() {
-        FontDialog fontDialog = new FontDialog(getSite().getShell());
-        fontDialog.setFontList(text.getFont().getFontData());
-        FontData fontData = fontDialog.open();
-        if (fontData != null) {
-            if (font != null)
-                font.dispose();
-            font = new Font(text.getDisplay(), fontData);
-            text.setFont(font);
-        }
-    }
-
-    /**
-     * Sorts the words in page 0, and shows them in page 2.
-     */
-    void sortWords() {
-
-        String editorText = editor.getDocumentProvider().getDocument(
-                editor.getEditorInput()).get();
-
-        StringTokenizer tokenizer = new StringTokenizer(editorText,
-                " \t\n\r\f!@#$%^&*()-_=+`~[]{};:'\",.<>/?|\\"); //$NON-NLS-1$
-        ArrayList editorWords = new ArrayList();
-        while (tokenizer.hasMoreTokens()) {
-            editorWords.add(tokenizer.nextToken());
-        }
-
-        Collections.sort(editorWords, Collator.getInstance());
-        StringWriter displayText = new StringWriter();
-        for (int i = 0; i < editorWords.size(); i++) {
-            displayText.write(((String) editorWords.get(i)));
-            displayText.write("\n"); //$NON-NLS-1$
-        }
-        text.setText(displayText.toString());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ide.IGotoMarker
-     */
-    public void gotoMarker(IMarker marker) {
-        setActivePage(editorIndex);
-        IDE.gotoMarker(editor, marker);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/messages.properties b/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/messages.properties
deleted file mode 100644
index 2e5a083..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/messages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-ErrorCreatingNestedEditor=Error creating nested text editor
-ChangeFont=Change Font...
-InvalidInput=Invalid Input: Must be IFileEditorInput
-Preview=Preview
-Properties=Properties
-Source=Source
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.multipageeditor/META-INF/MANIFEST.MF
deleted file mode 100644
index 12aa946..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.multipageeditor; singleton:=true
-Bundle-Version: 3.2.100.qualifier
-Bundle-ClassPath: multipageeditor.jar
-Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.examples.multipageeditor
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.resources,
- org.eclipse.core.runtime.compatibility,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.text
-Eclipse-LazyStart: true
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/about.html b/examples/org.eclipse.ui.examples.multipageeditor/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/build.properties b/examples/org.eclipse.ui.examples.multipageeditor/build.properties
deleted file mode 100644
index 9e02f46..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.multipageeditor.jar = Eclipse UI Examples MultiPageEditor/
-
-bin.includes = doc-html/,\
-               icons/,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               META-INF/
-
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/doc-html/hglegal.htm b/examples/org.eclipse.ui.examples.multipageeditor/doc-html/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/doc-html/hglegal.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html b/examples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html
deleted file mode 100644
index 7dad38e..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Desktop - Multi-page Editor Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Multi-page Editor</b></h2>
-
-<h3>
-Introduction</h3>
-The&nbsp; Multi Page Editor Example adds an editor for files with the .mpe
-extension. It shows how to create an editor that uses multiple pages by
-defining both an editor and a page contributor that can add entries to
-an action bar.
-<h3>
-Running the example</h3>
-To start using the Multi-page Editor Example, create a new file with .mpe
-extension.&nbsp; Select the file, bring up the popup menu, select the Open
-With menu and from the sub-menu select the Multi Page Editor Example menu
-item. You can then select the different editors by selecting the different
-tabs.
-<h4>
-<b>Creating a new mpe file</b></h4>
-Create a new file with file extension .mpe.&nbsp; From the File menu, select
-New and then select Other... from the sub-menu.&nbsp; Click on Simple in
-the wizard, then select
-<br>File in the list on the left.&nbsp; Click on Next to supply the file
-name (make sure the extension is .mpe) and the folder in which the file
-should be contained.
-<br>&nbsp;
-<h3>
-Details</h3>
-The&nbsp; Multi Page Editor Example demonstrates how to create an multi
-page editor with a custom page contributor.
-<p>The Multi Page Editor Example is constructed with two extensions - a
-document contributor (MultiPageContributor) and an editor (MultiPageEditor).
-The document contributor is a subclass of <tt>org.eclipse.ui.part.MultiPageEditorActionBarContributor</tt>
-and defines the actions that are added to an editor when the <tt>setActivePage</tt>
-method is called. The editor is an <tt>org.eclipse.ui.part.MultiPageEditorPart</tt>
-that creates 3 pages whose activation is handled by the <tt>pageChange</tt>
-method that in turn sends <tt>setActivePage</tt>
-to the contributor. These two classes do not refer to each other directly
-- the contributor for the editor is set using the contributorClass tag
-in the plugin.xml
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/icons/copy.gif b/examples/org.eclipse.ui.examples.multipageeditor/icons/copy.gif
deleted file mode 100644
index f962255..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/icons/copy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/plugin.properties b/examples/org.eclipse.ui.examples.multipageeditor/plugin.properties
deleted file mode 100644
index 19e2475..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Multi-Page Editor Example
-Plugin.providerName = Eclipse.org
-Editors.MultiPageEditorExample = Multi-Page Editor Example
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/plugin.xml b/examples/org.eclipse.ui.examples.multipageeditor/plugin.xml
deleted file mode 100644
index 377e097..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%Editors.MultiPageEditorExample"
-            icon="icons/copy.gif"
-            extensions="mpe"
-            contributorClass="org.eclipse.ui.examples.multipageeditor.MultiPageContributor"
-            class="org.eclipse.ui.examples.multipageeditor.MultiPageEditorExample"
-            id="org.eclipse.ui.examples.multipageeditor.MultiPageEditorExample">
-      </editor>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.navigator/.classpath b/examples/org.eclipse.ui.examples.navigator/.classpath
deleted file mode 100644
index 7398f97..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry path="src" kind="src"/>
-	<classpathentry path="org.eclipse.jdt.launching.JRE_CONTAINER" kind="con"/>
-	<classpathentry path="org.eclipse.pde.core.requiredPlugins" kind="con"/>
-	<classpathentry path="bin" kind="output"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.navigator/.project b/examples/org.eclipse.ui.examples.navigator/.project
deleted file mode 100644
index cbc0eeb..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.navigator</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index da48a0d..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Thu Oct 20 14:37:10 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.4
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d2f2d8a..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Thu Oct 20 14:37:10 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 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 f75010d..0000000
--- a/examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Navigator_Examples
-Bundle-SymbolicName: org.eclipse.ui.examples.navigator;singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.navigator,
- org.eclipse.ui.views,
- org.eclipse.ui,
- org.eclipse.ui.ide,
- org.eclipse.ui.workbench,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.jface.text
-Bundle-Activator: org.eclipse.ui.internal.examples.navigator.Activator
diff --git a/examples/org.eclipse.ui.examples.navigator/about.html b/examples/org.eclipse.ui.examples.navigator/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.navigator/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.navigator/build.properties b/examples/org.eclipse.ui.examples.navigator/build.properties
deleted file mode 100644
index edb0f5e..0000000
--- a/examples/org.eclipse.ui.examples.navigator/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties
-src.includes = about.html
-jars.compile.order = .
-source.. = src/
-output.. = bin/
diff --git a/examples/org.eclipse.ui.examples.navigator/icons/delete_obj.gif b/examples/org.eclipse.ui.examples.navigator/icons/delete_obj.gif
deleted file mode 100644
index b6922ac..0000000
--- a/examples/org.eclipse.ui.examples.navigator/icons/delete_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.navigator/icons/filenav_nav.gif b/examples/org.eclipse.ui.examples.navigator/icons/filenav_nav.gif
deleted file mode 100644
index 4b98a62..0000000
--- a/examples/org.eclipse.ui.examples.navigator/icons/filenav_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.navigator/icons/prop_ps.gif b/examples/org.eclipse.ui.examples.navigator/icons/prop_ps.gif
deleted file mode 100644
index d11c996..0000000
--- a/examples/org.eclipse.ui.examples.navigator/icons/prop_ps.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.navigator/plugin.properties b/examples/org.eclipse.ui.examples.navigator/plugin.properties
deleted file mode 100644
index c9cee89..0000000
--- a/examples/org.eclipse.ui.examples.navigator/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-Navigator_Examples=Common Navigator Examples
-Common_Navigator_Example=Common Navigator Example 
diff --git a/examples/org.eclipse.ui.examples.navigator/plugin.xml b/examples/org.eclipse.ui.examples.navigator/plugin.xml
deleted file mode 100644
index 37b290e..0000000
--- a/examples/org.eclipse.ui.examples.navigator/plugin.xml
+++ /dev/null
@@ -1,174 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <!-- Phase 1 -->
-   <!-- Declare the view part to hold the default implementation --> 
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            id="org.eclipse.ui.examples.navigator.category"
-            name="Common Navigator Examples"/>
-      <view
-            allowMultiple="false"
-            class="org.eclipse.ui.navigator.CommonNavigator"
-            icon="icons/filenav_nav.gif"
-            id="org.eclipse.ui.examples.navigator.view"
-            name="Example View"/>
-   </extension>
-   
-   <!-- Declare the viewer configuration, and the default content/action bindings -->
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-      <viewer viewerId="org.eclipse.ui.examples.navigator.view">
-         <popupMenu
-                allowsPlatformContributions="true"
-                id="org.eclipse.ui.examples.navigator.view#PopupMenu">  
-             <insertionPoint name="group.new"/>
-             <insertionPoint
-                   name="group.open"
-                   separator="true"/>
-             <insertionPoint name="group.openWith"/>   
-             <insertionPoint name="group.edit"
-                   separator="true"/>   
-             <insertionPoint name="group.reorganize" />         
-             <insertionPoint
-                   name="group.port"
-                   separator="true"/>     
-             <insertionPoint
-                   name="group.build"
-                   separator="true"/> 
-             <insertionPoint
-                   name="group.generate"
-                   separator="true"/> 
-             <insertionPoint
-                   name="group.search"
-                   separator="true"/>              
-             <insertionPoint
-                   name="additions"
-                   separator="true"/>              
-             <insertionPoint
-                   name="group.properties"
-                   separator="true"/>             
-          </popupMenu>
-      </viewer>
-      <viewerContentBinding viewerId="org.eclipse.ui.examples.navigator.view">
-         <includes>
-            <contentExtension pattern="org.eclipse.ui.navigator.resourceContent"/>
-            <contentExtension pattern="org.eclipse.ui.navigator.resources.filters.*"/> 
-            <contentExtension pattern="org.eclipse.ui.examples.navigator.filters.*"/> 
-         </includes>
-      </viewerContentBinding>
-      <viewerActionBinding viewerId="org.eclipse.ui.examples.navigator.view">
-         <includes>
-            <actionExtension pattern="org.eclipse.ui.navigator.resources.*"/>
-         </includes>
-      </viewerActionBinding>
-   </extension>
-   
-   <!-- Declare a simple filter example that uses core expressions -->
-   <extension
-         point="org.eclipse.ui.navigator.navigatorContent">
-      <commonFilter
-            id="org.eclipse.ui.examples.navigator.filters.hideNonJavaProjects"
-            name="Hide non-Java Projects">
-         <filterExpression>
-            <not>
-               <adapt type="org.eclipse.core.resources.IProject">
-                  <test
-                        property="org.eclipse.core.resources.projectNature"
-                        value="org.eclipse.jdt.core.javanature"/>
-               </adapt>
-            </not>
-         </filterExpression>
-      </commonFilter>
-   </extension>
-  
-  <!-- Phase 2 -->
-  <!-- Declare a content extension that renders the contents of a properties file -->
-  <extension
-         point="org.eclipse.ui.navigator.navigatorContent">
-         
-      <navigatorContent 
-            id="org.eclipse.ui.examples.navigator.propertiesContent" 
-            name="Properties File Contents"
-            contentProvider="org.eclipse.ui.examples.navigator.PropertiesContentProvider"
-            labelProvider="org.eclipse.ui.examples.navigator.PropertiesLabelProvider" 
-            activeByDefault="true"
-            icon="icons/prop_ps.gif"
-            priority="normal" >
-         <triggerPoints>
-         	<or>
-	            <and>
-	               <instanceof value="org.eclipse.core.resources.IResource"/>
-	               <test
-	                     forcePluginActivation="true"
-	                     property="org.eclipse.core.resources.extension"
-	                     value="properties"/>
-	            </and>
-				<instanceof value="org.eclipse.ui.examples.navigator.PropertiesTreeData"/>
-			</or>
-         </triggerPoints>
-         <possibleChildren>
-            <or>
-               <instanceof value="org.eclipse.ui.examples.navigator.PropertiesTreeData"/> 
-            </or>
-         </possibleChildren>
-         <actionProvider
-               class="org.eclipse.ui.examples.navigator.actions.PropertyActionProvider"
-               id="org.eclipse.ui.examples.navigator.properties.actions.OpenProvider"/>
-      </navigatorContent>
-   </extension>
-   
-   <!-- Bind the Properties content extension to the viewer -->
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-      <viewerContentBinding viewerId="org.eclipse.ui.examples.navigator.view">
-         <includes>
-            <contentExtension pattern="org.eclipse.ui.examples.navigator.propertiesContent"/>
-         </includes>
-      </viewerContentBinding>
-   </extension>
-   
-   <!-- Contribute an Object Contribution to delete individual properties in the view -->
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            adaptable="false"
-            id="org.eclipse.ui.examples.navigator.actions.propertiesResource"
-            objectClass="org.eclipse.ui.examples.navigator.PropertiesTreeData">
-         <action
-               class="org.eclipse.ui.examples.navigator.actions.DeletePropertyAction"
-               enablesFor="1"
-               helpContextId="org.eclipse.ui.edit.delete"
-               icon="icons/delete_obj.gif"
-               id="org.eclipse.ui.examples.navigator.actions.deleteProperty"
-               label="Delete Property"
-               menubarPath="group.edit"
-               tooltip="Delete a specific property"/>
-      </objectContribution> 
-   </extension>
-   
-   <!-- 
-   	Bind the Action Provider independently 
-   <extension
-         point="org.eclipse.ui.navigator.navigatorContent">         
-     <actionProvider
-           class="org.eclipse.ui.examples.navigator.actions.PropertyActionProvider"
-           id="org.eclipse.ui.examples.navigator.properties.actions.OpenProvider"/> 
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-      <viewerActionBinding viewerId="org.eclipse.ui.examples.navigator.view">
-         <includes>
-            <actionExtension 
-            	pattern="org.eclipse.ui.examples.navigator.properties.actions.*"/>
-         </includes>
-      </viewerActionBinding>
-   </extension> 
-   
-   -->
-  
-  
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesContentProvider.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesContentProvider.java
deleted file mode 100644
index 8e9ebab..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesContentProvider.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation.
- * Licensed Material - Property of IBM. All rights reserved.
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.navigator;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * Provides the properties contained in a *.properties file as children of that
- * file in a Common Navigator.  
- * @since 3.2 
- */
-public class PropertiesContentProvider implements ITreeContentProvider,
-		IResourceChangeListener, IResourceDeltaVisitor {
-  
-	private static final Object[] NO_CHILDREN = new Object[0];
-
-	private static final Object PROPERTIES_EXT = "properties"; //$NON-NLS-1$
-
-	private final Map/*<IFile, PropertiesTreeData[]>*/ cachedModelMap = new HashMap();
-
-	private StructuredViewer viewer;
-	
-	/**
-	 * Create the PropertiesContentProvider instance.
-	 * 
-	 * Adds the content provider as a resource change listener to track changes on disk.
-	 *
-	 */
-	public PropertiesContentProvider() {
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	/**
-	 * Return the model elements for a *.properties IFile or
-	 * NO_CHILDREN for otherwise.
-	 */
-	public Object[] getChildren(Object parentElement) {  
-		Object[] children = null;
-		if (parentElement instanceof PropertiesTreeData) { 
-			children = NO_CHILDREN;
-		} else if(parentElement instanceof IFile) {
-			/* possible model file */
-			IFile modelFile = (IFile) parentElement;
-			if(PROPERTIES_EXT.equals(modelFile.getFileExtension())) {				
-				children = (PropertiesTreeData[]) cachedModelMap.get(modelFile);
-				if(children == null && updateModel(modelFile) != null) {
-					children = (PropertiesTreeData[]) cachedModelMap.get(modelFile);
-				}
-			}
-		}   
-		return children != null ? children : NO_CHILDREN;
-	}  
-
-	/**
-	 * Load the model from the given file, if possible.  
-	 * @param modelFile The IFile which contains the persisted model 
-	 */ 
-	private synchronized Properties updateModel(IFile modelFile) { 
-		
-		if(PROPERTIES_EXT.equals(modelFile.getFileExtension()) ) {
-			Properties model = new Properties();
-			if (modelFile.exists()) {
-				try {
-					model.load(modelFile.getContents()); 
-					
-					String propertyName; 
-					List properties = new ArrayList();
-					for(Enumeration names = model.propertyNames(); names.hasMoreElements(); ) {
-						propertyName = (String) names.nextElement();
-						properties.add(new PropertiesTreeData(propertyName,  model.getProperty(propertyName), modelFile));
-					}
-					PropertiesTreeData[] propertiesTreeData = (PropertiesTreeData[])
-						properties.toArray(new PropertiesTreeData[properties.size()]);
-					
-					cachedModelMap.put(modelFile, propertiesTreeData);
-					return model; 
-				} catch (IOException e) {
-				} catch (CoreException e) {
-				}
-			} else {
-				cachedModelMap.remove(modelFile);
-			}
-		}
-		return null; 
-	}
-
-	public Object getParent(Object element) {
-		if (element instanceof PropertiesTreeData) {
-			PropertiesTreeData data = (PropertiesTreeData) element;
-			return data.getFile();
-		} 
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {		
-		if (element instanceof PropertiesTreeData) {
-			return false;		
-		} else if(element instanceof IFile) {
-			return PROPERTIES_EXT.equals(((IFile) element).getFileExtension());
-		}
-		return false;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	public void dispose() {
-		cachedModelMap.clear();
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this); 
-	}
-
-	public void inputChanged(Viewer aViewer, Object oldInput, Object newInput) {
-		if (oldInput != null && !oldInput.equals(newInput))
-			cachedModelMap.clear();
-		viewer = (StructuredViewer) aViewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-
-		IResourceDelta delta = event.getDelta();
-		try {
-			delta.accept(this);
-		} catch (CoreException e) { 
-			e.printStackTrace();
-		} 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(org.eclipse.core.resources.IResourceDelta)
-	 */
-	public boolean visit(IResourceDelta delta) {
-
-		IResource source = delta.getResource();
-		switch (source.getType()) {
-		case IResource.ROOT:
-		case IResource.PROJECT:
-		case IResource.FOLDER:
-			return true;
-		case IResource.FILE:
-			final IFile file = (IFile) source;
-			if (PROPERTIES_EXT.equals(file.getFileExtension())) {
-				updateModel(file);
-				new UIJob("Update Properties Model in CommonViewer") {  //$NON-NLS-1$
-					public IStatus runInUIThread(IProgressMonitor monitor) {
-						if (viewer != null && !viewer.getControl().isDisposed())
-							viewer.refresh(file);
-						return Status.OK_STATUS;						
-					}
-				}.schedule();
-			}
-			return false;
-		}
-		return false;
-	} 
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesLabelProvider.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesLabelProvider.java
deleted file mode 100644
index 2ce582f..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesLabelProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation.
- * Licensed Material - Property of IBM. All rights reserved.
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.navigator;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-
-/**
- * Provides a label and icon for objects of type {@link PropertiesTreeData}. 
- * @since 3.2 
- */
-public class PropertiesLabelProvider extends LabelProvider implements
-		ILabelProvider, IDescriptionProvider {
-  
-
-	public Image getImage(Object element) {
-		if (element instanceof PropertiesTreeData)
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_INFO_TSK); 
-		return null;
-	}
-
-	public String getText(Object element) {
-		if (element instanceof PropertiesTreeData) {
-			PropertiesTreeData data = (PropertiesTreeData) element;
-			return data.getName() + "= " + data.getValue(); //$NON-NLS-1$
-		}  
-		return null;
-	}
-
-	public String getDescription(Object anElement) {
-		if (anElement instanceof PropertiesTreeData) {
-			PropertiesTreeData data = (PropertiesTreeData) anElement;
-			return "Property: " + data.getName(); //$NON-NLS-1$
-		}
-		return null;
-	}
-  
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesTreeData.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesTreeData.java
deleted file mode 100644
index 60dc4dc..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesTreeData.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation.
- * Licensed Material - Property of IBM. All rights reserved.
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.navigator;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * Provides a simple model of a name=value pair from a *.properties file.
- * 
- * @since 3.2
- */
-public class PropertiesTreeData { 
-
-	private IFile container; 
-	private String name;  
-	private String value;
-
-	/**
-	 * Create a property with the given name and value contained by the given file. 
-	 *  
-	 * @param aName The name of the property.
-	 * @param aValue The value of the property.
-	 * @param aFile The file that defines this property.
-	 */
-	public PropertiesTreeData(String aName, String aValue, IFile aFile) { 
-		name = aName;
-		value = aValue;
-		container = aFile; 
-	} 
- 
-	/**
-	 * The name of this property.
-	 * @return The name of this property.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Return the value of the property in the file.  
-	 * @return The value of the property in the file.
-	 */
-	public String getValue() {
-		return value;
-	}
-
-	/**
-	 * The IFile that defines this property.  
-	 * @return The IFile that defines this property.
-	 */
-	public IFile getFile() { 
-		return container;
-	}
-
-	public int hashCode() {
-		return name.hashCode();
-	}
-
-	public boolean equals(Object obj) {
-		return obj instanceof PropertiesTreeData
-				&& ((PropertiesTreeData) obj).getName().equals(name);
-	} 
-
-	public String toString() {
-		StringBuffer toString = 
-				new StringBuffer(getName()).append(":").append(getValue()); //$NON-NLS-1$
-		return toString.toString();
-	}
-
-
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java
deleted file mode 100644
index a2cf6b5..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.navigator.actions;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionDelegate;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.examples.navigator.PropertiesTreeData;
-import org.eclipse.ui.internal.examples.navigator.Activator;
-
-/**
- * A sample action that can delete a PropertiesTreeData item from a property file. 
- * 
- * @since 3.2
- */
-public class DeletePropertyAction extends ActionDelegate {
-	
-	private IStructuredSelection selection = StructuredSelection.EMPTY;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection sel) {
-		if(sel instanceof IStructuredSelection)
-			selection = (IStructuredSelection) sel;
-		else 
-			selection = StructuredSelection.EMPTY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		  
-		WorkspaceModifyOperation deletePropertyOperation = new WorkspaceModifyOperation() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
-			 */
-			protected void execute(IProgressMonitor monitor) throws CoreException {
-				// In production code, you should always externalize strings, but this is an example.
-				monitor.beginTask("Deleting property from selection", 5); //$NON-NLS-1$ 
-				try {
-					if(selection.size() == 1) {
-						
-						 Object firstElement = selection.getFirstElement();
-						 if(firstElement instanceof PropertiesTreeData) {
-							 PropertiesTreeData data = (PropertiesTreeData) firstElement;
-							 
-							 IFile propertiesFile = data.getFile();
-							 monitor.worked(1);
-							 
-							 if(propertiesFile != null && propertiesFile.isAccessible()) {
-								 
-								 try {
-									// load the model 
-									 Properties properties = new Properties();
-									 properties.load(propertiesFile.getContents());
-									 monitor.worked(1);  
-									 
-									 // delete the property 
-									 properties.remove(data.getName());
-									 monitor.worked(1);
-									 
-									 // persist the model to a temporary storage medium (byte[])
-									 ByteArrayOutputStream output = new ByteArrayOutputStream();
-									 properties.store(output, null);
-									 monitor.worked(1);
-									 
-									 // set the contents of the properties file 
-									 propertiesFile.setContents(
-											 			new ByteArrayInputStream(output.toByteArray()), 
-											 					IResource.FORCE | IResource.KEEP_HISTORY, monitor);
-									 monitor.worked(1);
-								} catch (IOException e) {
-									 // handle error gracefully 
-									Activator.logError(0, "Could not delete property!", e); //$NON-NLS-1$
-									MessageDialog.openError(Display.getDefault().getActiveShell(), 
-							 				"Error Deleting Property",  //$NON-NLS-1$
-							 				"Could not delete property!");   //$NON-NLS-1$
-								}
-									 
-							 } else // shouldn't happen, but handle error condition 
-								 MessageDialog.openError(Display.getDefault().getActiveShell(), 
-										 				"Error Deleting Property",  //$NON-NLS-1$
-										 				"The properties file was not accessible!");   //$NON-NLS-1$
-							 
-						 } else // shouldn't happen, but handle error condition 
-							 MessageDialog.openError(Display.getDefault().getActiveShell(), 
-						 				"Error Deleting Property",  //$NON-NLS-1$
-						 				"The element that was selected was not of the right type.");   //$NON-NLS-1$
-					 } else // shouldn't happen, but handle error condition 
-						 MessageDialog.openError(Display.getDefault().getActiveShell(), 
-					 				"Error Deleting Property",  //$NON-NLS-1$
-					 				"An invalid number of properties were selected.");   //$NON-NLS-1$
-				} finally {
-					monitor.done();
-				}
-			}
-		};		
-		try {
-			PlatformUI.getWorkbench().getProgressService().run(true, false, deletePropertyOperation);
-		} catch (InvocationTargetException e) { 
-			// handle error gracefully			
-			Activator.logError(0, "Could not delete property!", e); //$NON-NLS-1$
-			MessageDialog.openError(Display.getDefault().getActiveShell(), 
-	 				"Error Deleting Property",  //$NON-NLS-1$
-	 				"Could not delete property!");   //$NON-NLS-1$
-		} catch (InterruptedException e) {
-			 // handle error gracefully
-			Activator.logError(0, "Could not delete property!", e); //$NON-NLS-1$
-			MessageDialog.openError(Display.getDefault().getActiveShell(), 
-	 				"Error Deleting Property",  //$NON-NLS-1$
-	 				"Could not delete property!");   //$NON-NLS-1$
-		}
-		 
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/OpenPropertyAction.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/OpenPropertyAction.java
deleted file mode 100644
index 35a8d2d..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/OpenPropertyAction.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.navigator.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.FindReplaceDocumentAdapter;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.navigator.PropertiesTreeData;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.examples.navigator.Activator;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-/**
- * @since 3.2
- *
- */
-public class OpenPropertyAction extends Action {
-	
-	private IWorkbenchPage page;
-	private PropertiesTreeData data;
-	private ISelectionProvider provider; 
-
-
-	/**
-	 * Construct the OpenPropertyAction with the given page. 
-	 * @param p The page to use as context to open the editor.
-	 * @param selectionProvider The selection provider 
-	 */
-	public OpenPropertyAction(IWorkbenchPage p, ISelectionProvider selectionProvider) {
-		setText("Open Property"); //$NON-NLS-1$
-		page = p;
-		provider = selectionProvider;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.Action#isEnabled()
-	 */
-	public boolean isEnabled() {
-		ISelection selection = provider.getSelection();
-		if(!selection.isEmpty()) {
-			IStructuredSelection sSelection = (IStructuredSelection) selection;
-			if(sSelection.size() == 1 && 
-			   sSelection.getFirstElement() instanceof PropertiesTreeData) 
-			{
-				data = ((PropertiesTreeData)sSelection.getFirstElement()); 				
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() { 
-		/* In production code, you should always externalize strings, 
-		 * 	but this is an example. */
-		try {
-			if(isEnabled()) {
-				IFile propertiesFile = data.getFile();
-				IEditorPart editor = IDE.openEditor(page, propertiesFile); 
-				
-				if (editor instanceof ITextEditor) {
-					ITextEditor textEditor = (ITextEditor) editor;
-					
-					IDocumentProvider documentProvider = 
-						textEditor.getDocumentProvider();
-					IDocument document = 
-						documentProvider.getDocument(editor.getEditorInput());
-					
-					FindReplaceDocumentAdapter searchAdapter = 
-						new FindReplaceDocumentAdapter(document);
-					
-					try {
-						String searchText = data.getName()+"="; //$NON-NLS-1$ 
-						IRegion region = searchAdapter.find(0, 
-															searchText, 
-															true /* forwardSearch */, 
-															true /* caseSensitive */, 
-															false /* wholeWord */, 
-															false /* regExSearch */); 
-						
-						((ITextEditor)editor).selectAndReveal(region.getOffset(), region.getLength());
-						
-					} catch (BadLocationException e) {
-						Activator.logError(0, "Could not open property!", e); //$NON-NLS-1$
-						MessageDialog.openError(Display.getDefault().getActiveShell(), 
-				 				"Error Opening Property",  //$NON-NLS-1$
-				 				"Could not open property!");   //$NON-NLS-1$
-					}
-					return;
-				}
-			} 
-		} catch (PartInitException e) { 
-			Activator.logError(0, "Could not open property!", e); //$NON-NLS-1$
-			MessageDialog.openError(Display.getDefault().getActiveShell(), 
-	 				"Error Opening Property",  //$NON-NLS-1$
-	 				"Could not open property!");   //$NON-NLS-1$
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/PropertyActionProvider.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/PropertyActionProvider.java
deleted file mode 100644
index 7b77d54..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/PropertyActionProvider.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.examples.navigator.actions;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionConstants;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-import org.eclipse.ui.navigator.ICommonViewerSite;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-
-/**
- * @since 3.2
- *
- */
-public class PropertyActionProvider extends CommonActionProvider {
-	
-	private OpenPropertyAction openAction;
-
-	/**
-	 * Construct Property Action provider.
-	 */
-	public PropertyActionProvider() { 		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite aSite) {
-	
-		ICommonViewerSite viewSite = aSite.getViewSite();
-		if(viewSite instanceof ICommonViewerWorkbenchSite) {
-			ICommonViewerWorkbenchSite workbenchSite = 
-				(ICommonViewerWorkbenchSite) viewSite;
-			openAction = 
-				new OpenPropertyAction(workbenchSite.getPage(), 
-										workbenchSite.getSelectionProvider());
-		}
-	}	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void fillActionBars(IActionBars actionBars) { 
-		/* Set up the property open action when enabled. */
-		if(openAction.isEnabled())
-			actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, openAction);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void fillContextMenu(IMenuManager menu) {
-		if(openAction.isEnabled())
-			menu.appendToGroup(ICommonMenuConstants.GROUP_OPEN, openAction);		
-	}
-	
-	
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.java
deleted file mode 100644
index 02cd914..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.examples.navigator;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	/** The plug-in ID */
-	public static final String PLUGIN_ID = "org.eclipse.ui.examples.navigator"; //$NON-NLS-1$
-	  
-	// The shared instance
-	private static Activator plugin;  
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context); 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);  
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	} 
-
-	/**
-	 * Record an error against this plugin's log. 
-	 * 
-	 * @param aCode
-	 * @param aMessage
-	 * @param anException
-	 */
-	public static void logError(int aCode, String aMessage,
-			Throwable anException) {
-		getDefault().getLog().log(
-				createErrorStatus(aCode, aMessage, anException));
-	}
-
-	/**
-	 * 
-	 * Record a message against this plugin's log. 
-	 * 
-	 * @param severity
-	 * @param aCode
-	 * @param aMessage
-	 * @param exception
-	 */
-	public static void log(int severity, int aCode, String aMessage,
-			Throwable exception) {
-		log(createStatus(severity, aCode, aMessage, exception));
-	}
-
-	/**
-	 * 
-	 * Record a status against this plugin's log. 
-	 * 
-	 * @param aStatus
-	 */
-	public static void log(IStatus aStatus) {
-		getDefault().getLog().log(aStatus);
-	}
-
-	/**
-	 * Create a status associated with this plugin.
-	 *  
-	 * @param severity
-	 * @param aCode
-	 * @param aMessage
-	 * @param exception
-	 * @return A status configured with this plugin's id and the given parameters.
-	 */
-	public static IStatus createStatus(int severity, int aCode,
-			String aMessage, Throwable exception) {
-		return new Status(severity, PLUGIN_ID, aCode,
-				aMessage != null ? aMessage : "No message.", exception); //$NON-NLS-1$
-	}
-
-	/**
-	 * 
-	 * @param aCode
-	 * @param aMessage
-	 * @param exception
-	 * @return A status configured with this plugin's id and the given parameters.
-	 */
-	public static IStatus createErrorStatus(int aCode, String aMessage,
-			Throwable exception) {
-		return createStatus(IStatus.ERROR, aCode, aMessage, exception);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/.classpath b/examples/org.eclipse.ui.examples.presentation/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/examples/org.eclipse.ui.examples.presentation/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.presentation/.cvsignore b/examples/org.eclipse.ui.examples.presentation/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.presentation/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.presentation/.project b/examples/org.eclipse.ui.examples.presentation/.project
deleted file mode 100644
index caf64e4..0000000
--- a/examples/org.eclipse.ui.examples.presentation/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.presentation</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.presentation/BareBonesPresentation.ini b/examples/org.eclipse.ui.examples.presentation/BareBonesPresentation.ini
deleted file mode 100644
index 6cb8033..0000000
--- a/examples/org.eclipse.ui.examples.presentation/BareBonesPresentation.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-# use the Bare-bones presentation style
-org.eclipse.ui/presentationFactoryId=org.eclipse.ui.examples.presentation.barebones
diff --git a/examples/org.eclipse.ui.examples.presentation/WrappedTabsPresentation.ini b/examples/org.eclipse.ui.examples.presentation/WrappedTabsPresentation.ini
deleted file mode 100644
index 30e3cb0..0000000
--- a/examples/org.eclipse.ui.examples.presentation/WrappedTabsPresentation.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-# use the Wrapped-Tabs presentation style
-org.eclipse.ui/presentationFactoryId=org.eclipse.ui.examples.presentation.wrappedtabs
diff --git a/examples/org.eclipse.ui.examples.presentation/about.html b/examples/org.eclipse.ui.examples.presentation/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.presentation/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.presentation/build.properties b/examples/org.eclipse.ui.examples.presentation/build.properties
deleted file mode 100644
index 31f3e08..0000000
--- a/examples/org.eclipse.ui.examples.presentation/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.presentation.jar = src/
-output.presentation.jar = bin/
-bin.includes = plugin.xml,\
-               presentation.jar,\
-               icons/
-src.includes = icons/,\
-               src/,\
-               doc/,\
-               plugin.xml
diff --git a/examples/org.eclipse.ui.examples.presentation/eclipsecon2005-presentationsAPI.ppt b/examples/org.eclipse.ui.examples.presentation/eclipsecon2005-presentationsAPI.ppt
deleted file mode 100644
index 6add476..0000000
--- a/examples/org.eclipse.ui.examples.presentation/eclipsecon2005-presentationsAPI.ppt
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/close_view.gif b/examples/org.eclipse.ui.examples.presentation/icons/close_view.gif
deleted file mode 100644
index 44b6151..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/close_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/hide_toolbar.GIF b/examples/org.eclipse.ui.examples.presentation/icons/hide_toolbar.GIF
deleted file mode 100644
index 5858e4a..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/hide_toolbar.GIF
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/max_view.gif b/examples/org.eclipse.ui.examples.presentation/icons/max_view.gif
deleted file mode 100644
index 94ed448..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/max_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/min_view.gif b/examples/org.eclipse.ui.examples.presentation/icons/min_view.gif
deleted file mode 100644
index bd2ed2d..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/min_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/restore_view.GIF b/examples/org.eclipse.ui.examples.presentation/icons/restore_view.GIF
deleted file mode 100644
index 942d60c..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/restore_view.GIF
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/show_toolbar.GIF b/examples/org.eclipse.ui.examples.presentation/icons/show_toolbar.GIF
deleted file mode 100644
index eda10ab..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/show_toolbar.GIF
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/view_menu.GIF b/examples/org.eclipse.ui.examples.presentation/icons/view_menu.GIF
deleted file mode 100644
index 21ec7f1..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/view_menu.GIF
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/plugin.xml b/examples/org.eclipse.ui.examples.presentation/plugin.xml
deleted file mode 100644
index 18da18c..0000000
--- a/examples/org.eclipse.ui.examples.presentation/plugin.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<!-- =================================================================================== -->
-<!-- Presentation Example Manifest						 					                                 -->
-<!-- =================================================================================== -->
-<plugin
-   id="org.eclipse.ui.examples.presentation"
-   name="Presentation Example"
-   version="1.0.7"
-   provider-name="Eclipse.org"
-   class="org.eclipse.ui.examples.presentation.PresentationPlugin">
-
-<!-- =================================================================================== -->
-<!-- Libraries					 					                                 -->
-<!-- =================================================================================== -->
-
-   <runtime>
-      <library name="presentation.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-
-<!-- =================================================================================== -->
-<!-- Imports						 					                                 -->
-<!-- =================================================================================== -->
-  
-<requires>
-  <import plugin="org.eclipse.ui"/>
-  <import plugin="org.eclipse.core.runtime"/>
-</requires>
-
-<!-- =================================================================================== -->
-<!-- Presentation Extensions						 					                                 -->
-<!-- =================================================================================== -->
-
-   <extension
-         point="org.eclipse.ui.presentationFactories">
-      <factory
-            class="org.eclipse.ui.examples.presentation.barebones.BareBonesPresentationFactory"
-            name="Bare-bones presentation"
-            id="org.eclipse.ui.examples.presentation.barebones"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.presentationFactories">
-      <factory
-            class="org.eclipse.ui.examples.presentation.wrappedtabs.WrappedTabsPresentationFactory"
-            name="Wrapped tabs presentation"
-            id="org.eclipse.ui.examples.presentation.wrappedtabs"/>
-   </extension>
-      <extension
-         point="org.eclipse.ui.presentationFactories">
-      <factory
-            class="org.eclipse.ui.internal.presentations.defaultpresentation.NativePresentationFactory"
-            name="Native Tabs"
-            id="org.eclipse.ui.internal.presentations.defaultpresentation.NativePresentationFactory"/>
-      <factory
-            class="org.eclipse.ui.examples.presentation.baretittle.BareTitlePresentationFactory"
-            id="org.eclipse.ui.examples.presentation.factory1"
-            name="Simple Title"/>
-      <factory
-            class="org.eclipse.ui.examples.presentation.sidewinder.SideWinderPresentationFactory"
-            id="org.eclipse.ui.examples.presentation.factory2"
-            name="Side Winder"/>
-   </extension>
-
-<!-- =================================================================================== -->
-<!-- Themes						 					                                 -->
-<!-- =================================================================================== -->
-
-<extension point="org.eclipse.ui.themes">
-	<themeElementCategory
-    	id="org.eclipse.ui.examples.presentation.wrappedtabstheme"
-       	label="WrappedTabs Presentation"/>
-    <categoryPresentationBinding
-            categoryId="org.eclipse.ui.examples.presentation.wrappedtabstheme"
-            presentationId="org.eclipse.ui.examples.presentation.wrappedtabs">
-      </categoryPresentationBinding>
-	<colorDefinition 
-        id="org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_focus"
-        categoryId="org.eclipse.ui.examples.presentation.wrappedtabstheme"
-        label="Border Color (Focus)"
-        value="COLOR_WIDGET_BORDER">
-        <description>
-        This color is used for the forground color of the stack border when it has focus.
-        </description>
-      </colorDefinition>
-      <colorDefinition 
-        id="org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_nofocus"
-        categoryId="org.eclipse.ui.examples.presentation.wrappedtabstheme"
-        label="Border Color (No-Focus)"
-        value="COLOR_WIDGET_NORMAL_SHADOW">
-        <description>
-        This color is used for the forground color of the stack border when it doesn't have focus.
-        </description>
-      </colorDefinition>  
-      <fontDefinition
-        id="org.eclipse.ui.examples.presentation.wrappedtabstheme.font"
-        categoryId="org.eclipse.ui.examples.presentation.wrappedtabstheme"        
-        label="Tab Font"
-        defaultsTo="org.eclipse.jface.textfont">
-        <description>
-        This font is used to display the part selection tabs.
-        </description>
-      </fontDefinition>  
-      <data
-       name="org.eclipse.ui.examples.presentation.wrappedtabstheme.bordersize"
-       value="1"/>
-       
-       <theme
-        id="org.eclipse.ui.examples.presentation.wrappedtabstheme.harsh"
-        name="Harsh Wrapped Tabs Theme">
-        <colorOverride
-         id="org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_focus"
-         value="COLOR_CYAN"/>
-        <colorOverride
-         id="org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_nofocus"
-         value="COLOR_MAGENTA"/>
-      <data
-           name="org.eclipse.ui.examples.presentation.wrappedtabstheme.bordersize"
-           value="5"/>      
-      </theme> 
-</extension> 
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationExamplesPlugin.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationExamplesPlugin.java
deleted file mode 100644
index 0e21c87..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationExamplesPlugin.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.ui.examples.presentation;
-
-import org.eclipse.ui.plugin.*;
-import org.osgi.framework.BundleContext;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class PresentationExamplesPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static PresentationExamplesPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	/**
-	 * The constructor.
-	 */
-	public PresentationExamplesPlugin() {
-		super();
-		plugin = this;
-		try {
-			resourceBundle = ResourceBundle.getBundle("org.eclipse.ui.examples.presentation.PresentationExamplesPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static PresentationExamplesPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = PresentationExamplesPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationImages.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationImages.java
deleted file mode 100644
index 3f929c8..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationImages.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-
-
-/**
- * @since 3.0
- */
-public class PresentationImages {	
-	public static final String CLOSE_VIEW = "close_view.gif";
-	public static final String MIN_VIEW = "min_view.gif";
-	public static final String MAX_VIEW = "max_view.gif";
-	public static final String RESTORE_VIEW = "restore_view.gif";
-	public static final String VIEW_MENU = "view_menu.gif";
-	public static final String SHOW_TOOLBAR = "show_toolbar.gif";
-	public static final String HIDE_TOOLBAR = "hide_toolbar.gif";
-	
-	private PresentationImages() {
-	}
-	
-	public static Image getImage(String imageName) {
-		return PresentationPlugin.getDefault().getImage(imageName);
-	}
-	
-	public static ImageDescriptor getImageDescriptor(String imageName) {
-		return PresentationPlugin.getDefault().getImageDescriptor(imageName);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationPlugin.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationPlugin.java
deleted file mode 100644
index c11e638..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationPlugin.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.eclipse.ui.examples.presentation;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class PresentationPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static PresentationPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	/**
-	 * The constructor.
-	 */
-	public PresentationPlugin() {
-		super();
-		plugin = this;
-		try {
-			resourceBundle = ResourceBundle.getBundle("org.eclipse.ui.examples.presentation.PresentationPluginResources"); //$NON-NLS-1$
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-	
-	/**
-	 * Returns the given image. The image will be managed by the plugin's
-	 * image registry.
-	 * 
-	 * @param imageName a pathname relative to the icons directory of
-	 * this project.
-	 */
-	public Image getImage(String imageName) {
-		ImageRegistry reg = getImageRegistry();
-		
-		Image result = reg.get(imageName);
-		
-		if (result != null) {
-			return result;
-		}
-		
-		result = getImageDescriptor(imageName).createImage();
-		
-		reg.put(imageName, result);
-		
-		return result;
-	}
-
-	/**
-	 * Returns the given image descriptor. The caller will be responsible
-	 * for deallocating the image if it creates the image from the descriptor
-	 * 
-	 * @param imageName is a pathname relative to the icons directory 
-	 * within this project.
-	 */
-	public ImageDescriptor getImageDescriptor(String imageName) {		
-		ImageDescriptor desc;
-		try {
-			desc =
-				ImageDescriptor.createFromURL(
-					new URL(
-							plugin.getBundle().getEntry("/"), //$NON-NLS-1$
-							"icons/" + imageName)); //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-			desc = ImageDescriptor.getMissingImageDescriptor();
-		}
-					
-		return desc;
-	}
-	
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static PresentationPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = PresentationPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPartPresentation.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPartPresentation.java
deleted file mode 100644
index 0272339..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPartPresentation.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.barebones;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * Bare-bones stack presentation. The currently selected part fills the entire
- * presentation area, and all other parts are invisible. Does not provide a 
- * system menu, pane menu, trim, drag/drop, toolbars, or any way to switch 
- * parts.
- */
-public class BareBonesPartPresentation extends StackPresentation {
-
-/**
- * Main widget for the presentation
- */
-private Composite presentationControl;
-
-/**
- * Currently selected part
- */
-private IPresentablePart current;
-
-/**
- * Creates a new bare-bones part presentation, given the parent composite and 
- * an IStackPresentationSite interface that will be used to communicate with 
- * the workbench.
- * 
- * @param stackSite interface to the workbench
- */
-public BareBonesPartPresentation(Composite parent, 
-		IStackPresentationSite stackSite) {
-	super(stackSite);		
-	
-	// Create a top-level control for the presentation.
-	presentationControl = new Composite(parent, SWT.NONE);
-	
-	// Add a dispose listener. This will call the presentationDisposed()
-	// method when the widget is destroyed.
-	presentationControl.addDisposeListener(new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			presentationDisposed();
-		}
-	});
-}
-
-public void dispose() {
-	// Dispose the main presentation widget. This will cause 
-	// presentationDisposed to be called, which will do the real cleanup.
-	presentationControl.dispose();
-}
-
-/**
- * Perform any cleanup. This method should remove any listeners that were
- * attached to other objects. This gets called when the presentation
- * widget is disposed. This is safer than cleaning up in the dispose() 
- * method, since this code will run even if some unusual circumstance 
- * destroys the Shell without first calling dispose().
- */
-protected void presentationDisposed() {
-	// Remove any listeners that were attached to any IPresentableParts or
-	// global Eclipse resources. This is necessary in order to prevent
-	// memory leaks. Currently, there is nothing to do.
-}
-
-public void setBounds(Rectangle bounds) {
-	// Set the bounds of the presentation widget
-	presentationControl.setBounds(bounds);
-	
-	// Update the bounds of the currently visible part
-	updatePartBounds();
-}
-
-private void updatePartBounds() {
-	if (current != null) {
-		current.setBounds(presentationControl.getBounds());
-	}
-}
-
-public Point computeMinimumSize() {
-	return new Point(16,16);
-}
-
-public void setVisible(boolean isVisible) {
-	
-	// Make the presentation widget visible
-	presentationControl.setVisible(isVisible);
-	
-	// Make the currently visible part visible
-	if (current != null) {
-		current.setVisible(isVisible);
-	}
-
-	if (isVisible) {
-		// Restore the bounds of the currently visible part. 
-		// IPartPresentations can be used by multiple StackPresentations,
-		// although only one such presentation is ever visible at a time.
-		// It is possible that some other presentation has changed the
-		// bounds of the part since it was last visible, so we need to
-		// update the part's bounds when the presentation becomes visible.
-		updatePartBounds();
-	}
-}
-
-public void selectPart(IPresentablePart toSelect) {
-	// Ignore redundant selections
-	if (toSelect == current) {
-		return;
-	}
-	
-	// If there was an existing part selected, make it invisible
-	if (current != null) {
-		current.setVisible(false);
-	}
-	
-	// Select the new part
-	current = toSelect;
-	
-	// Ordering is important here. We need to make the part
-	// visible before updating its bounds, or the call to setBounds
-	// may be ignored.
-	
-	if (current != null) {
-		// Make the newly selected part visible
-		current.setVisible(true);
-	}
-	
-	// Update the bounds of the newly selected part
-	updatePartBounds();
-}
-
-public Control[] getTabList(IPresentablePart part) {
-	return new Control[] {part.getControl()};
-}
-
-public Control getControl() {
-	return presentationControl;
-}
-
-// Methods that don't do anything yet
-public void setActive(int newState) {}
-public void setState(int state) {}
-public void addPart(IPresentablePart newPart, Object cookie) {}
-public void removePart(IPresentablePart oldPart) {}
-public StackDropResult dragOver(Control currentControl, Point location) {return null;}
-public void showSystemMenu() {}
-public void showPaneMenu() {}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPresentationFactory.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPresentationFactory.java
deleted file mode 100644
index 10455e3..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPresentationFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.barebones;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * Presentation factory for the bare-bones presentation
- */
-public class BareBonesPresentationFactory extends AbstractPresentationFactory {
-
-	public StackPresentation createEditorPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new BareBonesPartPresentation(parent, site);
-	}
-
-	public StackPresentation createViewPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new BareBonesPartPresentation(parent, site);
-	}
-	
-	public StackPresentation createStandaloneViewPresentation(Composite parent,
-			IStackPresentationSite site, boolean showTitle) {
-		return new BareBonesPartPresentation(parent, site);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitlePresentationFactory.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitlePresentationFactory.java
deleted file mode 100644
index 4c26dfe..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitlePresentationFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.baretittle;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.*;
-
-/**
- * @since 3.0
- */
-public class BareTitlePresentationFactory extends AbstractPresentationFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createEditorPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createEditorPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new WorkbenchPresentationFactory().createEditorPresentation(parent, site);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createViewPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new BareTitleStackPresentation(parent, site);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createStandaloneViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite, boolean)
-	 */
-	public StackPresentation createStandaloneViewPresentation(Composite parent,
-			IStackPresentationSite site, boolean showTitle) {
-		return new BareTitleStackPresentation(parent, site);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitleStackPresentation.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitleStackPresentation.java
deleted file mode 100644
index a18a0d9..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitleStackPresentation.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.baretittle;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.presentations.*;
-
-public class BareTitleStackPresentation extends StackPresentation {
-
-	private static final String PART_DATA = "part";
-	
-	private static final int TITLE_HEIGHT = 22;
-	
-	private boolean activeFocus = false;
-	
-	/**
-	 * Main widget for the presentation
-	 */
-	private Composite presentationControl;
-	private Composite titleArea;
-	private Composite contentArea;
-	
-	/**
-	 * Currently selected part
-	 */
-	private IPresentablePart current;
-		
-	/**
-	 * close button
-	 */
-	private ToolItem close;
-	
-	/**
-	 * View menu button
-	 */
-	private ToolItem viewMenu;
-	
-	/**
-	 * Minimize button
-	 */
-	private ToolItem minView;
-	
-	private MouseListener mouseListener = new MouseAdapter() {		
-		// If we single-click on an empty space on the toolbar, move focus to the
-		// active control
-		public void mouseDown(MouseEvent e) {
-			if (current != null) {
-				current.setFocus();
-			}
-		}
-	};
-		
-	/** 
-	 * Drag listener for regions outside the toolbar
-	 */
-	Listener dragListener = new Listener() {
-		public void handleEvent(Event event) {
-			Point loc = new Point(event.x, event.y);
-			Control ctrl = (Control)event.widget;
-			
-			getSite().dragStart(ctrl.toDisplay(loc), false);
-		}
-	};
-	
-	public BareTitleStackPresentation(Composite parent, IStackPresentationSite stackSite) {
-		super(stackSite);
-		
-		// Create a top-level control for the presentation.
-		presentationControl = new Composite(parent, SWT.NONE);
-		titleArea = new Composite(presentationControl, SWT.NONE);
-		contentArea = new Composite(presentationControl, SWT.NONE);
-		titleArea.addMouseListener(mouseListener);
-		PresentationUtil.addDragListener(titleArea, dragListener);
-		
-		// Add a dispose listener. This will call the presentationDisposed()
-		// method when the widget is destroyed.
-		presentationControl.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				presentationDisposed();
-			}
-		});
-
-		presentationControl.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				Rectangle clientArea = presentationControl.getClientArea();			
-				e.gc.setLineWidth(1);				
-				e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_DARK_GRAY));
-				e.gc.drawRectangle(clientArea.x, clientArea.y, clientArea.width-1, clientArea.height-1);
-				Rectangle contentAreaBounds = contentArea.getBounds();
-				int ypos = contentAreaBounds.y - 1;				
-				e.gc.drawLine(clientArea.x, ypos, clientArea.x + clientArea.width - 1, ypos);
-			}			
-		});
-		
-		titleArea.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				Rectangle titleRect = titleArea.getClientArea();
-				GC gc = e.gc;
-				e.gc.setBackground(e.display.getSystemColor(SWT.COLOR_GRAY));
-				if(activeFocus)
-					e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLUE));
-				else 
-					e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_WHITE));
-				e.gc.fillGradientRectangle(titleRect.x, titleRect.y, titleRect.x + titleRect.width, titleRect.y + titleRect.height, true);
-				
-				if(current != null) {
-				int textWidth = titleRect.width - 1;
-				if (textWidth > 0) {
-					Font gcFont = gc.getFont();
-					gc.setFont(presentationControl.getFont());
-					String text = current.getTitle();
-					
-					Point extent = gc.textExtent(text, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);	
-					int textY = titleRect.y + (titleRect.height - extent.y) / 2;
-					
-					if(activeFocus)					
-						gc.setForeground(e.display.getSystemColor(SWT.COLOR_WHITE));
-					else 
-						gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLACK));
-					gc.setFont(JFaceResources.getBannerFont());
-					gc.drawText(text, titleRect.x + 3, textY, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);					
-				}				
-			}
-			}
-		});
-		layout();
-	}
-
-	protected void presentationDisposed() {
-	    // Remove any listeners that were attached to any
-		// global Eclipse resources. This is necessary in order to prevent
-		// memory leaks.
-	}
-	
-	protected int getBorderWidth() {
-		return 1;
-	}
-	
-	public void layout() {
-		// Determine the inner bounds of the presentation
-		Rectangle presentationClientArea = presentationControl.getClientArea();
-		presentationClientArea.x += getBorderWidth();
-		presentationClientArea.width -= getBorderWidth() * 2;
-		presentationClientArea.y += getBorderWidth();
-		presentationClientArea.height -= getBorderWidth() * 2;
-		titleArea.setBounds(presentationClientArea.x, presentationClientArea.y, presentationClientArea.width, presentationClientArea.y + TITLE_HEIGHT);
-		int yy = TITLE_HEIGHT  + 2;
-		contentArea.setBounds(presentationClientArea.x, presentationClientArea.y + yy, presentationClientArea.width, presentationClientArea.height - yy);
-		
-		titleArea.setBackground(titleArea.getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN));
-		contentArea.setBackground(titleArea.getDisplay().getSystemColor(SWT.COLOR_DARK_RED));
-		
-		// Position the view's widgets
-		if (current != null) {
-			Rectangle clientRectangle = contentArea.getBounds();
-			Point clientAreaStart = presentationControl.getParent().toControl(
-					presentationControl.toDisplay(clientRectangle.x, clientRectangle.y));
-			// current isn't parented by this widget hierarchy, the coordinates must be
-			// relative to the workbench window. The workbench window parents every
-			// part.
-			current.setBounds(new Rectangle(clientAreaStart.x, 
-					clientAreaStart.y,
-					clientRectangle.width, 
-					clientRectangle.height));
-		}
-		
-	}
-	
-	public void setBounds(Rectangle bounds) {
-		presentationControl.setBounds(bounds);
-		layout();
-	}
-
-	public void dispose() {
-	}
-
-	public void setActive(int newState) {
-		activeFocus = (newState == AS_ACTIVE_FOCUS);
-		titleArea.redraw();
-	}
-
-	public void setVisible(boolean isVisible) {
-	}
-
-	public void setState(int state) {
-	}
-
-	public Control getControl() {
-		return presentationControl;
-	}
-
-	public void addPart(IPresentablePart newPart, Object cookie) {
-		newPart.setBounds(contentArea.getBounds());
-		this.current = newPart;
-		layout();
-	}
-
-	public void removePart(IPresentablePart oldPart) {
-	}
-
-	public void selectPart(IPresentablePart toSelect) {
-	}
-
-	public StackDropResult dragOver(Control currentControl, Point location) {
-		return null;
-	}
-
-	public void showSystemMenu() {
-	}
-
-	public void showPaneMenu() {
-	}
-
-	public Control[] getTabList(IPresentablePart part) {
-		if(current != null) {
-			return new Control[] {current.getControl()};
-		} else {
-			return new Control[0];
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/ClosePartContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/ClosePartContributionItem.java
deleted file mode 100644
index 9196b36..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/ClosePartContributionItem.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.sidewinder;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-public class ClosePartContributionItem extends ContributionItem {
-	private SideWinderItemViewPresentation presentation; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			presentation.close(new IPresentablePart[] {presentation.getCurrent()});
-		}
-	};
-	
-	public ClosePartContributionItem(SideWinderItemViewPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-		MenuItem item = new MenuItem(menu, SWT.NONE, index);
-		item.setText("Close");
-		item.addSelectionListener(selectionListener);
-		
-		IPresentablePart current = presentation.getCurrent();
-		item.setEnabled(current != null);
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/PartItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/PartItem.java
deleted file mode 100644
index c1cced7..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/PartItem.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.sidewinder;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-public class PartItem extends Canvas implements PaintListener {
-
-	private String text;
-	private Image image;
-	private boolean selected;
-	private boolean focus = false;
-	private IPresentablePart part;
-	
-	private static final int VERT_SPACING = 5;
-	private static final int HORIZ_SPACING = 3;
-	
-	int[] SIMPLE_TOP_LEFT_CORNER = new int[] {0,4, 4,0};
-	int[] SIMPLE_TOP_RIGHT_CORNER = new int[] {0,0, 0,0};
-	
-	//static final int[] SIMPLE_TOP_LEFT_CORNER = new int[] {0,2, 1,1, 2,0};
-	//static final int[] SIMPLE_TOP_RIGHT_CORNER = new int[] {-2,0, -1,1, 0,2};
-	
-	static final int[] SIMPLE_BOTTOM_LEFT_CORNER = new int[] {0,-2, 1,-1, 2,0};
-	static final int[] SIMPLE_BOTTOM_RIGHT_CORNER = new int[] {-2,0, -1,-1, 0,-2};
-	private boolean showImage;
-	private boolean showText;
-	
-	public PartItem(Composite parent, IPresentablePart part) {
-		super(parent, SWT.NONE);
-		addPaintListener(this);
-		this.part = part;
-	}
-
-	public void paintControl(PaintEvent e) {
-		Rectangle titleRect = getClientArea();
-		int x = titleRect.x + VERT_SPACING;
-		int y = titleRect.y + HORIZ_SPACING;
-		GC gc = e.gc;
-		setBackground(getParent().getBackground());
-		fill(gc, titleRect.x, titleRect.y, titleRect.width - 1, titleRect.height);
-		
-		Image image = getImage();
-		if (image != null && showImage) {
-			Rectangle imageBounds = image.getBounds();
-				int imageX = x;
-				int imageHeight = imageBounds.height;
-				int imageY = (titleRect.height - imageHeight) / 2;
-				int imageWidth = imageBounds.width * imageHeight / imageBounds.height;
-				gc.drawImage(image, 
-					         imageBounds.x, imageBounds.y, imageBounds.width, imageBounds.height,
-					         imageX, imageY, imageWidth, imageHeight);
-				x += imageWidth + VERT_SPACING;		
-		}
-		
-		int textWidth = titleRect.width - 1;
-		if (textWidth > 0 && text != null && showText) {
-			Font gcFont = gc.getFont();
-			gc.setFont(getFont());
-			Point extent = gc.textExtent(text, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);	
-			int textY = titleRect.y + (titleRect.height - extent.y) / 2;
-			
-			if(selected)					
-				gc.setForeground(e.display.getSystemColor(SWT.COLOR_WHITE));
-			else 
-				gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLACK));
-			gc.setFont(JFaceResources.getDefaultFont());
-			gc.drawText(text, x, textY, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);	
-		}
-		
-	}	
-	
-	public Point computeSize(int wHint, int hHint) {
-		int width = VERT_SPACING; int height = HORIZ_SPACING;
-		GC gc = new GC(this);
-		if(image != null && showImage) {
-			Rectangle imageBounds = image.getBounds();			
-			height = imageBounds.height + HORIZ_SPACING;
-			width += imageBounds.width + VERT_SPACING;
-		}
-		
-		if(text != null && showText) {
-			Point extent = gc.textExtent(text, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);
-			width += extent.x + VERT_SPACING;
-			height = Math.max(height, extent.y) + HORIZ_SPACING;
-		}
-		
-		if (wHint != SWT.DEFAULT) width = wHint;
-		if (hHint != SWT.DEFAULT) height = hHint;
-		gc.dispose();
-		return new Point(width, height);
-	}
-	
-	private void fill(GC gc, int x, int y, int width, int height) {
-		int[] left = SIMPLE_TOP_LEFT_CORNER;
-		int[] right = SIMPLE_TOP_RIGHT_CORNER;
-		int[] shape = new int[left.length + right.length + 4];
-		int index = 0;
-		shape[index++] = x;
-		shape[index++] = y + height + 1;
-		for (int i = 0; i < left.length / 2; i++) {
-			shape[index++] = x + left[2 * i];
-			shape[index++] = y + left[2 * i + 1];
-		}
-		for (int i = 0; i < right.length / 2; i++) {
-			shape[index++] = x + width + right[2 * i];
-			shape[index++] = y + right[2 * i + 1];
-		}
-		shape[index++] = x + width;
-		shape[index++] = y + height + 1;
-		
-		// Fill in background
-		Region clipping = new Region();
-		gc.getClipping(clipping);
-		Region region = new Region();
-		region.add(shape);
-		region.intersect(clipping);
-		gc.setClipping(region);
-		
-		gc.setBackground(getDisplay().getSystemColor(SWT.COLOR_GRAY));
-		
-		Color fg = null;
-		if(part.isDirty())
-			fg = getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY);
-		else if(!selected)
-			fg = getDisplay().getSystemColor(SWT.COLOR_WHITE);
-		//else if(focus)
-			//fg = getDisplay().getSystemColor(SWT.COLOR_BLUE);
-		else 
-			fg = getDisplay().getSystemColor(SWT.COLOR_BLUE);
-		
-		gc.setForeground(fg);
-		
-		gc.fillGradientRectangle(x, y, x + width, y + height, true);
-		//gc.fillRectangle(x, y, x + width, y + height);
-		
-		
-		region.dispose();
-		clipping.dispose();
-		
-		gc.setClipping((Rectangle)null);
-		gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
-		gc.drawPolyline(shape);
-		
-		
-		// Fill in parent background for non-rectangular shape
-		Region r = new Region();
-		r.add(new Rectangle(x, y, width + 1, height + 1));
-		r.subtract(shape);
-		gc.setBackground(getParent().getBackground());
-		//fillRegion(gc, r);
-		r.dispose();
-	}
-	
-	static void fillRegion(GC gc, Region region) {
-		// NOTE: region passed in to this function will be modified
-		Region clipping = new Region();
-		gc.getClipping(clipping);
-		region.intersect(clipping);
-		gc.setClipping(region);
-		gc.fillRectangle(region.getBounds());
-		gc.setClipping(clipping);
-		clipping.dispose();
-	}
-	
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		return computeSize(wHint, hHint);
-	}
-	
-	public void setText(String text) {
-		this.text = text;
-		redraw();
-	}
-	
-	public String getText() {
-		return this.text;
-	}
-	
-	public void setImage(Image image) {
-		this.image = image;
-	}
-	
-	public Image getImage() {
-		return this.image;	
-	}
-	
-	public void setSelected(boolean selected) {
-		this.selected = selected;
-		redraw();
-	}
-	
-	public boolean getSelected() {
-		return this.selected;
-	}
-	
-	public boolean isFocus() {
-		return focus;
-	}
-	
-	public void setFocus(boolean focus) {
-		this.focus = focus;
-	}
-
-	public void setShowImage(boolean showImage) {
-		this.showImage = showImage;
-	}
-
-	public void setShowText(boolean showText) {
-		this.showText = showText;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderItemViewPresentation.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderItemViewPresentation.java
deleted file mode 100644
index 78a02d5..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderItemViewPresentation.java
+++ /dev/null
@@ -1,650 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.sidewinder;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.examples.presentation.wrappedtabs.ProxyControl;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.PresentationUtil;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-
-public class SideWinderItemViewPresentation extends StackPresentation {
-
-	private static final String PART_DATA = "part";
-	
-	private static final int TITLE_HEIGHT = 22;
-	
-	private boolean activeFocus = false;
-	
-	/**
-	 * Main widget for the presentation
-	 */
-	private Composite presentationControl;
-	private Composite titleArea;
-	private Composite clientArea;
-	private Composite statusLineArea;
-	private ViewForm contentArea;
-	private ProxyControl toolbarProxy;
-	
-	/**
-	 * Currently selected part
-	 */
-	private IPresentablePart current;
-		
-	/**
-	 * close button
-	 */
-	private ToolItem close;
-	
-	/**
-	 * View menu button
-	 */
-	private ToolItem viewMenu;
-	
-	/**
-	 * Minimize button
-	 */
-	private ToolItem minView;
-	
-	
-	private int style = SWT.VERTICAL | SWT.LEFT;
-	
-	private boolean titleAreaHiden = false;
-	
-	/**
-	 * This listener responds to selection events in all tool items.
-	 */
-	private MouseListener mouseListener = new MouseAdapter() {		
-		// If we single-click on an empty space on the toolbar, move focus to the
-		// active control
-		public void mouseDown(MouseEvent e) {
-			PartItem toolItem = (PartItem) e.widget;
-			IPresentablePart item = getPartForTab(toolItem);
-			if (item != null) {
-				// Clicking on the active tab should give focus to the current
-				// part
-				if (item == current) {
-					item.setFocus();
-				}
-				getSite().selectPart(item);
-				selectPart(item);
-				Point toDisplay = toolItem.toDisplay(new Point(e.x, e.y));
-				if (e.button == 3) {
-					showSystemMenu(toDisplay);
-				} else {
-					Image image = toolItem.getImage();
-					if (image != null) {
-						if (image.getBounds().contains(e.x, e.y)) {
-							showPaneMenu(toDisplay);
-						}
-					}
-				}
-			}
-		}
-	};
-	
-	/**
-	 * Listener attached to all child parts. It responds to changes in part properties
-	 */
-	private IPropertyListener childPropertyChangeListener = new IPropertyListener() {
-		public void propertyChanged(Object source, int property) {			
-			if (source instanceof IPresentablePart) {
-				IPresentablePart part = (IPresentablePart) source;				
-				updatePartItem(getPartItem(part), part);
-			}
-		}	
-	};
-	
-	/**
-	 * Listener attached to all tool items. It removes listeners from the associated
-	 * part when the tool item is destroyed. This is required to prevent memory leaks.
-	 */
-	private DisposeListener tabDisposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget instanceof ToolItem) {
-				PartItem item = (PartItem)e.widget;
-				
-				IPresentablePart part = getPartForTab(item);
-				
-				part.removePropertyListener(childPropertyChangeListener);
-			}
-		}
-	};
-		
-	/** 
-	 * Drag listener for regions outside the toolbar
-	 */
-	Listener dragListener = new Listener() {
-		public void handleEvent(Event event) {
-			Point loc = new Point(event.x, event.y);
-			Control ctrl = (Control)event.widget;
-			
-			getSite().dragStart(ctrl.toDisplay(loc), false);
-		}
-	};
-	
-	private Listener menuListener = new Listener() {
-		public void handleEvent(Event event) {
-			Point globalPos = new Point(event.x, event.y);
-					showSystemMenu(globalPos);
-					return;
-		}
-	};
-
-	private boolean showText;
-
-	private boolean showImage;
-	
-	private MenuManager systemMenuManager= new MenuManager();
-
-	private Listener hideTitleListener = new Listener() {
-
-		public void handleEvent(Event event) {
-			if (!titleAreaHiden) {
-				titleAreaHiden = true;
-				layout();
-			}
-		}
-	};
-	private Listener showTitleListener = new Listener() {
-
-		public void handleEvent(Event event) {
-			if (titleAreaHiden) {
-				titleAreaHiden = false;
-				layout();
-			}
-		}
-	};
-	
-	public SideWinderItemViewPresentation(Composite parent, IStackPresentationSite stackSite, boolean showText, boolean showImage, int style) {
-		super(stackSite);
-		this.showText = showText;
-		this.showImage = showImage;
-		this.style = style;
-		
-		// Create a top-level control for the presentation.
-		presentationControl = new Composite(parent, SWT.NONE);
-		titleArea = new Composite(presentationControl, SWT.NONE);
-		
-		//statusLineArea = new Composite(titleArea, SWT.NONE);
-		//HeapStatusContributionItem item = new HeapStatusContributionItem(PlatformUI.getPreferenceStore());
-		//item.fill(statusLineArea);
-		
-		contentArea = new ViewForm(presentationControl, SWT.NONE);
-		clientArea = new Composite(contentArea, SWT.NONE);
-		clientArea.setVisible(false);
-		
-		contentArea.setContent(clientArea);
-		toolbarProxy = new ProxyControl(contentArea);
-
-		PresentationUtil.addDragListener(titleArea, dragListener);
-		titleArea.addListener(SWT.MenuDetect, menuListener);
-		//titleArea.addListener(SWT.MouseEnter, showTitleListener);
-		//titleArea.addListener(SWT.MouseExit, hideTitleListener);
-		
-		RowLayout rowLayout = new RowLayout ();
-		rowLayout.marginLeft = 0;
-		rowLayout.marginRight = 0;
-		rowLayout.marginTop = 0;
-		rowLayout.marginBottom = 0;
-		rowLayout.type = style;
-		//rowLayout.justify = true;
-		if((style & SWT.VERTICAL) != 0) {
-			rowLayout.fill = true;
-		}
-		rowLayout.spacing = 0;
-		titleArea.setLayout (rowLayout);
-		
-		// Add a dispose listener. This will call the presentationDisposed()
-		// method when the widget is destroyed.
-		presentationControl.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				presentationDisposed();
-			}
-		});
-
-		presentationControl.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				int borderWidth = getBorderWidth();
-				Rectangle clientArea = presentationControl.getClientArea();			
-				e.gc.setLineWidth(borderWidth);			
-				if(activeFocus)
-					e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLUE));
-				else 
-					e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_DARK_GRAY));
-				e.gc.drawRectangle(clientArea.x, clientArea.y, clientArea.width, clientArea.height);
-				Rectangle contentAreaBounds = contentArea.getBounds();
-				int ypos = contentAreaBounds.y - 1;				
-				//e.gc.drawLine(clientArea.x, ypos, clientArea.x + clientArea.width, ypos);
-			}			
-		});			
-		createSystemMenu();
-		update();
-	}
-
-	public IPresentablePart getCurrent() {
-		return current;
-	}
-	
-	protected void presentationDisposed() {
-	    // Remove any listeners that were attached to any
-		// global Eclipse resources. This is necessary in order to prevent
-		// memory leaks.
-	}
-	
-	protected int getBorderWidth() {
-		return 2;
-	}
-	
-	public void showSystemMenu(Point displayPos) {
-		Menu aMenu = systemMenuManager.createContextMenu(titleArea);
-		systemMenuManager.update(true);
-		aMenu.setLocation(displayPos.x, displayPos.y);
-		aMenu.setVisible(true);		
-	}
-	
-	private final void createSystemMenu() {
-		getSite().addSystemActions(systemMenuManager);
-		// This example presentation includes the part list at the end of the system menu
-		systemMenuManager.add(new Separator());
-		systemMenuManager.add(new ClosePartContributionItem(this));
-		systemMenuManager.add(new Separator());
-		
-		
-		Action topAction = new Action("Top", IAction.AS_RADIO_BUTTON) {
-			public void run() {
-				SideWinderItemViewPresentation.this.style = SWT.TOP;
-				setChecked((SideWinderItemViewPresentation.this.style & SWT.TOP) != 0);
-				update();
-			}			
-		};
-		topAction.setChecked((style & SWT.TOP) != 0);
-		systemMenuManager.add(topAction);	
-		
-		Action bottomAction = new Action("Bottom", IAction.AS_RADIO_BUTTON) {
-			public void run() {
-				SideWinderItemViewPresentation.this.style = SWT.BOTTOM;
-				setChecked((SideWinderItemViewPresentation.this.style & SWT.BOTTOM) != 0);
-				update();
-			}			
-		};
-		bottomAction.setChecked((style & SWT.BOTTOM) != 0);
-		systemMenuManager.add(bottomAction);	
-		
-		Action rightAction = new Action("Right", IAction.AS_RADIO_BUTTON) {
-			public void run() {
-				SideWinderItemViewPresentation.this.style = SWT.RIGHT;
-				setChecked((SideWinderItemViewPresentation.this.style & SWT.RIGHT) != 0);
-				update();
-			}			
-		};
-		rightAction.setChecked((style & SWT.RIGHT) != 0);
-		systemMenuManager.add(rightAction);	
-		
-		Action leftAction = new Action("Left", IAction.AS_RADIO_BUTTON) {
-			public void run() {
-				SideWinderItemViewPresentation.this.style = SWT.LEFT;
-				setChecked((SideWinderItemViewPresentation.this.style & SWT.LEFT) != 0);
-				update();
-			}			
-		};		
-		leftAction.setChecked((style & SWT.VERTICAL) != 0);	
-		systemMenuManager.add(leftAction);	
-		
-		systemMenuManager.add(new Separator());
-		Action textAction = new Action("Text", IAction.AS_CHECK_BOX) {
-			public void run() {
-				SideWinderItemViewPresentation.this.showText = isChecked();
-				setChecked(SideWinderItemViewPresentation.this.showText);
-				update();
-			}
-		};
-		textAction.setChecked(showText);
-		systemMenuManager.add(textAction);	
-		Action imageAction = new Action("Image", IAction.AS_CHECK_BOX) {
-			public void run() {
-				SideWinderItemViewPresentation.this.showImage = isChecked();
-				setChecked(isChecked());
-				update();
-			}
-		};
-		imageAction.setChecked(showImage);
-		systemMenuManager.add(imageAction);	
-	}
-	
-	protected void update() {
-		Control[] items = titleArea.getChildren();	
-		for (int idx = 0; idx < items.length; idx++) {
-			if(items[idx] instanceof PartItem) {
-			PartItem item = (PartItem)items[idx];	
-			item.setShowImage(showImage);
-			item.setShowText(showText);
-			item.setFocus(activeFocus);
-			}
-		}
-		int type = SWT.VERTICAL;
-		if ((style & SWT.TOP) != 0 || (style & SWT.BOTTOM) != 0) {
-			type = SWT.HORIZONTAL;
-		}		
-		RowLayout rowLayout = ((RowLayout)titleArea.getLayout());
-		rowLayout.type = type;
-		rowLayout.fill = type == SWT.VERTICAL;
-		
-		layout();
-		presentationControl.redraw();
-		//titleArea.redraw();
-		//titleArea.layout();
-		//contentArea.layout();
-	}
-
-	public void close(IPresentablePart[] parts) {
-		getSite().close(parts);
-	}
-	
-	public void layout() {
-		// Determine the inner bounds of the presentation
-		Rectangle presentationClientArea = presentationControl.getClientArea();
-		presentationClientArea.x += getBorderWidth();
-		presentationClientArea.width -= getBorderWidth() * 2;
-		presentationClientArea.y += getBorderWidth();
-		presentationClientArea.height -= getBorderWidth() * 2;
-		
-		if ((style & SWT.TOP) != 0 || (style & SWT.BOTTOM) != 0) {
-			Point p = titleArea.computeSize(presentationClientArea.width, SWT.DEFAULT);
-			int yy = 0;
-			int x = 0;
-			int y = 0;
-			if((style & SWT.TOP) != 0) {
-				x = presentationClientArea.x;
-				y = presentationClientArea.y;
-				yy = p.y + 1;
-			} else {
-				x = presentationClientArea.x;
-				y = presentationClientArea.height - p.y;
-				yy = presentationClientArea.y;
-			}
-			if(titleAreaHiden)
-				p.y = 3;
-			titleArea.setBounds(x, y, presentationClientArea.width, p.y);
-			contentArea.setBounds(presentationClientArea.x, yy, presentationClientArea.width, presentationClientArea.height - p.y);
-		} else {
-			Point p = titleArea.computeSize(SWT.DEFAULT, presentationClientArea.height);
-			int xx = 0;
-			int x = 0;
-			int y = 0;
-			if((style & SWT.RIGHT) != 0) {
-				x = presentationClientArea.width - p.x;
-				y = presentationClientArea.y;
-				xx = presentationClientArea.x;
-			} else {
-				x = presentationClientArea.x;
-				y = presentationClientArea.y;
-				xx = p.x +1;
-			}	
-			if(titleAreaHiden)
-				p.x = 3;
-			titleArea.setBounds(x, y, p.x, presentationClientArea.height);
-			contentArea.setBounds(xx, presentationClientArea.y, presentationClientArea.width - p.x, presentationClientArea.height);
-		}
-				
-		//Rectangle r = titleArea.getBounds();
-		//Point p = titleArea.computeSize(SWT.DEFAULT, r.height);
-		//statusLineArea.setBounds(r);
-		
-		titleArea.setBackground(titleArea.getDisplay().getSystemColor(SWT.COLOR_GRAY));
-				
-		// Position the view's widgets
-		if (current != null) {
-			Control toolbar = current.getToolBar();
-			if(toolbar != null) {
-				toolbarProxy.setTargetControl(current.getToolBar());
-				contentArea.setTopCenter(toolbarProxy.getControl());
-			} else { 
-				contentArea.setTopCenter(null);
-			}
-			contentArea.layout();
-			
-			Rectangle clientRectangle = clientArea.getBounds();
-			Point clientAreaStart = presentationControl.getParent().toControl(
-					contentArea.toDisplay(clientRectangle.x, clientRectangle.y));
-			// current isn't parented by this widget hierarchy, the coordinates must be
-			// relative to the workbench window. The workbench window parents every
-			// part.
-			current.setBounds(new Rectangle(clientAreaStart.x, 
-					clientAreaStart.y,
-					clientRectangle.width, 
-					clientRectangle.height));
-		}		
-	}
-	
-	public void setBounds(Rectangle bounds) {
-		presentationControl.setBounds(bounds);
-		layout();
-	}
-
-	public void dispose() {
-	}
-
-	public void setActive(int newState) {
-		activeFocus = (newState == AS_ACTIVE_FOCUS);
-		Control[] items = titleArea.getChildren();	
-		for (int idx = 0; idx < items.length; idx++) {
-			if(items[idx] instanceof PartItem) {
-			PartItem item = (PartItem)items[idx];	
-			item.setFocus(activeFocus);
-			}
-		}
-		presentationControl.redraw();
-	}
-
-	public void setVisible(boolean isVisible) {
-		presentationControl.setVisible(isVisible);
-		
-		// Make the currently visible part visible
-		if (current != null) {
-			current.setVisible(isVisible);			
-		}
-
-		if (isVisible) {
-			// Restore the bounds of the currently visible part. 
-			// IPartPresentations can be used by multiple StackPresentations,
-			// although only one such presentation is ever visible at a time.
-			// It is possible that some other presentation has changed the
-			// bounds of the part since it was last visible, so we need to
-			// update the part's bounds when the presentation becomes visible.
-			layout();
-		}
-	}
-
-	public void setState(int state) {
-	}
-
-	public Control getControl() {
-		return presentationControl;
-	}
-
-	public void addPart(IPresentablePart newPart, Object cookie) {
-		// Ignore the cookie for now, since we don't support drag-and-drop yet.
-		PartItem item = new PartItem(titleArea, newPart);
-		
-		// Attach the newPart pointer to the ToolItem. This is used for getPartForTab
-		// to determine which part is associated with the tool item
-		item.setData(PART_DATA, newPart);
-		
-		// Attach a property change listener to the part. This will update the ToolItem
-		// to reflect changes in the part.
-		newPart.addPropertyListener(childPropertyChangeListener);
-		
-		// Attach a dispose listener to the item. This removes the above property
-		// change listener from the part when the item is destroyed. This prevents
-		// memory leaks.
-		item.addDisposeListener(tabDisposeListener);
-		
-		// Listen to selection events in the new tool item
-		item.addMouseListener(mouseListener);
-		
-		PresentationUtil.addDragListener(item, new Listener() {
-			public void handleEvent(Event event) {
-				Point loc = new Point(event.x, event.y);
-				PartItem item = (PartItem)event.widget;
-				if (item != null) {
-				   // Move the current part
-				   IPresentablePart draggedItem = getPartForTab(item);
-				   draggedItem.setFocus();
-				getSite().dragStart(draggedItem, item.toDisplay(loc), false);
-				}
-			}
-		});
-
-		// Initialize the tab for this part
-		updatePartItem(item, newPart);
-			
-		newPart.setBounds(clientArea.getBounds());
-		titleArea.layout();
-		titleArea.redraw();
-		update();		
-	}
-	
-	protected void updatePartItem(PartItem item, IPresentablePart part) {
-		String tabName = part.getTitle();
-		if(item == null) return;
-		if (!tabName.equals(item.getText())) {
-			item.setText(tabName);
-		}
-		
-		if (!(part.getTitleToolTip().equals(item.getToolTipText()))) {
-			item.setToolTipText(part.getTitleToolTip());
-		}
-
-		item.setImage(part.getTitleImage());
-		item.setShowImage(showImage);
-		item.setShowText(showText);
-		titleArea.layout(true);
-		titleArea.redraw();
-		item.redraw();
-	}
-	
-	protected final PartItem getPartItem(IPresentablePart part) {
-		if (!titleArea.isDisposed()) {
-			Control[] items = titleArea.getChildren();
-			for (int idx = 0; idx < items.length; idx++) {
-				Control item = items[idx];
-				if (!item.isDisposed() && getPartForTab(item) == part) {
-					return (PartItem) item;
-				}
-			}
-		}
-		return null;
-	}
-	
-	protected final IPresentablePart getPartForTab(Control item) {
-		return (IPresentablePart)item.getData(PART_DATA);
-	}
-
-	public void removePart(IPresentablePart oldPart) {
-		PartItem item = getPartItem(oldPart);
-		if(item != null) {
-			item.dispose();
-			titleArea.layout();
-			titleArea.redraw();
-		}
-	}
-
-	public void selectPart(IPresentablePart toSelect) {
-		if (toSelect == current) {
-			return;
-		}
-		
-		if(current !=null) {
-			current.setVisible(false);
-		}
-		
-		// Select the new part
-		current = toSelect;
-		
-		// Ordering is important here. We need to make the part
-		// visible before updating its bounds, or the call to setBounds
-		// may be ignored.
-		
-		if (current != null) {
-			// Make the newly selected part visible
-			current.setVisible(true);
-			Control[] items = titleArea.getChildren();
-			for (int idx = 0; idx < items.length; idx++) {
-				if(items[idx] instanceof PartItem) {
-				PartItem item = (PartItem)items[idx];
-				item.setSelected(getPartForTab(item) == current);
-				}
-			}
-		}
-		// Update the bounds of the newly selected part
-		layout();
-	}
-
-	public StackDropResult dragOver(Control currentControl, Point location) {
-		return null;
-	}
-
-	public void showSystemMenu() {
-	}
-
-	public void showPaneMenu() {
-		
-	}
-	
-	public void showPaneMenu(Point location) {
-		if (current == null) {
-			return;
-		}
-		
-		IPartMenu menu = current.getMenu();
-		
-		if (menu == null) {
-			return;
-		}
-
-		menu.showMenu(location);
-	}
-
-	public Control[] getTabList(IPresentablePart part) {
-		if(current != null) {
-			return new Control[] {current.getControl()};
-		} else {
-			return new Control[0];
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderPresentationFactory.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderPresentationFactory.java
deleted file mode 100644
index c4ad6fd..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderPresentationFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.sidewinder;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.*;
-
-/**
- * @since 3.0
- */
-public class SideWinderPresentationFactory extends AbstractPresentationFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createEditorPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createEditorPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new SideWinderItemViewPresentation(parent, site, true, true, SWT.HORIZONTAL | SWT.TOP);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createViewPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new SideWinderItemViewPresentation(parent, site,  false, true, SWT.HORIZONTAL | SWT.TOP);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createStandaloneViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite, boolean)
-	 */
-	public StackPresentation createStandaloneViewPresentation(Composite parent,
-			IStackPresentationSite site, boolean showTitle) {
-		return new SideWinderItemViewPresentation(parent, site, false, true, SWT.HORIZONTAL | SWT.TOP);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ChangeStackStateContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ChangeStackStateContributionItem.java
deleted file mode 100644
index 7a9310b..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ChangeStackStateContributionItem.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-
-/**
- * Contributions for supporting maximizing, minimizing, and restoring the state of
- * a stack presentation.
- * 
- * @since 3.0
- */
-public class ChangeStackStateContributionItem extends ContributionItem {
-
-	private IStackPresentationSite site;
-	
-	public ChangeStackStateContributionItem(IStackPresentationSite site) {
-		this.site = site;
-	}
-
-    public void dispose() {
-    	super.dispose();
-    }
-    
-    public void fill(Menu menu, int index) {
-		if(site.supportsState(IStackPresentationSite.STATE_MAXIMIZED) && site.getState() != IStackPresentationSite.STATE_MAXIMIZED) {
-			MenuItem item1 = new MenuItem(menu, SWT.PUSH, index);
-			item1.setText("&Maximize");
-			item1.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					site.setState(IStackPresentationSite.STATE_MAXIMIZED);
-				}
-			});
-		}
-		if(site.getState() != IStackPresentationSite.STATE_RESTORED)  {
-			MenuItem item = new MenuItem(menu, SWT.PUSH, index);
-			item.setText("&Restore");
-			item.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					site.setState(IStackPresentationSite.STATE_RESTORED);
-				}
-			});
-		}		
-    }
-    
-	public boolean isDynamic() {
-		return true;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseAllContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseAllContributionItem.java
deleted file mode 100644
index bdbf993..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseAllContributionItem.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-
-/**
- * @since 3.0
- */
-public class CloseAllContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			presentation.close(presentation.getParts());
-		}
-	};
-	
-	public CloseAllContributionItem(WrappedTabsPartPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-    	if (presentation.getParts().length > 1) {
-			MenuItem item = new MenuItem(menu, SWT.NONE, index);
-			item.setText("Close all");
-			item.addSelectionListener(selectionListener);
-    	}
-    }
-    
-    public boolean isDynamic() {
-    	// Returning true here ensures that the fill(...) method will be called whenever
-    	// the context menu opens
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseContributionItem.java
deleted file mode 100644
index 00fa19a..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseContributionItem.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-/**
- * @since 3.0
- */
-public class CloseContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			presentation.close(new IPresentablePart[] {presentation.getCurrent()});
-		}
-	};
-	
-	public CloseContributionItem(WrappedTabsPartPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-		MenuItem item = new MenuItem(menu, SWT.NONE, index);
-		item.setText("Close");
-		item.addSelectionListener(selectionListener);
-		
-		IPresentablePart current = presentation.getCurrent();
-		item.setEnabled(current != null);
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseOthersContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseOthersContributionItem.java
deleted file mode 100644
index 3be37ea..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseOthersContributionItem.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-/**
- * @since 3.0
- */
-public class CloseOthersContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			IPresentablePart current = presentation.getCurrent();
-			List parts = Arrays.asList(presentation.getParts());
-			List otherParts = new LinkedList();
-			otherParts.addAll(parts);
-			otherParts.remove(current);
-			presentation.close((IPresentablePart[]) otherParts.toArray(new IPresentablePart[otherParts.size()]));
-		}
-	};
-	
-	public CloseOthersContributionItem(WrappedTabsPartPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-    	if (presentation.getParts().length > 1) {
-			MenuItem item = new MenuItem(menu, SWT.NONE, index);
-			item.setText("Close others");
-			item.addSelectionListener(selectionListener);
-			
-			IPresentablePart current = presentation.getCurrent();
-			item.setEnabled(current != null);
-    	}
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/PartListContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/PartListContributionItem.java
deleted file mode 100644
index 52ae5c5..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/PartListContributionItem.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-
-/**
- * @since 3.0
- */
-public class PartListContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation;
-	private IStackPresentationSite site;
-	
-	private static final String DATA_ITEM = "org.eclipse.ui.examples.presentation.wrappedtabs.PartListContributionItem.DATA_ITEM"; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			MenuItem item = (MenuItem)e.widget;
-			
-			IPresentablePart part = (IPresentablePart)item.getData(DATA_ITEM);
-			
-			if (part != null) {
-				site.selectPart(part);
-			}
-		}
-	};
-	
-	public PartListContributionItem(WrappedTabsPartPresentation presentation, IStackPresentationSite site) {
-		this.presentation = presentation;
-		this.site = site;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        site = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-    	IPresentablePart[] parts = presentation.getParts();
-    	
-    	// Don't include a part list if there's only one part
-    	if (parts.length <= 1) {
-    		return;
-    	}
-    	
-    	new MenuItem(menu, SWT.SEPARATOR, index++);
-    	
-    	Arrays.sort(parts, new Comparator() {
-			public int compare(Object arg0, Object arg1) {
-				IPresentablePart part0 = (IPresentablePart)arg0;
-				IPresentablePart part1 = (IPresentablePart)arg1;
-				
-				return part0.getName().compareToIgnoreCase(part1.getName());
-			}
-    	});
-    	
-    	for (int i = 0; i < parts.length; i++) {
-			IPresentablePart part = parts[i];
-			
-			MenuItem item = new MenuItem(menu, SWT.NONE, index++);
-			item.setText(part.getName());
-			item.setImage(part.getTitleImage());
-			item.addSelectionListener(selectionListener);
-			item.setData(DATA_ITEM, part);
-		}
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ProxyControl.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ProxyControl.java
deleted file mode 100644
index b9fbf3f..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ProxyControl.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.dnd.SwtUtil;
-
-/**
- * A ProxyControl is an invisible control whose size and position are linked
- * with some target control. That is, when the dummy control is asked for its
- * preferred size it returns the preferred size of the target. Changing the
- * bounds of the dummy control also changes the bounds of the target. This allows 
- * any Composite to lay out a control that isn't one of its children.
- * 
- * <p>
- * For example, imagine you have a ViewForm and a ToolBar that share the same parent
- * and you want the ToolBar to be located in the upper-right corner of the ViewForm.
- * If the ToolBar were a child of the ViewForm, this could be done easily by calling
- * viewForm.setTopRight(toolBar). However, this is impossible since ViewForm.setTopRight
- * will only accept a child control. Instead, we create a ProxyControl as a child
- * of the viewForm, and set the toolbar as its target. The ViewForm will treat
- * the ProxyControl just like any other child, but it will actually be arranging the
- * ToolBar. 
- * </p>
- * <p>For example:
- * </p>
- * <code>
- *      // Create a ViewForm and a ToolBar that are siblings
- * 		ViewForm viewForm = new ViewForm(parent, SWT.NONE);
- * 		ToolBar toolBar = new ToolBar(parent, SWT.NONE);
- * 
- *      // Allow the ViewForm to control the position of the ToolBar by creating
- *      // a ProxyControl in the ViewForm that targets the ToolBar.
- * 		ProxyControl toolBarProxy = new ProxyControl(viewForm);
- * 		toolBarProxy.setTarget(toolBar);
- * 		viewForm.setTopRight(toolBarProxy.getControl());
- * </code>
- * 
- * <p>
- * This is intended to simplify management of view toolbars in the presentation API.
- * Presentation objects have no control over where the view toolbars are created in
- * the widget hierarchy, but they may wish to control the position of the view toolbars
- * using traditional SWT layouts and composites. 
- * </p>
- */
-public class ProxyControl {
-    
-    /**
-     * Invisible dummy control 
-     */
-	private Composite control;
-	
-	/**
-	 * Target control (possibly null)
-	 */
-	private Control target;
-	
-	/**
-	 * Most specific common ancestor between the target and the proxy controls
-	 */
-	private Control commonAncestor;
-	
-	/**
-	 * Visibility state of the proxy control the last time it had a non-null target.
-	 * Note: when the target is set to null, we force the proxy to become invisible
-	 * and use this variable to remember the initial state when we get a new non-null
-	 * target.
-	 */
-	private boolean visible = true;
-	
-	/**
-	 * Dispose listener. Breaks the link between the target and the proxy if either
-	 * control is disposed.
-	 */
-	private DisposeListener disposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget == target || e.widget == control) {
-				setTargetControl(null);
-			}
-		}
-	};
-	
-	private Listener visibilityListener = new Listener() {
-
-        public void handleEvent(Event event) {
-            if (target != null) {
-                visible = control.getVisible();
-                target.setVisible(visible);
-            }
-        }
-	    
-	};
-	
-	/**
-	 * Movement listener. Updates the bounds of the target to match the 
-	 * bounds of the dummy control.
-	 */
-	private ControlListener controlListener = new ControlListener() {
-
-		public void controlMoved(ControlEvent e) {
-			ProxyControl.this.layout();
-		}
-
-		public void controlResized(ControlEvent e) {
-		    //if (e.widget == control) {
-		     //   ProxyControl.this.layout();
-		    //}
-		}
-		
-	};
-	
-	/**
-	 * Creates a new ProxyControl as a child of the given parent. This is an invisible dummy
-	 * control. If given a target, the ProxyControl will update the bounds of the target to
-	 * match the bounds of the dummy control.
-	 * 
-	 * @param parent parent composite
-	 */
-	public ProxyControl(Composite parent) {
-	    // Create the invisible dummy composite
-		control = new Composite(parent, SWT.NO_BACKGROUND);
-		control.setVisible(false);
-		
-		// Attach a layout to the dummy composite. This is used to make the preferred
-		// size of the dummy match the preferred size of the target.
-		control.setLayout(new Layout() {
-			protected void layout (Composite composite, boolean flushCache) {
-			    ProxyControl.this.layout();
-			    // does nothing. The bounds of the target are updated by the controlListener
-			}
-			
-			protected Point computeSize (Composite composite, int wHint, int hHint, boolean flushCache) {
-				if (target == null) {
-				    // Note: If we returned (0,0), SWT would ignore the result and use a default value.
-					return new Point(1,1);
-				}
-				
-				return target.computeSize(wHint, hHint);
-			}
-		});
-		
-		// Attach listeners to the dummy
-		control.addDisposeListener(disposeListener);
-		control.addListener(SWT.Show, visibilityListener);
-		control.addListener(SWT.Hide, visibilityListener);
-	}
-	
-	/**
-	 * Sets the control whose position will be managed by this proxy
-	 * 
-	 * @param target the control, or null if none
-	 */
-	public void setTargetControl(Control target) {
-		if (this.target != target) {
-
-		    if (this.target != null) {
-		        for (Control next = control; next != commonAncestor && next != null; next = next.getParent()) {
-		            next.removeControlListener(controlListener);
-		        }
-		        commonAncestor = null;
-		        
-			    // If we already had a target, detach the dispose listener 
-			    // (prevents memory leaks due to listeners)
-				if (!this.target.isDisposed()) {
-					this.target.removeDisposeListener(disposeListener);
-				}				
-		    }
-			
-			if (this.target == null && target != null) {
-			    // If we had previously forced the dummy control invisible, restore its visibility
-			    control.setVisible(visible);
-			}
-			
-			this.target = target;
-			
-			if (target != null) {
-			    commonAncestor = SwtUtil.findCommonAncestor(this.target, control);
-		        for (Control next = control; next != null && next != commonAncestor; next = next.getParent()) {
-		            next.addControlListener(controlListener);
-		        }
-			    
-			    // Make the new target's visiblity match the visibility of the dummy control
-			    target.setVisible(control.getVisible());
-				// Add a dispose listener. Ensures that the target is cleared
-				// if it is ever disposed.
-				target.addDisposeListener(disposeListener);
-			} else {
-			    control.setVisible(false);
-			}
-		}
-	}
-	
-	/**
-	 * Returns the target control (the control whose size is being managed)
-	 * 
-	 * @return the target control (or null)
-	 */
-	public Control getTargetControl() {
-		if (target == null) {
-			return null;
-		}
-		
-		return target;
-	}
-	
-	/**
-	 * Returns the proxy control
-	 * 
-	 * @return the proxy control (not null)
-	 */
-	public Control getControl() {
-		return control;
-	}
-	
-	public Control getTarget() {
-	    return target;
-	}
-	
-	/**
-	 * Moves the target control on top of the dummy control.
-	 */
-	public void layout() {
-		if (getTargetControl() == null) {
-			return;
-		}
-		
-		// Compute the unclipped bounds of the target in display coordinates
-		Rectangle displayBounds = Geometry.toDisplay(control.getParent(), control.getBounds());
-		
-		// Clip the bounds of the target so that it doesn't go outside the dummy control's parent
-		Rectangle clippingRegion = DragUtil.getDisplayBounds(control.getParent());
-		displayBounds = displayBounds.intersection(clippingRegion);
-		
-		// Compute the bounds of the target, in the local coordinate system of its parent
-		Rectangle targetBounds = Geometry.toControl(getTargetControl().getParent(), displayBounds);
-		
-		// Move the target
-		getTargetControl().setBounds(targetBounds);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ShowToolbarContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ShowToolbarContributionItem.java
deleted file mode 100644
index 299de04..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ShowToolbarContributionItem.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-/**
- * @since 3.0
- */
-public class ShowToolbarContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation;
-	
-	private static final String DATA_ITEM = "org.eclipse.ui.examples.presentation.wrappedtabs.PartListContributionItem.DATA_ITEM"; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			presentation.showToolbar(((MenuItem)e.widget).getSelection());
-		}
-	};
-	
-	public ShowToolbarContributionItem(WrappedTabsPartPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-		MenuItem item = new MenuItem(menu, SWT.CHECK, index);
-		item.setText("S&how toolbar");
-		item.addSelectionListener(selectionListener);
-		item.setSelection(presentation.isShowingToolbar());
-		
-		IPresentablePart current = presentation.getCurrent();
-		item.setEnabled(current != null && current.getToolBar() != null);
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPartPresentation.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPartPresentation.java
deleted file mode 100644
index 0790f20..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPartPresentation.java
+++ /dev/null
@@ -1,1116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.examples.presentation.PresentationImages;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IPresentationSerializer;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.PresentationUtil;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-import org.eclipse.ui.themes.ITheme;
-
-/**
- * @since 3.0
- */
-public class WrappedTabsPartPresentation extends StackPresentation {
-
-	private static class DropLocation {
-		int insertionPosition = 0;
-		IPresentablePart part;
-		boolean before;
-	}
-	
-	private static final String PART_DATA = "part";
-	
-	private boolean activeFocus = false;
-	
-	/**
-	 * Main widget for the presentation
-	 */
-	private Composite presentationControl;
-	
-	/**
-	 * Currently selected part
-	 */
-	private IPresentablePart current;
-	
-	/**
-	 * ToolBar that will be used to select the active presentable part 
-	 */
-	private ToolBar toolBar;
-	
-	/**
-	 * ToolBar that will contain close, minimize, etc.
-	 */
-	private ToolBar upperRight;
-	
-	/**
-	 * close button
-	 */
-	private ToolItem close;
-	
-	/**
-	 * View menu button
-	 */
-	private ToolItem viewMenu;
-	
-	/**
-	 * Minimize button
-	 */
-	private ToolItem minView;
-
-	/**
-	 * Show/hide toolbar button
-	 */
-	private ToolItem showToolbar;
-	
-	private ToolBar titleIconToolbar;
-	
-	/**
-	 * Title icon
-	 */
-	private ToolItem titleIcon;
-	
-	private MenuManager systemMenuManager = new MenuManager();
-	private ViewForm contentArea;
-	
-	private Label contentDescription;
-	private Composite contentDescriptionWrapper;
-	
-	private Composite clientArea;
-	
-	private ProxyControl toolbarProxy;
-	
-	/**
-	 * Listener attached to all child parts. It responds to changes in part properties
-	 */
-	private IPropertyListener childPropertyChangeListener = new IPropertyListener() {
-		public void propertyChanged(Object source, int property) {
-			
-			if (source instanceof IPresentablePart) {
-				IPresentablePart part = (IPresentablePart) source;
-				
-				childPropertyChanged(part, property);
-			}
-		}	
-	};
-
-	/** 
-	 * Drag listener for regions outside the toolbar
-	 */
-	Listener dragListener = new Listener() {
-		public void handleEvent(Event event) {
-			Point loc = new Point(event.x, event.y);
-			Control ctrl = (Control)event.widget;
-			
-			getSite().dragStart(ctrl.toDisplay(loc), false);
-		}
-	};
-	
-	/**
-	 * Listener attached to all tool items. It removes listeners from the associated
-	 * part when the tool item is destroyed. This is required to prevent memory leaks.
-	 */
-	private DisposeListener tabDisposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget instanceof ToolItem) {
-				ToolItem item = (ToolItem)e.widget;
-				
-				IPresentablePart part = getPartForTab(item);
-				
-				part.removePropertyListener(childPropertyChangeListener);
-			}
-		}
-	};
-	
-	/**
-	 * This listener responds to selection events in all tool items.
-	 */
-	SelectionAdapter tabItemSelectionAdapter = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			ToolItem toolItem = (ToolItem) e.widget;
-			IPresentablePart item = getPartForTab(toolItem);
-			if (item != null) {
-				// Clicking on the active tab should give focus to the current part
-				if (item == current) {
-					item.setFocus();
-				}
-				getSite().selectPart(item);
-			}
-			toolItem.setSelection(true);
-		}
-	};
-	
-	/**
-	 * Listener to changes made to the current theme. The presentation will
-	 * redraw when the theme changes.
-	 */
-	private IPropertyChangeListener themeChangeListener = new IPropertyChangeListener() {	
-		public void propertyChange(PropertyChangeEvent event) {
-			if(! presentationControl.isDisposed()) {
-				toolBar.setFont(PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getFontRegistry().get(WrappedTabsThemeConstants.TAB_FONT));
-				layout();
-				presentationControl.redraw();
-			}
-		}
-	};
-	
-	private Listener menuListener = new Listener() {
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		 */
-		public void handleEvent(Event event) {
-			Point globalPos = new Point(event.x, event.y);
-			
-			if (event.widget == toolBar) {
-				Point localPos = toolBar.toControl(globalPos);
-				ToolItem item = toolBar.getItem(localPos);
-					
-				if (item != null) {
-					IPresentablePart part = getPartForTab(item);
-					getSite().selectPart(part);
-					showSystemMenu(globalPos);
-					return;
-				}
-			}
-            
-            IPresentablePart part = getCurrent();
-            if (part != null) {
-                showSystemMenu(globalPos);
-            }
-		}
-	};
-	
-	private MouseListener mouseListener = new MouseAdapter() {
-		
-		// If we single-click on an empty space on the toolbar, move focus to the
-		// active control
-		public void mouseDown(MouseEvent e) {
-			Point p = new Point(e.x, e.y);
-			
-			// Ignore double-clicks if we're currently over a toolbar item
-			if (isOverToolItem(e)) {
-				return;
-			}
-			
-			if (current != null) {
-				current.setFocus();
-			}
-		}
-		
-		public boolean isOverToolItem(MouseEvent e) {
-			Point p = new Point(e.x, e.y);
-			Control control = (Control)e.widget;
-			
-			if (control instanceof ToolBar) {
-				ToolItem item = ((ToolBar)control).getItem(p);
-				
-				if (item != null) {
-					return true;
-				}
-			} 
-			
-			return false;
-			
-		}
-		
-		// If we double-click on the toolbar, maximize the presentation
-		public void mouseDoubleClick(MouseEvent e) {
-			
-			// Ignore double-clicks if we're currently over a toolbar item
-			if (isOverToolItem(e) && e.widget == upperRight) {
-				return;
-			}
-			
-			if (getSite().getState() == IStackPresentationSite.STATE_MAXIMIZED) {
-				getSite().setState(IStackPresentationSite.STATE_RESTORED);
-			} else {
-				getSite().setState(IStackPresentationSite.STATE_MAXIMIZED);
-			}
-		}
-	};
-	
-	private boolean showIconOnTabs;
-	private static final int SPACING_WIDTH = 2;
-
-	private static final String SHOWING_TOOLBAR = "showing_toolbar";
-
-	private static final String TAG_PART = "part";
-	private static final String TAG_ID = "id";
-	private static final String TAG_TOOLBAR = "showing_toolbar";
-	
-	/**
-	 * Creates a new bare-bones part presentation, given the parent composite and 
-	 * an IStackPresentationSite interface that will be used to communicate with 
-	 * the workbench.
-	 * 
-	 * @param stackSite interface to the workbench
-	 */
-	public WrappedTabsPartPresentation(Composite parent, 
-			IStackPresentationSite stackSite, boolean showIconOnTabs) {
-		super(stackSite);		
-		
-		this.showIconOnTabs = showIconOnTabs;
-		
-		// Create a top-level control for the presentation.
-		presentationControl = new Composite(parent, SWT.NONE);
-		
-		// Add a dispose listener. This will call the presentationDisposed()
-		// method when the widget is destroyed.
-		presentationControl.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				presentationDisposed();
-			}
-		});
-		
-		upperRight = new ToolBar(presentationControl, SWT.RIGHT | SWT.FLAT);
-		//initPresentationWidget(upperRight);
-		
-		titleIconToolbar = new ToolBar(presentationControl, SWT.RIGHT | SWT.FLAT);
-		titleIcon = new ToolItem(titleIconToolbar, SWT.PUSH);
-        
-        titleIconToolbar.addListener(SWT.MouseDown, new Listener() {
-            public void handleEvent(Event event) {
-                showPaneMenu();
-            }
-        });
-		titleIconToolbar.addListener(SWT.MenuDetect, menuListener);
-		
-		titleIconToolbar.setVisible(!showIconOnTabs);
-		
-		toolBar = new ToolBar(presentationControl, SWT.WRAP | SWT.RIGHT | SWT.FLAT);
-		toolBar.addListener(SWT.MenuDetect, menuListener);
-		toolBar.addMouseListener(mouseListener);
-		toolBar.setFont(PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getFontRegistry().get(WrappedTabsThemeConstants.TAB_FONT));
-		
-		// Add drag listener to the toolbar
-		PresentationUtil.addDragListener(toolBar, new Listener() {
-			public void handleEvent(Event event) {
-				Point loc = new Point(event.x, event.y);
-				ToolItem item = toolBar.getItem(loc);
-				
-				if (item != null) {
-					// Move the current part
-					IPresentablePart draggedItem = getPartForTab(item);
-					draggedItem.setFocus();
-					getSite().dragStart(draggedItem, toolBar.toDisplay(loc), false);
-				} else {
-					// Move the stack
-					getSite().dragStart(toolBar.toDisplay(loc), false);
-				}
-			}
-			
-		});
-		
-		presentationControl.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				Rectangle clientArea = presentationControl.getClientArea();			
-				e.gc.setLineWidth(getBorderWidth());
-				
-				e.gc.setForeground(getBorderColor());
-				e.gc.drawRectangle(clientArea.x, clientArea.y, clientArea.width-1, clientArea.height-1);
-				Rectangle contentAreaBounds = contentArea.getBounds();
-				int ypos = contentAreaBounds.y - 1;
-				e.gc.drawLine(clientArea.x, ypos, clientArea.x + clientArea.width - 1, ypos);
-			}
-			
-		});
-		initPresentationWidget(presentationControl);
-		
-		contentArea = new ViewForm(presentationControl, SWT.FLAT);
-		initPresentationWidget(contentArea);
-		contentDescriptionWrapper = new Composite(contentArea, SWT.NONE);
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 4;
-		layout.marginHeight = 2;
-		contentDescriptionWrapper.setLayout(layout);
-		
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
-		
-		contentDescription = new Label(contentDescriptionWrapper, SWT.NONE);
-		initPresentationWidget(contentDescription);
-		contentDescription.setLayoutData(data);
-
-		clientArea = new Composite(contentArea, SWT.NONE);
-		clientArea.setVisible(false);
-		
-		contentArea.setContent(clientArea);
-		toolbarProxy = new ProxyControl(contentArea);
-		
-		createButtonBar();
-		
-		createSystemMenu();
-		
-		PlatformUI.getWorkbench().getThemeManager().addPropertyChangeListener(themeChangeListener);
-	}
-	
-	private void initPresentationWidget(Control toInitialize) {
-		PresentationUtil.addDragListener(toInitialize, dragListener);
-		toInitialize.addListener(SWT.MenuDetect, menuListener);
-		toInitialize.addMouseListener(mouseListener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.StackPresentation#restoreState(org.eclipse.ui.presentations.IPresentationSerializer, org.eclipse.ui.IMemento)
-	 */
-	public void restoreState(IPresentationSerializer serializer, IMemento savedState) {
-		IMemento[] parts = savedState.getChildren(TAG_PART);
-		
-		for (int idx = 0; idx < parts.length; idx++) {
-			String id = parts[idx].getString(TAG_ID);
-			
-			if (id != null) {
-				IPresentablePart part = serializer.getPart(id);
-				
-				if (part != null) {
-					addPart(part, null);
-					
-					Integer hasToolbar = parts[idx].getInteger(TAG_TOOLBAR);
-					showToolbar(part, hasToolbar != null && hasToolbar.intValue() != 0);
-				}
-			}
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.StackPresentation#saveState(org.eclipse.ui.presentations.IPresentationSerializer, org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IPresentationSerializer context, IMemento memento) {
-		super.saveState(context, memento);
-		
-		IPresentablePart[] parts = getParts();
-		
-		for (int i = 0; i < parts.length; i++) {
-			IPresentablePart part = parts[i];
-
-			IMemento childMem = memento.createChild(TAG_PART);
-			childMem.putString(TAG_ID, context.getId(part));
-			childMem.putInteger(TAG_TOOLBAR, isShowingToolbar(part) ? 1 : 0);
-		}
-	}
-	
-	public IPresentablePart[] getParts() {
-		ToolItem[] items = toolBar.getItems();
-		IPresentablePart[] result = new IPresentablePart[items.length];
-		
-		for (int idx = 0; idx < items.length; idx++) {
-			ToolItem item = items[idx];
-			
-			IPresentablePart next = getPartForTab(item);
-			
-			result[idx] = next;
-		}
-		
-		return result;
-	}
-	
-	private final void createSystemMenu() {
-		getSite().addSystemActions(systemMenuManager);
-		systemMenuManager.add(new ChangeStackStateContributionItem(getSite()));
-		systemMenuManager.add(new ShowToolbarContributionItem(this));
-		// This example presentation includes the part list at the end of the system menu
-		systemMenuManager.add(new Separator());
-		systemMenuManager.add(new CloseContributionItem(this));
-		systemMenuManager.add(new CloseOthersContributionItem(this));
-		systemMenuManager.add(new CloseAllContributionItem(this));
-		systemMenuManager.add(new PartListContributionItem(this, getSite()));
-	}
-	
-	private void createButtonBar() {
-		viewMenu = new ToolItem(upperRight, SWT.PUSH);
-        upperRight.addListener(SWT.MouseDown, new Listener() {
-            public void handleEvent(Event event) {
-                Point p = new Point(event.x, event.y);
-                Rectangle r = viewMenu.getBounds();
-                
-                if (r.contains(p)) {
-                    showSystemMenu();
-                }
-            }
-        });
-		viewMenu.setImage(PresentationImages.getImage(PresentationImages.VIEW_MENU));
-	
-		showToolbar = new ToolItem(upperRight, SWT.PUSH);        
-        showToolbar.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                showToolbar(!isShowingToolbar());
-            }
-        });
-        	
-		if (getSite().supportsState(IStackPresentationSite.STATE_MINIMIZED)) {
-			minView = new ToolItem(upperRight, SWT.PUSH);
-			minView.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (current != null) {
-						if (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) {
-							getSite().setState(IStackPresentationSite.STATE_RESTORED);
-						} else {
-							getSite().setState(IStackPresentationSite.STATE_MINIMIZED);
-						}	
-					}
-				}				
-			});
-		}
-		
-		close = new ToolItem(upperRight, SWT.PUSH);
-		close.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (current != null) {
-					getSite().close(new IPresentablePart[] {current});
-				}
-			}
-			
-		});
-		close.setImage(PresentationImages.getImage(PresentationImages.CLOSE_VIEW));
-		
-		updateToolbarImages();
-	}
-	
-	private void updateToolbarImages() {
-		if (isShowingToolbar()) {
-			showToolbar.setImage(PresentationImages.getImage(PresentationImages.HIDE_TOOLBAR));
-		} else {
-			showToolbar.setImage(PresentationImages.getImage(PresentationImages.SHOW_TOOLBAR));
-		}
-
-		if (minView != null) {
-			String minImage = (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) ?
-					PresentationImages.RESTORE_VIEW : PresentationImages.MIN_VIEW;
-			minView.setImage(PresentationImages.getImage(minImage));
-		}
-		
-		upperRight.pack(true);
-		upperRight.redraw();
-	}
-	
-	public void refreshButtonBarEnablement() {
-		close.setEnabled(current != null && getSite().isCloseable(current));
-		titleIcon.setEnabled(current != null && current.getMenu() != null);
-		showToolbar.setEnabled(current != null && current.getToolBar() != null);
-	}
-
-	public void dispose() {
-		// Dispose the main presentation widget. This will cause 
-		// presentationDisposed to be called, which will do the real cleanup.
-		presentationControl.dispose();
-	}
-	
-	/**
-	 * Perform any cleanup. This method should remove any listeners that were
-	 * attached to other objects. This gets called when the presentation
-	 * widget is disposed. This is safer than cleaning up in the dispose() 
-	 * method, since this code will run even if some unusual circumstance 
-	 * destroys the Shell without first calling dispose().
-	 */
-	protected void presentationDisposed() {
-	    // Remove any listeners that were attached to any
-		// global Eclipse resources. This is necessary in order to prevent
-		// memory leaks.
-		PlatformUI.getWorkbench().getThemeManager().removePropertyChangeListener(themeChangeListener);
-	}
-
-	public void setBounds(Rectangle bounds) {
-		Rectangle newBounds = Geometry.copy(bounds);
-		
-		if (newBounds.width == 0) {
-			// Workaround a bug in the Eclipse 3.0 release: minimized presentations will be
-			// given a width of 0.
-			newBounds.width = presentationControl.getBounds().width;
-		}
-		
-		if (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) {
-			newBounds.height = computeMinimumSize().y;
-		}
-		
-		// Set the bounds of the presentation widge
-		presentationControl.setBounds(newBounds);
-		
-		// Update the bounds of the currently visible part
-		layout();
-	}
-	
-	/**
-	 * Lay out the presentation's widgets
-	 */
-	private void layout() {
-		
-		// Determine the inner bounds of the presentation
-		Rectangle presentationClientArea = presentationControl.getClientArea();
-		presentationClientArea.x += getBorderWidth();
-		presentationClientArea.width -= getBorderWidth() * 2;
-		presentationClientArea.y += getBorderWidth();
-		presentationClientArea.height -= getBorderWidth() * 2;
-		
-		// Position the upper-right toolbar
-		Point upperRightSize = upperRight.getSize();
-		int upperRightStartX = presentationClientArea.x + presentationClientArea.width - upperRightSize.x - SPACING_WIDTH;
-
-		Rectangle upperRightBounds = new Rectangle(upperRightStartX,
-				presentationClientArea.y + SPACING_WIDTH, upperRightSize.x, upperRightSize.y);
-		
-		upperRight.setBounds(upperRightBounds);
-		
-		int tabStart = presentationClientArea.x + SPACING_WIDTH + 1;
-		int verticalSpaceRequired = 0;
-		if (!showIconOnTabs) {
-			Point upperLeftSize;
-
-			upperLeftSize = titleIconToolbar.getSize();
-			Rectangle upperLeftBounds = new Rectangle(presentationClientArea.x + SPACING_WIDTH, 
-					presentationClientArea.y + SPACING_WIDTH,
-					upperLeftSize.x, upperLeftSize.y);
-			
-			titleIconToolbar.setBounds(upperLeftBounds);
-
-			tabStart = upperLeftBounds.x + upperLeftBounds.width + SPACING_WIDTH;
-			verticalSpaceRequired = upperLeftSize.y;
-		} 
-		
-		int availableTabWidth = upperRightStartX - tabStart - SPACING_WIDTH;
-		
-		Point toolbarSize = toolBar.computeSize(availableTabWidth, SWT.DEFAULT);
-		int minToolbarWidth = WrappedTabsUtil.getMaximumItemWidth(toolBar);
-				
-		toolBar.setBounds(tabStart,
-				presentationClientArea.y + SPACING_WIDTH, 
-				availableTabWidth, toolbarSize.y);
-		
-		verticalSpaceRequired = Math.max(verticalSpaceRequired, upperRightSize.y);
-		verticalSpaceRequired = Math.max(verticalSpaceRequired, toolbarSize.y);
-		
-		int verticalOffset = presentationClientArea.y + verticalSpaceRequired + getBorderWidth() + 2 * SPACING_WIDTH;
-		
-		contentArea.setBounds(presentationClientArea.x, verticalOffset, 
-				presentationClientArea.width, presentationClientArea.height - verticalOffset);
-		
-		if (isShowingToolbar()) {
-			contentArea.setTopLeft(contentDescriptionWrapper);
-			contentArea.setTopCenter(toolbarProxy.getControl());
-		} else {
-			contentArea.setTopLeft(null);
-			contentArea.setTopCenter(null);
-		}
-		
-		contentArea.layout();
-		
-		// Position the view's widgets
-		if (current != null) {
-			Rectangle clientRectangle = clientArea.getBounds();
-			Point clientAreaStart = presentationControl.getParent().toControl(
-					contentArea.toDisplay(clientRectangle.x, clientRectangle.y));
-			
-			current.setBounds(new Rectangle(clientAreaStart.x, 
-					clientAreaStart.y,
-					clientRectangle.width, 
-					clientRectangle.height));
-		}
-		
-	}
-
-	private int getBorderWidth() {
-		return PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getInt(WrappedTabsThemeConstants.BORDER_SIZE);
-	}
-
-	public Point computeMinimumSize() {
-		Point minSize = new Point(100, 16);
-		Point upperLeftSize = titleIconToolbar.getSize();
-		Point toolBarSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT, false);
-		
-		int BORDER_WIDTH = getBorderWidth();
-		Point result = new Point(minSize.x + upperLeftSize.x + 3 * SPACING_WIDTH + 2 * BORDER_WIDTH, 
-				Math.max(Math.max(upperLeftSize.y, minSize.y), toolBarSize.y) 
-				+ 2 * SPACING_WIDTH + 2 * BORDER_WIDTH);
-		
-		return result;
-	}
-
-	public void setVisible(boolean isVisible) {
-		
-		// Make the presentation widget visible
-		presentationControl.setVisible(isVisible);
-		
-		// Make the currently visible part visible
-		if (current != null) {
-			current.setVisible(isVisible);
-			if (current.getToolBar() != null) {
-				current.getToolBar().setVisible(isVisible && isShowingToolbar());
-			}
-		}
-
-		if (isVisible) {
-			// Restore the bounds of the currently visible part. 
-			// IPartPresentations can be used by multiple StackPresentations,
-			// although only one such presentation is ever visible at a time.
-			// It is possible that some other presentation has changed the
-			// bounds of the part since it was last visible, so we need to
-			// update the part's bounds when the presentation becomes visible.
-			layout();
-		}
-	}
-
-	private void clearSelection() {
-		// If there was an existing part selected, make it invisible
-		if (current != null) {
-			current.setVisible(false);
-		}
-
-		current = null;
-	}
-	
-	public void currentPartChanged() {
-		boolean layoutNeeded = false;
-		
-		if (titleIcon.getImage() != current.getTitleImage()) {
-			titleIcon.setImage(current.getTitleImage());
-			titleIcon.setDisabledImage(current.getTitleImage());
-			titleIconToolbar.pack(true);
-			titleIconToolbar.redraw();
-			
-			layoutNeeded = true;
-		}
-		
-		if (!contentDescription.getText().equals(current.getTitleStatus())) {
-			contentDescription.setText(current.getTitleStatus());
-			
-			layoutNeeded = true;
-		}
-			
-		if (current.getToolBar() != null) {
-			if (isShowingToolbar()) {
-				current.getToolBar().setVisible(true);
-				layoutNeeded = true;
-			} else {
-				current.getToolBar().setVisible(false);
-			}
-			
-			toolbarProxy.setTargetControl(current.getToolBar());
-		}
-		
-		if (layoutNeeded) {
-			layout();
-		}
-	}
-	
-	public void selectPart(IPresentablePart toSelect) {
-		// Ignore redundant selections
-		if (toSelect == current) {
-			return;
-		}
-		
-		clearSelection();
-		
-		// Select the new part
-		current = toSelect;
-		
-		// Ordering is important here. We need to make the part
-		// visible before updating its bounds, or the call to setBounds
-		// may be ignored.
-		
-		if (current != null) {
-			// Make the newly selected part visible
-			current.setVisible(true);
-			
-			ToolItem[] items = toolBar.getItems();
-			
-			for (int idx = 0; idx < items.length; idx++) {
-				ToolItem item = items[idx];
-				
-				item.setSelection(getPartForTab(item) == current);
-			}
-			
-			currentPartChanged();
-		}
-		
-		refreshButtonBarEnablement();
-		updateToolbarImages();
-		
-		// Update the bounds of the newly selected part
-		layout();
-	}
-
-	public Control[] getTabList(IPresentablePart part) {
-		return new Control[] {part.getControl()};
-	}
-
-	public Control getControl() {
-		return presentationControl;
-	}
-
-	private int indexOf(IPresentablePart part) {
-		ToolItem item = getTab(part);
-		
-		if (item == null) {
-			return -1;
-		}
-		
-		return toolBar.indexOf(item); 
-	}
-	
-	public void addPart(IPresentablePart newPart, Object cookie) {
-		if (getTab(newPart) != null) {
-			return;
-		}
-		
-		int position = toolBar.getItemCount();
-		
-		// If this part is being added due to a drag/drop operation,
-		// determine the correct insertion position
-		if (cookie instanceof DropLocation) {
-			DropLocation location = (DropLocation)cookie;
-			
-			position = indexOf(location.part);
-			
-			// If we can't find the tab, then fall back to the
-			// insertionPosition field
-			if (position == -1) {
-				position = location.insertionPosition;
-			} else {
-				if (!location.before) {
-					position++;
-				}
-			}
-		}
-		
-		// Ignore the cookie for now, since we don't support drag-and-drop yet.
-		ToolItem toolItem = new ToolItem(toolBar, SWT.RADIO, position);
-		
-		// Attach the newPart pointer to the ToolItem. This is used for getPartForTab
-		// to determine which part is associated with the tool item
-		toolItem.setData(PART_DATA, newPart);
-		
-		// Attach a property change listener to the part. This will update the ToolItem
-		// to reflect changes in the part.
-		newPart.addPropertyListener(childPropertyChangeListener);
-		
-		// Attach a dispose listener to the item. This removes the above property
-		// change listener from the part when the item is destroyed. This prevents
-		// memory leaks.
-		toolItem.addDisposeListener(tabDisposeListener);
-		
-		// Listen to selection events in the new tool item
-		toolItem.addSelectionListener(tabItemSelectionAdapter);
-		
-		// Initialize the tab for this part
-		initTab(toolItem, newPart);
-		
-		layout();
-		
-		toolBar.layout(true);
-		presentationControl.redraw();
-	}
-
-	protected void initTab(ToolItem item, IPresentablePart part) {
-		String tabName = getTabText(part);
-		
-		if (!tabName.equals(item.getText())) {
-			item.setText(tabName);
-		}
-		
-		if (!(part.getTitleToolTip().equals(item.getToolTipText()))) {
-			item.setToolTipText(part.getTitleToolTip());
-		}
-
-		if (showIconOnTabs && part.getTitleImage() != item.getImage()) {
-			item.setImage(part.getTitleImage());
-		}
-		
-	}
-	
-	/**
-	 * Returns the decorated tab text for the given part. By default, we attach 
-	 * a star to indicate dirty tabs.
-	 * 
-	 * @param part part whose text is being computed
-	 * @return the decorated tab text for the given part
-	 */
-	protected String getTabText(IPresentablePart part) {
-		String result = part.getName();
-		
-		if (part.isDirty()) {
-			result = "*" + result;
-		}
-		
-		return result;
-	}
-	
-	/**
-	 * Removes the given part from the stack.
-	 * 
-	 * @param oldPart the part to remove (not null)
-	 */
-	public void removePart(IPresentablePart oldPart) {
-		// If we're removing the currently selected part, clear the selection
-		if (oldPart == current) {
-			clearSelection();
-			refreshButtonBarEnablement();
-		}
-		
-		ToolItem item = getTab(oldPart);
-		
-		// Don't need to do anything if the part has already been removed
-		if (item == null) {
-			return;
-		}
-		
-		// Dispose the tab. The dispose listener on the item
-		// will handle all the cleanup.
-		item.dispose();
-		
-		layout();
-		
-		presentationControl.redraw();
-	}
-
-	/**
-	 * Called whenever a property changes for one of the parts in this
-	 * presentation. 
-	 * 
-	 * @param part
-	 * @param property
-	 */
-	protected void childPropertyChanged(IPresentablePart part, int property) {
-		ToolItem toolItem = getTab(part);
-		
-		// If there is no tab for this part, just ignore the property change
-		if (toolItem == null) {
-			return;
-		}
-		
-		initTab(toolItem, part);
-		
-		if (part == current) {
-			currentPartChanged();
-		}
-	}
-
-	/**
-	 * Returns the tab associated with the given part or null if none 
-	 * 
-	 * @param part the part to check for
-	 * @return the tab associated with the given part or null if none
-	 */
-	protected final ToolItem getTab(IPresentablePart part) {
-		ToolItem[] items = toolBar.getItems();
-		
-		for (int idx = 0; idx < items.length; idx++) {
-			ToolItem item = items[idx];
-			
-			if (getPartForTab(item) == part) {
-				return item;
-			}
-		}
-			
-		return null;
-	}
-	
-	/**
-	 * Returns the part associated with the given tab, or null if none.
-	 * 
-	 * @param item the tab to query
-	 * @return the part associated with the given tab or null if none
-	 */
-	protected final IPresentablePart getPartForTab(ToolItem item) {
-		return (IPresentablePart)item.getData(PART_DATA);
-	}
-	
-	public StackDropResult dragOver(Control currentControl, Point location) {		
-		Point localCoordinates = toolBar.toControl(location);
-		
-		// Ignore drag operations that aren't on top of the toolbar we're using
-		// for tabs.
-		if (toolBar.getClientArea().contains(localCoordinates)) {
-			DropLocation dropLocation = new DropLocation();
-			
-			ToolItem item = toolBar.getItem(localCoordinates);
-			
-			if (item == null) {
-				item = toolBar.getItem(toolBar.getItemCount() - 1);
-			}
-			
-			Rectangle itemBounds = item.getBounds();
-			dropLocation.before = (localCoordinates.x - itemBounds.x < itemBounds.width / 2);
-			dropLocation.part = getPartForTab(item);
-			// Also store the current index of the part we're dragging over. We will use
-			// the index if the part no longer exists at the time the drop occurs (ie:
-			// if we're dragging an item over itself)
-			dropLocation.insertionPosition = toolBar.indexOf(item);
-			
-			Point displayCoordinates = toolBar.toDisplay(itemBounds.x, itemBounds.y);
-			
-			Rectangle bounds = new Rectangle(displayCoordinates.x, displayCoordinates.y, 
-					4, itemBounds.height);
-			if (!dropLocation.before) {
-				bounds.x += itemBounds.width;
-			}
-			
-			return new StackDropResult(bounds, dropLocation);
-		}
-		
-		return null;
-	}
-	
-	public void setActive(int newState) {
-		activeFocus = (newState == AS_ACTIVE_FOCUS);
-		presentationControl.redraw();
-	}
-	
-	public void setState(int state) {
-		updateToolbarImages();
-	}
-	
-	public void showPaneMenu(Point location) {
-		if (current == null) {
-			return;
-		}
-		
-		IPartMenu menu = current.getMenu();
-		
-		if (menu == null) {
-			return;
-		}
-
-		menu.showMenu(location);
-	}
-	
-	public void showPaneMenu() {	
-		Rectangle bounds = titleIconToolbar.getBounds();
-		Point location = titleIconToolbar.getParent().toDisplay(bounds.x, bounds.y + bounds.height);
-		
-		showPaneMenu(location);
-	}
-	
-	public void showSystemMenu() {
-		Rectangle bounds = viewMenu.getBounds();
-		Point displayPos = viewMenu.getParent().toDisplay(bounds.x, bounds.y + bounds.height);
-    	
-		showSystemMenu(displayPos);
-	}
-	
-	public void showSystemMenu(Point displayPos) {
-		Menu aMenu = systemMenuManager.createContextMenu(presentationControl);
-		systemMenuManager.update(true);
-		aMenu.setLocation(displayPos.x, displayPos.y);
-		aMenu.setVisible(true);		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.StackPresentation#showPartList()
-	 */
-	public void showPartList() {
-		
-		// The part list opens when the user presses ctrl-e to open the list
-		// of editors. In this presentation, the part list is part of the system menu,
-		// so opening the part list is equivalent to opening the system menu.
-		showSystemMenu();
-	}
-
-	protected void showToolbar(IPresentablePart part, boolean shouldShow) {
-		
-		if (shouldShow != isShowingToolbar(part)) {
-			ToolItem tab = getTab(part);
-			tab.setData(SHOWING_TOOLBAR, shouldShow ? SHOWING_TOOLBAR : null);
-			
-			if (part == current) {
-				Control toolbar = part.getToolBar();
-				if (toolbar != null) {
-					toolbar.setVisible(shouldShow);
-				}
-				
-				layout();
-		
-				updateToolbarImages();
-				
-				if (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) {
-					getSite().setState(IStackPresentationSite.STATE_RESTORED);
-				}
-			}
-		}
-	}
-	
-	/**
-	 * @param selection
-	 */
-	public void showToolbar(boolean selection) {
-		if (current != null) {
-			showToolbar(current, selection);
-		}
-	}
-	
-	public IPresentablePart getCurrent() {
-		return current;
-	}
-	
-	private boolean isShowingToolbar(IPresentablePart part) {
-		ToolItem tab = getTab(part);
-		return tab.getData(SHOWING_TOOLBAR) != null;
-	}
-	
-	public boolean isShowingToolbar() {
-		if (current == null) {
-			return false;
-		}
-		
-		return isShowingToolbar(current);		
-	}
-
-	/**
-	 * @param parts
-	 */
-	public void close(IPresentablePart[] parts) {
-		getSite().close(parts);
-	}
-	
-	private Color getBorderColor() {
-		ITheme current = PlatformUI.getWorkbench().getThemeManager().getCurrentTheme();
-		if(activeFocus) {
-			return current.getColorRegistry().get(WrappedTabsThemeConstants.BORDER_COLOR_FOCUS);
-		} else {
-			return current.getColorRegistry().get(WrappedTabsThemeConstants.BORDER_COLOR_NOFOCUS);
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPresentationFactory.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPresentationFactory.java
deleted file mode 100644
index 7e20edc..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPresentationFactory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * @since 3.0
- */
-public class WrappedTabsPresentationFactory extends AbstractPresentationFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createEditorPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createEditorPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new WrappedTabsPartPresentation(parent, site, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createViewPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new WrappedTabsPartPresentation(parent, site, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createStandaloneViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite, boolean)
-	 */
-	public StackPresentation createStandaloneViewPresentation(Composite parent,
-			IStackPresentationSite site, boolean showTitle) {
-		return new WrappedTabsPartPresentation(parent, site, false);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsThemeConstants.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsThemeConstants.java
deleted file mode 100644
index 6aad8a0..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsThemeConstants.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-/**
- * Theme presentation constants
- * 
- * @since 3.0
- */
-public class WrappedTabsThemeConstants {
-	public final static String ID = "org.eclipse.ui.examples.presentation.wrappedtabstheme"; //$NON-NLS-1$
-	
-	public final static String TAB_FONT = "org.eclipse.ui.examples.presentation.wrappedtabstheme.font"; //$NON-NLS-1$
-	public final static String BORDER_COLOR_FOCUS = "org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_focus"; //$NON-NLS-1$
-	public final static String BORDER_COLOR_NOFOCUS = "org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_nofocus"; //$NON-NLS-1$
-	public final static String BORDER_SIZE = "org.eclipse.ui.examples.presentation.wrappedtabstheme.bordersize"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsUtil.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsUtil.java
deleted file mode 100644
index 7d8db35..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsUtil.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * @since 3.0
- */
-public class WrappedTabsUtil {
-	private WrappedTabsUtil() {
-		
-	}
-	
-	/**
-	 * Returns the width of the widest ToolItem in the given toolbar
-	 * 
-	 * @param toMeasure toolbar to measure
-	 * @return the width (pixels) of the widest ToolItem in the given toolbar
-	 */
-	public static int getMaximumItemWidth(ToolBar toMeasure) {
-		int maxWidth = 0;
-		ToolItem items[] = toMeasure.getItems();
-		
-		for (int i = 0; i < items.length; i++) {
-			ToolItem item = items[i];
-			
-			maxWidth = Math.max(maxWidth, item.getBounds().width);
-		}
-		
-		return maxWidth;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.classpath b/examples/org.eclipse.ui.examples.propertysheet/.classpath
deleted file mode 100644
index ad14fb0..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples PropertySheet"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.cvsignore b/examples/org.eclipse.ui.examples.propertysheet/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.project b/examples/org.eclipse.ui.examples.propertysheet/.project
deleted file mode 100644
index 12f1ec2..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.propertysheet</name>
-	<comment></comment>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 36e5b57..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,78 +0,0 @@
-#Mon Jan 15 21:12:52 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 21abc82..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Jan 15 17:29:04 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 632cb55..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Jan 10 16:54:15 EST 2006
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Address.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Address.java
deleted file mode 100644
index 02cf675..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Address.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * Example IPropertySource who itself is NOT editable, but whose children are.
- * The values of the children determine the value of the address.
- */
-public class Address implements IPropertySource {
-
-    //properties
-    private String city;
-
-    private Integer province;
-
-    private String postalCode;
-
-    private StreetAddress street;
-
-    //Property unique keys
-    public static final String P_ID_STREET = "Address.Street"; //$NON-NLS-1$
-
-    public static final String P_ID_CITY = "Address.City"; //$NON-NLS-1$
-
-    public static final String P_ID_PROVINCE = "Address.Province"; //$NON-NLS-1$
-
-    public static final String P_ID_POSTALCODE = "Address.PostalCode"; //$NON-NLS-1$
-
-    //Property display keys
-    public static final String P_STREET = MessageUtil.getString("Street"); //$NON-NLS-1$
-
-    public static final String P_CITY = MessageUtil.getString("City"); //$NON-NLS-1$
-
-    public static final String P_PROVINCE = MessageUtil.getString("Province"); //$NON-NLS-1$
-
-    public static final String P_POSTALCODE = MessageUtil
-            .getString("PostalCode"); //$NON-NLS-1$
-
-    public static final String P_DESCRIPTORS = "properties"; //$NON-NLS-1$
-
-    //default values	
-    private static final StreetAddress STREET_DEFAULT = new StreetAddress();
-
-    private static final String CITY_DEFAULT = MessageUtil
-            .getString("unspecified_city"); //$NON-NLS-1$
-
-    private static final Integer PROVINCE_DEFAULT = new Integer(0);
-
-    private static final String POSTALCODE_DEFAULT = "A1B2C3"; //$NON-NLS-1$
-
-    //
-    static private class ProvinceLabelProvider extends LabelProvider {
-        public String getText(Object element) {
-            String[] provinceValues = new String[] {
-                    MessageUtil.getString("British_Columbia"), MessageUtil.getString("Alberta"), MessageUtil.getString("Saskatchewan"), MessageUtil.getString("Manitoba"), MessageUtil.getString("Ontario"), MessageUtil.getString("Quebec"), MessageUtil.getString("Newfoundland"), MessageUtil.getString("Prince_Edward_Island"), MessageUtil.getString("Nova_Scotia"), MessageUtil.getString("New_Brunswick"), MessageUtil.getString("Yukon"), MessageUtil.getString("North_West_Territories"), MessageUtil.getString("Nunavut") }; //$NON-NLS-13$ //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-            return provinceValues[((Integer) element).intValue()];
-        }
-    }
-
-    //
-    private static Vector descriptors;
-
-    private static String[] provinceValues;
-    static {
-        descriptors = new Vector();
-        provinceValues = new String[] {
-                MessageUtil.getString("British_Columbia"), MessageUtil.getString("Alberta"), MessageUtil.getString("Saskatchewan"), MessageUtil.getString("Manitoba"), MessageUtil.getString("Ontario"), MessageUtil.getString("Quebec"), MessageUtil.getString("Newfoundland"), MessageUtil.getString("Prince_Edward_Island"), MessageUtil.getString("Nova_Scotia"), MessageUtil.getString("New_Brunswick"), MessageUtil.getString("Yukon"), MessageUtil.getString("North_West_Territories"), MessageUtil.getString("Nunavut") }; //$NON-NLS-13$ //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-        descriptors.addElement(new PropertyDescriptor(P_ID_STREET, P_STREET));
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_CITY, P_CITY));
-
-        //PostalCode
-        PropertyDescriptor propertyDescriptor = new TextPropertyDescriptor(
-                P_ID_POSTALCODE, P_POSTALCODE);
-        //add custom validator to propertyDescriptor limiting postalcode
-        //values to XYXYXY, where X is a letter and Y is a digit
-        propertyDescriptor.setValidator(new ICellEditorValidator() {
-            public String isValid(Object value) {
-                if (value == null)
-                    return MessageUtil.getString("postal_code_is_incomplete"); //$NON-NLS-1$
-
-                //
-                String testPostalCode = ((String) value).toUpperCase();
-                final int length = testPostalCode.length();
-                final char space = ' ';
-
-                //removes white space
-                StringBuffer postalCodeBuffer = new StringBuffer(6);
-                char current;
-                for (int i = 0; i < length; i++) {
-                    current = testPostalCode.charAt(i);
-                    if (current != space)
-                        postalCodeBuffer.append(current);
-                }
-                testPostalCode = postalCodeBuffer.toString();
-
-                //check for proper length
-                if (testPostalCode.length() != 6) {
-                    return MessageUtil.getString("postal_code_is_incomplete"); //$NON-NLS-1$
-                }
-
-                //check for proper format
-                if (testPostalCode.charAt(1) < '0'
-                        || testPostalCode.charAt(1) > '9'
-                        || testPostalCode.charAt(3) < '0'
-                        || testPostalCode.charAt(3) > '9'
-                        || testPostalCode.charAt(5) < '0'
-                        || testPostalCode.charAt(5) > '9'
-                        || testPostalCode.charAt(0) < 'A'
-                        || testPostalCode.charAt(0) > 'Z'
-                        || testPostalCode.charAt(2) < 'A'
-                        || testPostalCode.charAt(2) > 'Z'
-                        || testPostalCode.charAt(4) < 'A'
-                        || testPostalCode.charAt(4) > 'Z') {
-                    //fail
-                    return MessageUtil
-                            .format(
-                                    "_is_an_invalid_format_for_a_postal_code", new Object[] { testPostalCode }); //$NON-NLS-1$
-                }
-
-                //all pass
-                return null;
-            }
-        });
-        descriptors.addElement(propertyDescriptor);
-
-        //
-        ComboBoxPropertyDescriptor desc = new ComboBoxPropertyDescriptor(
-                P_ID_PROVINCE, P_PROVINCE, provinceValues);
-        desc.setLabelProvider(new ProvinceLabelProvider());
-        descriptors.addElement(desc);
-    }
-
-    /**
-     * Address Default Constructor
-     */
-    Address() {
-        super();
-    }
-
-    /**
-     * Creates a new address.
-     *
-     * @param street the street 
-     * @param city the city
-     * @param province the province
-     * @param postalCode has the form XYXYXY: where X is a letter and Y is a digit
-     * @exception IllegalArgumentException, if postalcode not in above form
-     */
-    public Address(StreetAddress street, String city, Integer province,
-            String postalCode) {
-        super();
-        setStreet(street);
-        setCity(city);
-        setPostalCode(postalCode);
-        setProvince(province);
-    }
-
-    /**
-     * Returns the city
-     */
-    private String getCity() {
-        if (city == null)
-            city = CITY_DEFAULT;
-        return city;
-    }
-
-    /* 
-     * Standard Accessor
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the postal code
-     */
-    private String getPostalCode() {
-        if (postalCode == null)
-            postalCode = POSTALCODE_DEFAULT;
-        return postalCode;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Address</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_CITY returns java.lang.String
-     * 	2) P_POSTALCODE returns java.lang.String
-     *  3) P_PROVINCE returns java.lang.String
-     *	4) P_STREET returns StreetAddress
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_PROVINCE))
-            return getProvince();
-        if (propKey.equals(P_ID_STREET))
-            return getStreet();
-        if (propKey.equals(P_ID_CITY))
-            return getCity();
-        if (propKey.equals(P_ID_POSTALCODE))
-            return getPostalCode();
-        return null;
-    }
-
-    /**
-     * Returns the province
-     */
-    private Integer getProvince() {
-        if (province == null)
-            province = PROVINCE_DEFAULT;
-        return province;
-    }
-
-    /**
-     * Returns the street
-     */
-    public StreetAddress getStreet() {
-        if (street == null)
-            street = new StreetAddress();
-        return street;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        if (property.equals(P_ID_PROVINCE))
-            return getProvince() != PROVINCE_DEFAULT;
-        if (property.equals(P_ID_STREET))
-            return !STREET_DEFAULT.equals(getStreet());
-        if (property.equals(P_ID_CITY))
-            return getCity() != CITY_DEFAULT;
-        if (property.equals(P_ID_POSTALCODE))
-            return getPostalCode() != POSTALCODE_DEFAULT;
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        if (P_ID_POSTALCODE.equals(property)) {
-            setPostalCode(POSTALCODE_DEFAULT);
-            return;
-        }
-        if (P_ID_CITY.equals(property)) {
-            setCity(CITY_DEFAULT);
-            return;
-        }
-        if (P_ID_PROVINCE.equals(property)) {
-            setProvince(PROVINCE_DEFAULT);
-            return;
-        }
-        if (P_ID_STREET.equals(property)) {
-            setStreet(new StreetAddress());
-            return;
-        }
-    }
-
-    /**
-     * Sets the city
-     */
-    private void setCity(String newCity) {
-        city = newCity;
-    }
-
-    /**
-     * Sets the postal code
-     */
-    private void setPostalCode(String newPostalCode) {
-        //validation in ICellEditorValidator registered in PropertyDescriptor
-        this.postalCode = newPostalCode.toUpperCase();
-    }
-
-    /** 
-     * The <code>Address</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     * 	1) P_CITY expects java.lang.String
-     * 	2) P_POSTALCODE expects java.lang.String
-     *  3) P_PROVINCE expects java.lang.String
-     * 
-     * <p>P_ID_STREET is not set here since it is referenced 
-     * and set directly in StreetAddress.
-     * According to IPropertySource, StreetAddress.getEditableValue
-     * should return a String which will be passed to this method  
-     * as the value. A new StreetAddress object should then be 
-     * created from the string. 
-     * An alternative would be to return the StreetAddress 
-     * directly in StreetAddress.getEditableValue and define a 
-     * cell editor for the StreetAddress property.
-     * This was ommitted for the sake of simplicity. 
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (P_ID_POSTALCODE.equals(name)) {
-            setPostalCode((String) value);
-            return;
-        }
-        if (P_ID_CITY.equals(name)) {
-            setCity((String) value);
-            return;
-        }
-        if (P_ID_PROVINCE.equals(name)) {
-            setProvince((Integer) value);
-            return;
-        }
-    }
-
-    /**
-     * Sets the province
-     */
-    private void setProvince(Integer newProvince) {
-        province = newProvince;
-    }
-
-    /**
-     * Sets the street
-     */
-    private void setStreet(StreetAddress newStreet) {
-        street = newStreet;
-    }
-
-    /**
-     * The value as displayed in the Property Sheet.
-     * @return java.lang.String
-     */
-    public String toString() {
-        StringBuffer outStringBuffer = new StringBuffer();
-        final String comma_space = ", "; //$NON-NLS-1$
-        final String space = " "; //$NON-NLS-1$
-        if (!getStreet().equals(STREET_DEFAULT)) {
-            outStringBuffer.append(getStreet());
-            outStringBuffer.append(comma_space);
-        }
-
-        outStringBuffer.append(getCity());
-        outStringBuffer.append(space);
-        outStringBuffer.append(provinceValues[getProvince().intValue()]);
-        outStringBuffer.append(comma_space);
-        outStringBuffer.append(getPostalCode());
-
-        return outStringBuffer.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Birthday.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Birthday.java
deleted file mode 100644
index f1b77ac..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Birthday.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * Example IPropertySource who itself is NOT editable, but whose children are.
- * The values of the children determine the value of the birthday.
- */
-public class Birthday implements IPropertySource {
-
-    //Properties
-    private Integer day, month, year;
-
-    //Property unique keys
-    public static final String P_ID_DAY = "Birthday.day"; //$NON-NLS-1$
-
-    public static final String P_ID_MONTH = "Birthday.month"; //$NON-NLS-1$
-
-    public static final String P_ID_YEAR = "Birthday.year"; //$NON-NLS-1$
-
-    //Property display keys
-    public static final String P_DAY = MessageUtil.getString("day"); //$NON-NLS-1$
-
-    public static final String P_MONTH = MessageUtil.getString("month"); //$NON-NLS-1$
-
-    public static final String P_YEAR = MessageUtil.getString("year"); //$NON-NLS-1$
-
-    //default values	
-    private static final Integer DAY_DEFAULT = new Integer(1);
-
-    private static final Integer MONTH_DEFAULT = new Integer(1);
-
-    private static final Integer YEAR_DEFAULT = new Integer(2000);
-
-    //static date formater
-    private static final DateFormat formatter = new SimpleDateFormat(
-            "EEEE, MMMM d, yyyy"); //$NON-NLS-1$
-
-    static private class DayLabelProvider extends LabelProvider {
-        public String getText(Object element) {
-            String[] dayValues = new String[] {
-                    "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }; //$NON-NLS-31$ //$NON-NLS-30$ //$NON-NLS-29$ //$NON-NLS-28$ //$NON-NLS-27$ //$NON-NLS-26$ //$NON-NLS-25$ //$NON-NLS-24$ //$NON-NLS-23$ //$NON-NLS-22$ //$NON-NLS-21$ //$NON-NLS-20$ //$NON-NLS-19$ //$NON-NLS-18$ //$NON-NLS-17$ //$NON-NLS-16$ //$NON-NLS-15$ //$NON-NLS-14$ //$NON-NLS-13$ //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-            return dayValues[((Integer) element).intValue()];
-        }
-    }
-
-    static private class MonthLabelProvider extends LabelProvider {
-        public String getText(Object element) {
-            String[] monthValues = new String[] {
-                    MessageUtil.getString("January"), MessageUtil.getString("February"), MessageUtil.getString("March"), MessageUtil.getString("April"), MessageUtil.getString("May"), MessageUtil.getString("June"), MessageUtil.getString("July"), MessageUtil.getString("August"), MessageUtil.getString("September"), MessageUtil.getString("October"), MessageUtil.getString("November"), MessageUtil.getString("December") }; //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-            return monthValues[((Integer) element).intValue()];
-        }
-    }
-
-    //
-    private static Vector descriptors;
-    static {
-        descriptors = new Vector();
-
-        ///
-        String[] dayValues = new String[] {
-                "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }; //$NON-NLS-31$ //$NON-NLS-30$ //$NON-NLS-29$ //$NON-NLS-28$ //$NON-NLS-27$ //$NON-NLS-26$ //$NON-NLS-25$ //$NON-NLS-24$ //$NON-NLS-23$ //$NON-NLS-22$ //$NON-NLS-21$ //$NON-NLS-20$ //$NON-NLS-19$ //$NON-NLS-18$ //$NON-NLS-17$ //$NON-NLS-16$ //$NON-NLS-15$ //$NON-NLS-14$ //$NON-NLS-13$ //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-        ComboBoxPropertyDescriptor days = new ComboBoxPropertyDescriptor(
-                P_ID_DAY, P_DAY, dayValues);
-        days.setLabelProvider(new DayLabelProvider());
-        descriptors.addElement(days);
-
-        ///
-        String[] monthValues = new String[] {
-                MessageUtil.getString("January"), MessageUtil.getString("February"), MessageUtil.getString("March"), MessageUtil.getString("April"), MessageUtil.getString("May"), MessageUtil.getString("June"), MessageUtil.getString("July"), MessageUtil.getString("August"), MessageUtil.getString("September"), MessageUtil.getString("October"), MessageUtil.getString("November"), MessageUtil.getString("December") }; //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-        ComboBoxPropertyDescriptor months = new ComboBoxPropertyDescriptor(
-                P_ID_MONTH, P_MONTH, monthValues);
-        months.setLabelProvider(new MonthLabelProvider());
-        descriptors.addElement(months);
-
-        ///
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_YEAR, P_YEAR));
-    }
-
-    /**
-     * Address Default Constructor
-     */
-    Birthday() {
-        super();
-    }
-
-    /**
-     * Convenience Address Constructor
-     */
-    public Birthday(int day, int month, int year) {
-        super();
-        setDay(new Integer(day));
-        setMonth(new Integer(month));
-        setYear(new Integer(year));
-    }
-
-    /**
-     * Returns the day
-     */
-    private Integer getDay() {
-        if (day == null)
-            day = DAY_DEFAULT;
-        return day;
-    }
-
-    /**
-     * Standard Accessor
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the month
-     */
-    private Integer getMonth() {
-        if (month == null)
-            month = MONTH_DEFAULT;
-        return month;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Birthday</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_DAY returns java.lang.Integer
-     * 	2) P_MONTH returns java.lang.Integer
-     *  3) P_YEAR returns java.lang.Integer
-     *	4) P_STREET returns java.lang.String
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_DAY))
-            return new Integer(getDay().intValue() - 1);
-        if (propKey.equals(P_ID_MONTH))
-            return new Integer(getMonth().intValue() - 1);
-        if (propKey.equals(P_ID_YEAR))
-            return getYear().toString();
-        return null;
-    }
-
-    /**
-     * Returns the year
-     */
-    private Integer getYear() {
-        if (year == null)
-            year = YEAR_DEFAULT;
-        return year;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        if (P_ID_DAY.equals(property))
-            return getDay() != DAY_DEFAULT;
-        if (P_ID_MONTH.equals(property))
-            return getMonth() != MONTH_DEFAULT;
-        if (P_ID_YEAR.equals(property))
-            return getYear() != YEAR_DEFAULT;
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        if (P_ID_DAY.equals(property)) {
-            setDay(DAY_DEFAULT);
-            return;
-        }
-        if (P_ID_MONTH.equals(property)) {
-            setMonth(MONTH_DEFAULT);
-            return;
-        }
-        if (P_ID_YEAR.equals(property)) {
-            setYear(YEAR_DEFAULT);
-            return;
-        }
-    }
-
-    /**
-     * Sets the day
-     */
-    private void setDay(Integer newDay) {
-        day = newDay;
-    }
-
-    /**
-     * Sets the month
-     */
-    private void setMonth(Integer newMonth) {
-        month = newMonth;
-    }
-
-    /** 
-     * The <code>Birthday</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     * 	1) P_DAY expects java.lang.Integer
-     * 	2) P_MONTH expects java.lang.Integer
-     *  3) P_YEAR expects java.lang.Integer
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (P_ID_DAY.equals(name)) {
-            setDay(new Integer(((Integer) value).intValue() + 1));
-            return;
-        }
-        if (P_ID_MONTH.equals(name)) {
-            setMonth(new Integer(((Integer) value).intValue() + 1));
-            return;
-        }
-        if (P_ID_YEAR.equals(name)) {
-            try {
-                setYear(new Integer((String) value));
-            } catch (NumberFormatException e) {
-                setYear(YEAR_DEFAULT);
-            }
-            return;
-        }
-    }
-
-    /**
-     * Sets the year
-     */
-    private void setYear(Integer newYear) {
-        year = newYear;
-    }
-
-    /**
-     * The value as displayed in the Property Sheet.
-     * @return java.lang.String
-     */
-    public String toString() {
-        Date bday = (new GregorianCalendar(getYear().intValue(), getMonth()
-                .intValue() - 1, getDay().intValue())).getTime();
-        return formatter.format(bday);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddress.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddress.java
deleted file mode 100644
index 2320280..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddress.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-/**
- * Example IPropertySource is editable and whose childern properties are itself not editable.
- * The values of "userid" and "mailserver" are parsed from setting "email"
- */
-public class EmailAddress implements IPropertySource {
-
-    //Property-Value
-    private String userid;
-
-    private String domain;
-
-    //Default Property-Value
-    private static final String USERID_DEFAULT = MessageUtil
-            .getString("unknownUser"); //$NON-NLS-1$
-
-    private static final String DOMAIN_DEFAULT = MessageUtil
-            .getString("unknownDomain"); //$NON-NLS-1$
-
-    //Property unique keys
-    public static final String P_ID_USERID = "EmailAddress.userid"; //$NON-NLS-1$
-
-    public static final String P_ID_DOMAIN = "EmailAddress.domain"; //$NON-NLS-1$
-
-    //Property display keys
-    public static final String P_USERID = MessageUtil.getString("userid"); //$NON-NLS-1$
-
-    public static final String P_DOMAIN = MessageUtil.getString("domain"); //$NON-NLS-1$
-
-    //Property-Descriptors
-    private static Vector descriptors;
-
-    static {
-        descriptors = new Vector(2, 2);
-        //non-editable child properties --> provide no editors
-        descriptors.addElement(new PropertyDescriptor(P_ID_USERID, P_USERID));
-        descriptors.addElement(new PropertyDescriptor(P_ID_DOMAIN, P_DOMAIN));
-    }
-
-    /**
-     * EmailAddress Default Constructor
-     */
-    public EmailAddress() {
-        super();
-    }
-
-    /**
-     * Convience EmailAddress constructor.
-     * Calls setEmailAddress() to parse emailAddress
-     * @param emailAddress java.lang.String, in the form userid@domain
-     * @throws java.lang.IllegalArgumentException, if does not subscribe to form
-     */
-    public EmailAddress(String emailAddress) throws IllegalArgumentException {
-        super();
-        setEmailAddress(emailAddress);
-
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /**
-     * Returns the domain
-     */
-    private String getDomain() {
-        if (domain == null)
-            domain = DOMAIN_DEFAULT;
-        return domain;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>EmailAddress</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_USERID returns String, values before "@"
-     *	2) P_DOMAIN returns String, values after "@"
-     *
-     * Observe the available properties must always equal those listed
-     * in the property descriptors
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_USERID))
-            return getUserid();
-        if (propKey.equals(P_ID_DOMAIN))
-            return getDomain();
-        return null;
-    }
-
-    /**
-     * Returns the userid
-     */
-    private String getUserid() {
-        if (userid == null)
-            userid = USERID_DEFAULT;
-        return userid;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        return;
-    }
-
-    /**
-     * Sets the domain
-     */
-    private void setDomain(java.lang.String newDomain) {
-        domain = newDomain;
-    }
-
-    /**
-     * Parses emailAddress into domain and userid. Throws SetPropertyVetoException
-     * if emailAddress does not contain an userid and domain seperated by '@'.
-     *
-     * @param emailAddress the email address
-     * @throws IllegalArgumentException
-     */
-    private void setEmailAddress(String emailAddress)
-            throws IllegalArgumentException {
-        if (emailAddress == null)
-            throw new IllegalArgumentException(MessageUtil
-                    .getString("emailaddress_cannot_be_set_to_null")); //$NON-NLS-1$
-        int index = emailAddress.indexOf('@');
-        int length = emailAddress.length();
-        if (index > 0 && index < length) {
-            setUserid(emailAddress.substring(0, index));
-            setDomain(emailAddress.substring(index + 1));
-            return;
-        }
-        throw new IllegalArgumentException(
-                MessageUtil
-                        .getString("invalid_email_address_format_should_have_been_validated")); //$NON-NLS-1$
-    }
-
-    /** 
-     * The <code>Address</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     *	1) P_USERID, expects String
-     *	2) P_DOMAIN, expects String
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (name.equals(P_ID_USERID)) {
-            setUserid((String) value);
-            return;
-        }
-        if (name.equals(P_ID_DOMAIN)) {
-            setDomain((String) value);
-            return;
-        }
-    }
-
-    /**
-     * Sets the userid
-     */
-    private void setUserid(String newUserid) {
-        userid = newUserid;
-    }
-
-    /**
-     * The value as displayed in the Property Sheet.
-     * @return java.lang.String
-     */
-    public String toString() {
-        StringBuffer strbuffer = new StringBuffer(getUserid());
-        strbuffer.append('@');
-        strbuffer.append(getDomain());
-        return strbuffer.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddressValidator.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddressValidator.java
deleted file mode 100644
index 8625f80..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddressValidator.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import org.eclipse.jface.viewers.ICellEditorValidator;
-
-/**
- * Validator for email addresses
- */
-public class EmailAddressValidator implements ICellEditorValidator {
-    /** 
-     * The <code>EmailAddressValidator</code> implementation of this
-     * <code>ICellEditorValidator</code> method 
-     * determines if the value is a valid email address.
-     * (check to see if it is non-null and contains an @)
-     */
-    public String isValid(Object value) {
-        if (value == null) {
-            return MessageUtil.getString("email_address_is_incomplete"); //$NON-NLS-1$
-        }
-        String emailAddress = (String) value;
-        int index = emailAddress.indexOf('@');
-        int length = emailAddress.length();
-        if (index > 0 && index < length) {
-            return null;
-        }
-        return MessageUtil
-                .getString("email_address_does_not_have_a_valid_format"); //$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/GroupElement.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/GroupElement.java
deleted file mode 100644
index 0fb7653..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/GroupElement.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * A Group Element
- */
-public class GroupElement extends OrganizationElement {
-    public static String P_USERS = "users"; //$NON-NLS-1$
-
-    public static String P_SUBGROUPS = "subgroups"; //$NON-NLS-1$
-
-    public static String P_CONTENTS = "contents"; //$NON-NLS-1$
-
-    private Vector subGroups;
-
-    private Vector users;
-
-    // must be synchronized to contain both the references of subGroups and users
-    private Vector contents;
-
-    /**
-     * Constructor.
-     * Creates a new GroupElement within the passed parent GroupElement,
-     * gives it the passed name property, sets Icon.
-     *
-     * @param name the name 
-     * @param parent the parent
-     */
-    public GroupElement(String name, GroupElement parent) {
-        super(name, parent);
-    }
-
-    /**
-     * Adds an OrganizationElement to this GroupElement.
-     *
-     * @param userGroup The Organization Element
-     */
-    public void add(OrganizationElement userGroup) {
-        if (userGroup.isUser() || userGroup.isGroup()) {
-            getContents().add(userGroup);
-        }
-        if (userGroup.isGroup()) {
-            getSubGroups().add(userGroup);
-            // synchronizes backpointer of userGroup: defensive
-            userGroup.setParent(this);
-        }
-        if (userGroup.isUser()) {
-            getUsers().add(userGroup);
-            // synchronizes backpointer of userGroup: defensive
-            userGroup.setParent(this);
-        }
-
-    }
-
-    /**
-     * Creates a new <code>GroupElement</code>
-     * nested in this <code>GroupElement<code>
-     *
-     * @param name the name of the sub group
-     */
-    public GroupElement createSubGroup(String name) {
-        GroupElement newGroup = new GroupElement(name, this);
-        add(newGroup);
-        return newGroup;
-    }
-
-    /**
-     * Creates a new <code>UserElement</code>
-     *
-     * @param the name of the user element
-     */
-    public UserElement createUser(String name) {
-        UserElement newUser = new UserElement(name, this);
-        add(newUser);
-        return newUser;
-    }
-
-    /**
-     * Deletes an OrganizationElement from this GroupElement.
-     *
-     * @param userGroup the Organization Element
-     */
-    public void delete(OrganizationElement userGroup) {
-        if (userGroup.isUser() || userGroup.isGroup()) {
-            getContents().remove(userGroup);
-        }
-        if (userGroup.isGroup()) {
-            getSubGroups().remove(userGroup);
-            // synchronizes backpointer of userGroup: defensive
-        }
-        if (userGroup.isUser()) {
-            getUsers().remove(userGroup);
-            // synchronizes backpointer of userGroup: defensive
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object[] getChildren(Object o) {
-        return getContents().toArray();
-    }
-
-    /**
-     * Returns the content
-     */
-    private Vector getContents() {
-        if (contents == null)
-            contents = new Vector();
-        return contents;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the error message
-     */
-    public String getErrorMessage() {
-        return null;
-    }
-
-    /**
-     * Returns the subgroups
-     */
-    private Vector getSubGroups() {
-        if (subGroups == null)
-            subGroups = new Vector();
-        return subGroups;
-    }
-
-    /**
-     * Returns the users
-     */
-    private Vector getUsers() {
-        if (users == null)
-            users = new Vector();
-        return users;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on OrganizationElement
-     */
-    public boolean isGroup() {
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getForeground(java.lang.Object)
-     */
-    public RGB getForeground(Object element) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getBackground(java.lang.Object)
-     */
-    public RGB getBackground(Object element) {
-        return null;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/IUserConstants.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/IUserConstants.java
deleted file mode 100644
index 6ee8086..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/IUserConstants.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-/**
- * This interface contains constants for use only within the
- * property sheet example.
- */
-public interface IUserConstants {
-    public static final String PLUGIN_ID = "org.eclipse.ui.examples.propertysheet"; //$NON-NLS-1$
-
-    public static final String PREFIX = PLUGIN_ID + "."; //$NON-NLS-1$
-
-    public static final String P_CONTENT_OUTLINE = PREFIX + "content_outline"; //$NON-NLS-1$
-
-    public static final String EXTENSION = "usr"; //$NON-NLS-1$
-
-    public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/MessageUtil.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/MessageUtil.java
deleted file mode 100644
index 41c020a..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/MessageUtil.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps with managing messages.
- */
-/* package */class MessageUtil {
-
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.examples.propertysheet.messages";//$NON-NLS-1$
-
-    private static ResourceBundle fgResourceBundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    private MessageUtil() {
-    }
-
-    /**
-     * Returns the formatted message for the given key in
-     * the resource bundle. 
-     *
-     * @param key the resource name
-     * @param args the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in
-     * the resource bundle. If there isn't any value under
-     * the given key, the key is returned, surrounded by '!'s.
-     *
-     * @param key the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return fgResourceBundle.getString(key);
-        } catch (MissingResourceException e) {
-            return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Name.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Name.java
deleted file mode 100644
index a3e76ca..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Name.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * Example IPropertySource whose value as well as its children are editable.
- */
-public class Name implements IPropertySource {
-    private String firstName = ""; //$NON-NLS-1$
-
-    private String lastName = ""; //$NON-NLS-1$
-
-    private String initial = ""; //$NON-NLS-1$
-
-    // property unique keys
-    public static String P_ID_FIRSTNAME = "Name.FirstName"; //$NON-NLS-1$
-
-    public static String P_ID_LASTNAME = "Name.LastName"; //$NON-NLS-1$
-
-    public static String P_ID_MIDDLENAME = "Name.Middle"; //$NON-NLS-1$
-
-    // property display keys
-    public static String P_FIRSTNAME = MessageUtil.getString("FirstName"); //$NON-NLS-1$
-
-    public static String P_LASTNAME = MessageUtil.getString("LastName"); //$NON-NLS-1$
-
-    public static String P_MIDDLENAME = MessageUtil.getString("Middle"); //$NON-NLS-1$
-
-    // default values
-    //
-    private static final String FIRSTNAME_DEFAULT = null;
-
-    private static final String LASTNAME_DEFAULT = null;
-
-    private static final String MIDDLENAME_DEFAULT = null;
-
-    public static final String P_DESCRIPTORS = "properties"; //$NON-NLS-1$
-
-    static private Vector descriptors;
-    static {
-        descriptors = new Vector();
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_FIRSTNAME,
-                P_FIRSTNAME));
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_LASTNAME,
-                P_LASTNAME));
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_MIDDLENAME,
-                P_MIDDLENAME));
-    }
-
-    /**
-     * Creates a new Name.
-     * @param name String in the form "firstname initial lastname"
-     */
-    public Name(String name) {
-        int index1, index2;
-        index1 = name.indexOf(' ');
-        if (index1 < 0)
-            index1 = name.length();
-        index2 = name.lastIndexOf(' ');
-        if (index2 > 0)
-            lastName = name.substring(index2 + 1);
-        firstName = name.substring(0, index1);
-        if (index1 < index2)
-            initial = name.substring(index1 + 1, index2);
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the first name
-     */
-    private String getFirstName() {
-        return firstName;
-    }
-
-    /**
-     * Returns the initial
-     */
-    private String getInitial() {
-        return initial;
-    }
-
-    /**
-     * Returns the last name
-     */
-    private String getLastName() {
-        return lastName;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Name</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_FIRSTNAME returns String, firstname
-     * 	2) P_LASTNAME returns String, lastname
-     *  3) P_MIDDLENAME returns String, middle
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (P_ID_FIRSTNAME.equals(propKey))
-            return getFirstName();
-        if (P_ID_LASTNAME.equals(propKey))
-            return getLastName();
-        if (P_ID_MIDDLENAME.equals(propKey))
-            return getInitial();
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object key) {
-        if (key.equals(P_ID_FIRSTNAME))
-            return getFirstName() != FIRSTNAME_DEFAULT;
-        if (key.equals(P_ID_LASTNAME))
-            return getLastName() != LASTNAME_DEFAULT;
-        if (key.equals(P_ID_MIDDLENAME))
-            return getInitial() != MIDDLENAME_DEFAULT;
-        return false;
-    }
-
-    /**
-     * Implemented as part of IPropertySource framework. Sets the specified property 
-     * to its default value.
-     * 
-     * @see 	IPropertySource#resetPropertyValue(Object)
-     * @param 	property 	The property to reset.
-     */
-    public void resetPropertyValue(Object property) {
-        if (P_ID_FIRSTNAME.equals(property)) {
-            setFirstName(FIRSTNAME_DEFAULT);
-            return;
-        }
-        if (P_ID_LASTNAME.equals(property)) {
-            setLastName(LASTNAME_DEFAULT);
-            return;
-        }
-        if (P_ID_MIDDLENAME.equals(property)) {
-            setInitial(MIDDLENAME_DEFAULT);
-            return;
-        }
-    }
-
-    /**
-     * Sets the first name
-     */
-    private void setFirstName(String newFirstName) {
-        firstName = newFirstName;
-    }
-
-    /**
-     * Sets the initial
-     */
-    private void setInitial(String newInitial) {
-        initial = newInitial;
-    }
-
-    /**
-     * Sets the last name
-     */
-    private void setLastName(String newLastName) {
-        lastName = newLastName;
-    }
-
-    /** 
-     * The <code>Name</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     *	1) P_FIRST, expects String, sets the firstname of this OrganizationElement
-     *  2) P_MIDDLENAME, expects String, sets middlename of this OrganizationElement
-     *  3) P_LASTNAME, expects String, sets lastname of this OrganizationElement
-     */
-    public void setPropertyValue(Object propName, Object val) {
-        if (P_ID_FIRSTNAME.equals(propName)) {
-            setFirstName((String) val);
-            return;
-        }
-        if (P_ID_LASTNAME.equals(propName)) {
-            setLastName((String) val);
-            return;
-        }
-        if (P_ID_MIDDLENAME.equals(propName)) {
-            setInitial((String) val);
-            return;
-        }
-    }
-
-    /**
-     * The value as displayed in the Property Sheet. Will not print default values
-     * @return java.lang.String
-     */
-    public String toString() {
-        StringBuffer outStringBuffer = new StringBuffer();
-        if (getFirstName() != FIRSTNAME_DEFAULT) {
-            outStringBuffer.append(getFirstName());
-            outStringBuffer.append(" "); //$NON-NLS-1$
-        }
-        if (getInitial() != MIDDLENAME_DEFAULT) {
-            outStringBuffer.append(getInitial());
-            outStringBuffer.append(" "); //$NON-NLS-1$
-        }
-        if (getLastName() != LASTNAME_DEFAULT) {
-            outStringBuffer.append(getLastName());
-        }
-
-        return outStringBuffer.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/OrganizationElement.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/OrganizationElement.java
deleted file mode 100644
index d536e8d..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/OrganizationElement.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * An Organization Element
- */
-public abstract class OrganizationElement implements IAdaptable,
-        IPropertySource, IWorkbenchAdapter {
-    //
-    private GroupElement parent;
-
-    private String name;
-
-    private ImageDescriptor imageDescriptor;
-
-    //
-    private static Vector descriptors;
-    static {
-        descriptors = new Vector();
-        PropertyDescriptor name = new TextPropertyDescriptor(
-                IBasicPropertyConstants.P_TEXT, MessageUtil.getString("name")); //$NON-NLS-1$
-        descriptors.addElement(name);
-    }
-
-    /**
-     * Constructor.
-     * Creates a new OrganizationElement within the passed parent GroupElement,
-     *
-     * @param name the name 
-     * @param parent the parent
-     */
-    OrganizationElement(String name, GroupElement parent) {
-        this.name = name;
-        this.parent = parent;
-    }
-
-    /**
-     * Deletes this OrganizationElement from its parentGroup
-     */
-    public void delete() {
-        parent.delete(this);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IPropertySource.class) {
-            return this;
-        }
-        if (adapter == IWorkbenchAdapter.class) {
-            return this;
-        }
-        return null;
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-        return imageDescriptor;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public String getLabel(Object o) {
-        return getName();
-    }
-
-    /**
-     * Returns the name
-     */
-    String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the parent
-     */
-    public Object getParent(Object o) {
-        return parent;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>OrganizationElement</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_NAME returns String, name of this element
-     *  this property key is defined in <code>IBasicPropertyConstants</code>
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(IBasicPropertyConstants.P_TEXT))
-            return getName();
-        return null;
-    }
-
-    /**
-     * Hook. Implemented by <code>GroupElement</code> for use instead of instanceof
-     * @return boolean
-     */
-    public boolean isGroup() {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        return false;
-    }
-
-    /**
-     * Hook. Implemented by <code>UserElement</code> for use instead of instanceof
-     * @return boolean
-     */
-    public boolean isUser() {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-    }
-
-    /**
-     * Sets the image descriptor
-     */
-    void setImageDescriptor(ImageDescriptor desc) {
-        imageDescriptor = desc;
-    }
-
-    /**
-     * Sets the name
-     */
-    void setName(String newName) {
-        name = newName;
-    }
-
-    /**
-     * Sets this instance's parent back pointer.
-     */
-    void setParent(GroupElement newParent) {
-        parent = newParent;
-    }
-
-    /** 
-     * The <code>OrganizationElement</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     * defines the following Setable properties
-     *
-     *	1) P_NAME, expects String, sets the name of this OrganizationElement
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (name.equals(IBasicPropertyConstants.P_TEXT)) {
-            setName((String) value);
-            return;
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PopupMenuActionDelegate.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PopupMenuActionDelegate.java
deleted file mode 100644
index 49b9773..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PopupMenuActionDelegate.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Action delegate for handling popup menu actions.
- */
-public class PopupMenuActionDelegate implements IObjectActionDelegate {
-
-    private IWorkbenchPart part;
-
-    /** (non-Javadoc)
-     * Method declared on IDropActionDelegate
-     */
-    public void run(IAction action) {
-        MessageDialog.openInformation(this.part.getSite().getShell(),
-                MessageUtil.getString("Property_Sheet_Example"), //$NON-NLS-1$
-                MessageUtil.getString("Popup_Menu_Action_executed")); //$NON-NLS-1$
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        //Ignored for this example
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IObjectActionDelegate
-     */
-    public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-        this.part = targetPart;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetContentOutlinePage.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetContentOutlinePage.java
deleted file mode 100644
index b90da25..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetContentOutlinePage.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-
-/**
- * Page for the content outliner
- */
-public class PropertySheetContentOutlinePage extends ContentOutlinePage {
-
-    private IAdaptable model;
-
-    /**
-     * Create a new instance of the reciver using adapatable
-     * as the model.
-     */
-    public PropertySheetContentOutlinePage(IAdaptable adaptable) {
-        this.model = adaptable;
-    }
-
-    /** 
-     * Creates the control and registers the popup menu for this page
-     * Menu id "org.eclipse.ui.examples.propertysheet.outline"
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        TreeViewer viewer = getTreeViewer();
-        viewer.setContentProvider(new WorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-        viewer.setInput(this.model);
-        viewer.expandAll();
-
-        // Configure the context menu.
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
-                + "-end")); //$NON-NLS-1$
-
-        Menu menu = menuMgr.createContextMenu(viewer.getTree());
-        viewer.getTree().setMenu(menu);
-        // Be sure to register it so that other plug-ins can add actions.
-        getSite()
-                .registerContextMenu(
-                        "org.eclipse.ui.examples.propertysheet.outline", menuMgr, viewer); //$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetPlugin.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetPlugin.java
deleted file mode 100644
index df93199..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetPlugin.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74526)
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * This is the top-level class of the property sheet example.
- *
- * @see AbstractUIPlugin for additional information on UI plugins
- */
-public class PropertySheetPlugin extends AbstractUIPlugin {
-    // Default instance of the receiver
-    private static PropertySheetPlugin inst;
-
-    /**
-     * Create the PropertySheet plugin and cache its default instance
-     */
-    public PropertySheetPlugin() {
-        if (inst == null)
-            inst = this;
-    }
-
-    /**
-     * Returns the plugin singleton.
-     *
-     * @return the default PropertySheetPlugin instance
-     */
-    static public PropertySheetPlugin getDefault() {
-        return inst;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/StreetAddress.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/StreetAddress.java
deleted file mode 100644
index 8202b75..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/StreetAddress.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * PropertySource containing street information pertenant to Address
- */
-public class StreetAddress implements IPropertySource {
-
-    //properties
-    private Integer buildNo;
-
-    private String aptBox;
-
-    private String streetName;
-
-    //default property values
-    private static final Integer BUILD_NO_DEFAULT = new Integer(0);
-
-    private static final String APTBOX_DEFAULT = MessageUtil
-            .getString("unspecified"); //$NON-NLS-1$
-
-    private static final String STREETNAME_DEFAULT = MessageUtil
-            .getString("unspecified"); //$NON-NLS-1$
-
-    //property unique keys
-    public static final String P_ID_BUILD_NO = "Street.buildingNo"; //$NON-NLS-1$
-
-    public static final String P_ID_APTBOX = "Street.aptNo"; //$NON-NLS-1$
-
-    public static final String P_ID_STREET = "Street.street"; //$NON-NLS-1$
-
-    //property display keys
-    public static final String P_BUILD_NO = MessageUtil
-            .getString("building_number"); //$NON-NLS-1$
-
-    public static final String P_APTBOX = MessageUtil
-            .getString("apt.no_or_box.no"); //$NON-NLS-1$
-
-    public static final String P_STREET = MessageUtil.getString("street"); //$NON-NLS-1$
-
-    //
-    private static Vector descriptors;
-
-    static {
-        descriptors = new Vector();
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_BUILD_NO,
-                P_BUILD_NO));
-        descriptors
-                .addElement(new TextPropertyDescriptor(P_ID_APTBOX, P_APTBOX));
-        descriptors
-                .addElement(new TextPropertyDescriptor(P_ID_STREET, P_STREET));
-    }
-
-    /**
-     * Street Default Constructor.
-     */
-    public StreetAddress() {
-        super();
-    }
-
-    /**
-     * Convenience Street constructor. AptBox set to default
-     */
-    public StreetAddress(int buildNo, String streetName) {
-        super();
-        setBuildNo(new Integer(buildNo));
-        setStreetName(streetName);
-    }
-
-    /**
-     * Convenience Street constructor.
-     */
-    public StreetAddress(int buildNo, String aptBox, String streetName) {
-        super();
-        setBuildNo(new Integer(buildNo));
-        setAptBox(aptBox);
-        setStreetName(streetName);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object
-     */
-    public boolean equals(Object ob) {
-        return toString().equals(ob.toString());
-    }
-
-    /**
-     * the appartment number
-     */
-    private String getAptBox() {
-        if (aptBox == null)
-            aptBox = APTBOX_DEFAULT;
-        return aptBox;
-    }
-
-    /**
-     * Returns the building number
-     */
-    private Integer getBuildNo() {
-        if (buildNo == null)
-            buildNo = BUILD_NO_DEFAULT;
-        return buildNo;
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Name</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_BUILD_NO returns java.lang.Integer
-     * 	2) P_APTBOX returns java.lang.String
-     *	3) P_STREET returns java.lang.String
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_BUILD_NO))
-            return getBuildNo().toString();
-        if (propKey.equals(P_ID_APTBOX))
-            return getAptBox();
-        if (propKey.equals(P_ID_STREET))
-            return getStreetName();
-        return null;
-    }
-
-    /**
-     * Returns the street name
-     */
-    private String getStreetName() {
-        if (streetName == null)
-            streetName = STREETNAME_DEFAULT;
-        return streetName;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object
-     */
-    public int hashCode() {
-        return toString().hashCode();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        if (property.equals(P_ID_BUILD_NO))
-            return getBuildNo() != BUILD_NO_DEFAULT;
-        if (property.equals(P_ID_APTBOX))
-            return getAptBox() != APTBOX_DEFAULT;
-        if (property.equals(P_ID_STREET))
-            return getStreetName() != STREETNAME_DEFAULT;
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        if (property.equals(P_ID_BUILD_NO)) {
-            setBuildNo(BUILD_NO_DEFAULT);
-            return;
-        }
-        if (property.equals(P_ID_APTBOX)) {
-            setAptBox(APTBOX_DEFAULT);
-            return;
-        }
-        if (property.equals(P_ID_STREET)) {
-            setStreetName(STREETNAME_DEFAULT);
-            return;
-        }
-    }
-
-    /**
-     * Sets the appartment number
-     */
-    private void setAptBox(String newAptBox) {
-        aptBox = newAptBox;
-    }
-
-    /**
-     * Sets the building number
-     */
-    private void setBuildNo(Integer newBuildNo) {
-        buildNo = newBuildNo;
-    }
-
-    /** 
-     * The <code>Name</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     * 	1) P_BUILD_NO expects java.lang.Integer
-     * 	2) P_APTBOX expects java.lang.String
-     *	3) P_STREET expects java.lang.String
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (name.equals(P_ID_BUILD_NO)) {
-            try {
-                setBuildNo(new Integer(Integer.parseInt((String) value)));
-            } catch (NumberFormatException e) {
-                setBuildNo(BUILD_NO_DEFAULT);
-            }
-            return;
-        }
-        if (name.equals(P_ID_APTBOX)) {
-            setAptBox((String) value);
-            return;
-        }
-        if (name.equals(P_ID_STREET)) {
-            setStreetName((String) value);
-            return;
-        }
-    }
-
-    /**
-     * Sets the street name
-     */
-    private void setStreetName(String newStreetName) {
-        streetName = newStreetName;
-    }
-
-    /**
-     * The value as displayed in the Property Sheet. Will not print default values
-     * @return java.lang.String
-     */
-    public String toString() {
-        StringBuffer outStringBuffer = new StringBuffer();
-        if (!getAptBox().equals(APTBOX_DEFAULT)) {
-            outStringBuffer.append(getAptBox());
-            outStringBuffer.append(", "); //$NON-NLS-1$
-        }
-        if (!getBuildNo().equals(BUILD_NO_DEFAULT)) {
-            outStringBuffer.append(getBuildNo());
-            outStringBuffer.append(" "); //$NON-NLS-1$
-        }
-        if (!getStreetName().equals(STREETNAME_DEFAULT)) {
-            outStringBuffer.append(getStreetName());
-        }
-        return outStringBuffer.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserEditor.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserEditor.java
deleted file mode 100644
index 9c726b4..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserEditor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import org.eclipse.jface.text.Document;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-
-/**
- * This class implements the User editor.
- */
-public class UserEditor extends TextEditor {
-    private ContentOutlinePage userContentOutline;
-
-    /**
-     * UserEditor default Constructor
-     */
-    public UserEditor() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkbenchPart
-     */
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-        getSourceViewer().setDocument(
-                new Document(MessageUtil.getString("Editor_instructions"))); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter.equals(IContentOutlinePage.class)) {
-            return getContentOutline();
-        }
-        if (adapter.equals(IPropertySheetPage.class)) {
-            return getPropertySheet();
-        }
-        return super.getAdapter(adapter);
-    }
-
-    /**
-     * Returns the content outline.
-     */
-    protected ContentOutlinePage getContentOutline() {
-        if (userContentOutline == null) {
-            //Create a property outline page using the parsed result of passing in the document provider.
-            userContentOutline = new PropertySheetContentOutlinePage(
-                    new UserFileParser().parse(getDocumentProvider()));
-        }
-        return userContentOutline;
-    }
-
-    /**
-     * Returns the property sheet.
-     */
-    protected IPropertySheetPage getPropertySheet() {
-        return new PropertySheetPage();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserElement.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserElement.java
deleted file mode 100644
index fa5cc4a..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserElement.java
+++ /dev/null
@@ -1,615 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.views.properties.ColorPropertyDescriptor;
-import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySheetEntry;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * A User Element
- */
-public class UserElement extends OrganizationElement {
-
-    // Properties
-    private Name fullName;
-
-    private Address address;
-
-    private String phoneNumber;
-
-    private EmailAddress emailAddress;
-
-    private Boolean coop;
-
-    private Birthday birthday;
-
-    private Float salary;
-
-    private RGB hairColor;
-
-    private RGB eyeColor;
-
-    // Property default values
-    private Name fullName_Default;
-
-    private Address address_Default;
-
-    private String phoneNumber_Default = "555-1111"; //$NON-NLS-1$
-
-    private EmailAddress emailAddress_Default;
-
-    private Boolean coop_Default;
-
-    private Birthday birthday_Default;
-
-    private Float salary_Default;
-
-    private RGB hairColor_Default;
-
-    private RGB eyeColor_Default;
-
-    // Property unique keys
-    public static final String P_ID_PHONENUMBER = "User.phonenumber"; //$NON-NLS-1$
-
-    public static final String P_ID_ADDRESS = "User.address"; //$NON-NLS-1$
-
-    public static final String P_ID_FULLNAME = "User.fullname"; //$NON-NLS-1$
-
-    public static final String P_ID_EMAIL = "User.email"; //$NON-NLS-1$
-
-    public static final String P_ID_COOP = "User.coop student"; //$NON-NLS-1$
-
-    public static final String P_ID_BDAY = "User.birthday"; //$NON-NLS-1$
-
-    public static final String P_ID_SALARY = "User.salary"; //$NON-NLS-1$
-
-    public static final String P_ID_HAIRCOLOR = "User.haircolor"; //$NON-NLS-1$
-
-    public static final String P_ID_EYECOLOR = "User.eyecolor"; //$NON-NLS-1$
-
-    // Property display keys
-    public static final String P_PHONENUMBER = MessageUtil
-            .getString("phonenumber"); //$NON-NLS-1$
-
-    public static final String P_ADDRESS = MessageUtil.getString("address"); //$NON-NLS-1$
-
-    public static final String P_FULLNAME = MessageUtil.getString("fullname"); //$NON-NLS-1$
-
-    public static final String P_EMAIL = MessageUtil.getString("email"); //$NON-NLS-1$
-
-    public static final String P_COOP = MessageUtil.getString("coop_student"); //$NON-NLS-1$
-
-    public static final String P_BDAY = MessageUtil.getString("birthday"); //$NON-NLS-1$
-
-    public static final String P_SALARY = MessageUtil.getString("salary"); //$NON-NLS-1$
-
-    public static final String P_HAIRCOLOR = MessageUtil.getString("haircolor"); //$NON-NLS-1$
-
-    public static final String P_EYECOLOR = MessageUtil.getString("eyecolor"); //$NON-NLS-1$
-
-    // Help context ids
-    private static final String PHONE_NUMBER_CONTEXT = "org.eclipse.ui.examples.propertysheet.phone_number_context"; //$NON-NLS-1$
-
-    private static final String ADDRESS_CONTEXT = "org.eclipse.ui.examples.propertysheet.address_context"; //$NON-NLS-1$
-
-    private static final String FULL_NAME_CONTEXT = "org.eclipse.ui.examples.propertysheet.full_name_context"; //$NON-NLS-1$
-
-    private static final String EMAIL_CONTEXT = "org.eclipse.ui.examples.propertysheet.email_context"; //$NON-NLS-1$
-
-    private static final String COOP_CONTEXT = "org.eclipse.ui.examples.propertysheet.coop_context"; //$NON-NLS-1$
-
-    private static final String BIRTHDAY_CONTEXT = "org.eclipse.ui.examples.propertysheet.birthday_context"; //$NON-NLS-1$
-
-    private static final String SALARY_CONTEXT = "org.eclipse.ui.examples.propertysheet.salary_context"; //$NON-NLS-1$
-
-    private static final String HAIR_COLOR__CONTEXT = "org.eclipse.ui.examples.propertysheet.hair_color_context"; //$NON-NLS-1$
-
-    private static final String EYE_COLOR_CONTEXT = "org.eclipse.ui.examples.propertysheet.eye_color_context"; //$NON-NLS-1$
-
-    // Property Category
-    public static final String P_CONTACTINFO = MessageUtil.getString("contact"); //$NON-NLS-1$
-
-    public static final String P_PERSONELINFO = MessageUtil
-            .getString("personel"); //$NON-NLS-1$
-
-    public static final String P_PERSONALINFO = MessageUtil
-            .getString("personal"); //$NON-NLS-1$
-
-    // Property Values
-    public static final Integer P_VALUE_TRUE = new Integer(0);
-
-    public static final Integer P_VALUE_FALSE = new Integer(1);
-
-    public static final String P_VALUE_TRUE_LABEL = MessageUtil
-            .getString("true"); //$NON-NLS-1$
-
-    public static final String P_VALUE_FALSE_LABEL = MessageUtil
-            .getString("false"); //$NON-NLS-1$
-
-    static private class BooleanLabelProvider extends LabelProvider {
-        public String getText(Object element) {
-            String[] values = new String[] { P_VALUE_TRUE_LABEL,
-                    P_VALUE_FALSE_LABEL };
-            return values[((Integer) element).intValue()];
-        }
-    }
-
-    //
-    static private Vector descriptors;
-    static {
-        descriptors = new Vector();
-        PropertyDescriptor propertyDescriptor;
-
-        ///
-        propertyDescriptor = new TextPropertyDescriptor(P_ID_PHONENUMBER,
-                P_PHONENUMBER);
-        propertyDescriptor.setCategory(P_CONTACTINFO);
-        propertyDescriptor.setHelpContextIds(PHONE_NUMBER_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new PropertyDescriptor(P_ID_ADDRESS, P_ADDRESS);
-        propertyDescriptor.setCategory(P_CONTACTINFO);
-        propertyDescriptor.setHelpContextIds(ADDRESS_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new TextPropertyDescriptor(P_ID_EMAIL, P_EMAIL);
-        propertyDescriptor.setCategory(P_CONTACTINFO);
-        propertyDescriptor.setHelpContextIds(EMAIL_CONTEXT);
-        propertyDescriptor.setValidator(new EmailAddressValidator());
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new TextPropertyDescriptor(P_ID_FULLNAME,
-                P_FULLNAME);
-        propertyDescriptor.setCategory(P_PERSONELINFO);
-        propertyDescriptor.setHelpContextIds(FULL_NAME_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new PropertyDescriptor(P_ID_BDAY, P_BDAY);
-        propertyDescriptor.setCategory(P_PERSONELINFO);
-        propertyDescriptor.setHelpContextIds(BIRTHDAY_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new ComboBoxPropertyDescriptor(P_ID_COOP, P_COOP,
-                new String[] { P_VALUE_TRUE_LABEL, P_VALUE_FALSE_LABEL });
-        propertyDescriptor.setCategory(P_PERSONELINFO);
-        propertyDescriptor.setHelpContextIds(COOP_CONTEXT);
-        propertyDescriptor.setLabelProvider(new BooleanLabelProvider());
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new TextPropertyDescriptor(P_ID_SALARY, P_SALARY);
-        //add custom validator to propertyDescriptor limiting salary values to be
-        //greator than zero
-        propertyDescriptor.setHelpContextIds(new Object[] { SALARY_CONTEXT });
-        propertyDescriptor
-                .setFilterFlags(new String[] { IPropertySheetEntry.FILTER_ID_EXPERT });
-        propertyDescriptor.setValidator(new ICellEditorValidator() {
-            public String isValid(Object value) {
-                if (value == null)
-                    return MessageUtil.getString("salary_is_invalid"); //$NON-NLS-1$
-                //
-                Float trySalary;
-                try {
-                    trySalary = new Float(Float.parseFloat((String) value));
-                } catch (NumberFormatException e) {
-                    return MessageUtil.getString("salary_is_invalid"); //$NON-NLS-1$
-                }
-                if (trySalary.floatValue() < 0.0)
-                    return MessageUtil
-                            .getString("salary_must_be_greator_than_zero"); //$NON-NLS-1$
-                return null;
-            }
-        });
-        propertyDescriptor.setCategory(P_PERSONELINFO);
-        descriptors.addElement(propertyDescriptor);
-
-        /// HairColor
-        propertyDescriptor = new ColorPropertyDescriptor(P_ID_HAIRCOLOR,
-                P_HAIRCOLOR);
-        propertyDescriptor.setCategory(P_PERSONALINFO);
-        propertyDescriptor.setHelpContextIds(HAIR_COLOR__CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        /// EyeColor
-        propertyDescriptor = new ColorPropertyDescriptor(P_ID_EYECOLOR,
-                P_EYECOLOR);
-        propertyDescriptor.setCategory(P_PERSONALINFO);
-        propertyDescriptor.setHelpContextIds(EYE_COLOR_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        //gets descriptors from parent, warning name-space collision may occur
-        Vector parentDescriptors = OrganizationElement.getDescriptors();
-        for (int i = 0; i < parentDescriptors.size(); i++) {
-            descriptors.addElement(parentDescriptors.elementAt(i));
-        }
-    }
-
-    /**
-     * Constructor. Default visibility only called from GroupElement.createSubGroup()
-     * Creates a new UserElement within the passed parent GroupElement,
-     * *
-     * @param name the name 
-     * @param parent the parent
-     */
-    UserElement(String name, GroupElement parent) {
-        super(name, parent);
-    }
-
-    /**
-     * Returns the address
-     */
-    private Address getAddress() {
-        if (address == null)
-            address = new Address();
-        return address;
-    }
-
-    /**
-     * Returns the birthday
-     */
-    private Birthday getBirthday() {
-        if (birthday == null)
-            birthday = new Birthday();
-        return birthday;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object[] getChildren(Object o) {
-        return new Object[0];
-    }
-
-    /**
-     * Returns the coop
-     */
-    private Boolean getCoop() {
-        if (coop == null)
-            coop = new Boolean(false);
-        return coop;
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the email address
-     */
-    EmailAddress getEmailAddress() {
-        if (emailAddress == null)
-            emailAddress = new EmailAddress();
-        return emailAddress;
-    }
-
-    /**
-     * Returns the eye color
-     */
-    private RGB getEyeColor() {
-        if (eyeColor == null)
-            eyeColor = new RGB(60, 60, 60);
-        return eyeColor;
-    }
-
-    /**
-     * Returns the full name
-     */
-    private Name getFullName() {
-        if (fullName == null)
-            fullName = new Name(getName());
-        return fullName;
-    }
-
-    /**
-     * Returns the hair color
-     */
-    private RGB getHairColor() {
-        if (hairColor == null)
-            hairColor = new RGB(255, 255, 255);
-        return hairColor;
-    }
-
-    /**
-     * Returns the phone number
-     */
-    private String getPhoneNumber() {
-        return phoneNumber;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Userment</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     *	1) P_ADDRESS returns Address (IPropertySource), the address of this user
-     * 	2) P_FULLNAME returns Name (IPropertySource), the full name of this user
-     *  3) P_PHONENUMBER returns String, the phone number of this user
-     *  4) P_EMAIL returns EmailAddress (IPropertySource), the email address of this user
-     *  5) P_COOP returns Boolean, whether the individual is a coop student or not
-     *  6) P_BDAY returns Birthday
-     *  7) P_SALARY return java.lang.Float
-     *  8) P_HAIRCOLOR, expects RGB
-     *  9) P_EYECOLOR, expects RGB
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_ADDRESS))
-            return getAddress();
-        if (propKey.equals(P_ID_FULLNAME))
-            return getFullName();
-        if (propKey.equals(P_ID_PHONENUMBER))
-            return getPhoneNumber();
-        if (propKey.equals(P_ID_EMAIL))
-            return getEmailAddress();
-        if (propKey.equals(P_ID_COOP))
-            return getCoop().equals(Boolean.TRUE) ? P_VALUE_TRUE
-                    : P_VALUE_FALSE;
-        if (propKey.equals(P_ID_BDAY))
-            return getBirthday();
-        if (propKey.equals(P_ID_SALARY))
-            return getSalary().toString();
-        if (propKey.equals(P_ID_HAIRCOLOR))
-            return getHairColor();
-        if (propKey.equals(P_ID_EYECOLOR))
-            return getEyeColor();
-        return super.getPropertyValue(propKey);
-    }
-
-    /**
-     * Returns the salary
-     */
-    private Float getSalary() {
-        if (salary == null)
-            salary = new Float(0);
-        return salary;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        if (property.equals(P_ID_ADDRESS))
-            return getAddress() != address_Default;
-        if (property.equals(P_ID_FULLNAME))
-            return getFullName() != fullName_Default;
-        if (property.equals(P_ID_PHONENUMBER))
-            return getPhoneNumber() != phoneNumber_Default;
-        if (property.equals(P_ID_EMAIL))
-            return getEmailAddress() != emailAddress_Default;
-        if (property.equals(P_ID_COOP))
-            return getCoop() != coop_Default;
-        if (property.equals(P_ID_BDAY))
-            return getBirthday() != birthday_Default;
-        if (property.equals(P_ID_SALARY))
-            return getSalary() != salary_Default;
-        if (property.equals(P_ID_HAIRCOLOR))
-            return getHairColor() != hairColor_Default;
-        if (property.equals(P_ID_EYECOLOR))
-            return getEyeColor() != eyeColor_Default;
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on OrganizationElement
-     */
-    public boolean isUser() {
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        if (property.equals(P_ID_ADDRESS)) {
-            setAddress(address_Default);
-            return;
-        }
-        if (property.equals(P_ID_FULLNAME)) {
-            setFullName(fullName_Default);
-            return;
-        }
-        if (property.equals(P_ID_PHONENUMBER)) {
-            setPhoneNumber(phoneNumber_Default);
-            return;
-        }
-        if (property.equals(P_ID_EMAIL)) {
-            setEmailAddress(emailAddress_Default);
-            return;
-        }
-        if (property.equals(P_ID_COOP)) {
-            setCoop(coop_Default);
-        }
-        if (property.equals(P_ID_BDAY)) {
-            setBirthday(birthday_Default);
-            return;
-        }
-        if (property.equals(P_ID_SALARY)) {
-            setSalary(salary_Default);
-            return;
-        }
-        if (property.equals(P_ID_HAIRCOLOR)) {
-            setHairColor(hairColor_Default);
-            return;
-        }
-        if (property.equals(P_ID_EYECOLOR)) {
-            setEyeColor(eyeColor_Default);
-            return;
-        }
-        super.resetPropertyValue(property);
-    }
-
-    /**
-     * Sets the address
-     */
-    public void setAddress(Address newAddress) {
-        address = newAddress;
-    }
-
-    /**
-     * Sets the birthday
-     */
-    public void setBirthday(Birthday newBirthday) {
-        birthday = new Birthday();
-    }
-
-    /**
-     * Sets the coop
-     */
-    public void setCoop(Boolean newCoop) {
-        coop = newCoop;
-    }
-
-    /**
-     *Sets the email address
-     */
-    public void setEmailAddress(EmailAddress newEmailAddress) {
-        emailAddress = newEmailAddress;
-    }
-
-    /**
-     * Sets eye color
-     */
-    public void setEyeColor(RGB newEyeColor) {
-        eyeColor = newEyeColor;
-    }
-
-    /**
-     * Sets full name
-     */
-    public void setFullName(Name newFullName) {
-        fullName = newFullName;
-    }
-
-    /**
-     * Sets hair color
-     */
-    public void setHairColor(RGB newHairColor) {
-        hairColor = newHairColor;
-    }
-
-    /**
-     * Sets phone number
-     */
-    public void setPhoneNumber(String newPhoneNumber) {
-        phoneNumber = newPhoneNumber;
-    }
-
-    /** 
-     * The <code>OrganizationElement</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     *	1) P_ADDRESS, expects Address
-     *	2) P_FULLNAME, expects Name
-     *	3) P_PHONENUMBER, expects String
-     *  4) P_EMAIL, expects EmailAddress.
-     *  5) P_BOOLEAN, expects Boolean, whether the individual is a coop student or not
-     *  6) P_BDAY, expects Birthday
-     *  7) P_SALARY, expects java.lang.Float
-     *  8) P_HAIRCOLOR, expects RGB
-     *  9) P_EYECOLOR, expects RGB
-     */
-    public void setPropertyValue(Object propKey, Object val) {
-        // need to convert from String to domain objects
-        if (propKey.equals(P_ID_ADDRESS)) {
-            //setAddress((Address)val);
-            return;
-        }
-        if (propKey.equals(P_ID_FULLNAME)) {
-            setFullName(new Name((String) val));
-            return;
-        }
-        if (propKey.equals(P_ID_PHONENUMBER)) {
-            setPhoneNumber((String) val);
-            return;
-        }
-        if (propKey.equals(P_ID_EMAIL)) {
-            setEmailAddress(new EmailAddress((String) val));
-            return;
-        }
-        if (propKey.equals(P_ID_COOP)) {
-            setCoop(((Integer) val).equals(P_VALUE_TRUE) ? Boolean.TRUE
-                    : Boolean.FALSE);
-        }
-        if (propKey.equals(P_ID_BDAY)) {
-            //setBirthday((Birthday)val);
-            return;
-        }
-        if (propKey.equals(P_ID_SALARY)) {
-            try {
-                setSalary(new Float(Float.parseFloat((String) val)));
-            } catch (NumberFormatException e) {
-                setSalary(salary_Default);
-            }
-            return;
-        }
-        if (propKey.equals(P_ID_HAIRCOLOR)) {
-            setHairColor((RGB) val);
-            return;
-        }
-        if (propKey.equals(P_ID_EYECOLOR)) {
-            setEyeColor((RGB) val);
-            return;
-        }
-        super.setPropertyValue(propKey, val);
-    }
-
-    /**
-     * Sets the salary
-     */
-    void setSalary(Float newSalary) {
-        salary = newSalary;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getForeground(java.lang.Object)
-     */
-    public RGB getForeground(Object element) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getBackground(java.lang.Object)
-     */
-    public RGB getBackground(Object element) {
-        return null;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserFileParser.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserFileParser.java
deleted file mode 100644
index fc45ba6..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserFileParser.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-
-/**
- * This class is an example of the implementation of a simple parser.
- */
-public class UserFileParser {
-    /**
-     * Return the fabricated result for this example.
-     *
-     */
-    private static IAdaptable getFabricatedResult() {
-        // returns fabricated input. 
-        GroupElement root = new GroupElement(
-                MessageUtil.getString("Everybody"), null); //$NON-NLS-1$
-        GroupElement userGroup = root.createSubGroup(MessageUtil
-                .getString("Company_Inc")); //$NON-NLS-1$
-        GroupElement ottGroup = userGroup.createSubGroup(MessageUtil
-                .getString("Waterloo_Lab")); //$NON-NLS-1$
-        userGroup.createSubGroup(MessageUtil.getString("Toronto_Lab")); //$NON-NLS-1$
-        userGroup.createSubGroup(MessageUtil.getString("Hamilton_Lab")); //$NON-NLS-1$
-        userGroup.createSubGroup(MessageUtil.getString("London_Lab")); //$NON-NLS-1$
-        userGroup.createSubGroup(MessageUtil.getString("Grimsby_Lab")); //$NON-NLS-1$
-        GroupElement uiTeam = ottGroup.createSubGroup(MessageUtil
-                .getString("Team1")); //$NON-NLS-1$
-        //
-        UserElement user1 = uiTeam.createUser("richard"); //$NON-NLS-1$
-        user1.setFullName(new Name(MessageUtil.getString("Richard_Zokol"))); //$NON-NLS-1$
-        user1.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("rzokol@company.com"))); //$NON-NLS-1$
-        user1.setPhoneNumber("x789"); //$NON-NLS-1$
-        user1
-                .setAddress(new Address(
-                        new StreetAddress(232, MessageUtil
-                                .getString("Champlain")), MessageUtil.getString("Hull"), new Integer(5), MessageUtil.getString("A1B2C3"))); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-        user1.setBirthday(new Birthday(18, 1, 1981));
-        user1.setCoop(new Boolean(true));
-        user1.setHairColor(new RGB(0, 0, 0));
-        user1.setEyeColor(new RGB(0, 0, 0));
-        //
-        UserElement user2 = uiTeam.createUser("george"); //$NON-NLS-1$
-        user2.setFullName(new Name(MessageUtil.getString("George_Knudson"))); //$NON-NLS-1$
-        user2.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("gknudson@company.com"))); //$NON-NLS-1$
-        user2.setPhoneNumber("x678"); //$NON-NLS-1$
-        user2
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Toronto"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        user2.setBirthday(new Birthday(7, 5, 1978));
-        user2.setCoop(new Boolean(true));
-        user2.setHairColor(new RGB(0, 0, 0));
-        user2.setEyeColor(new RGB(0, 0, 0));
-
-        //
-        UserElement user3 = uiTeam.createUser("arnold"); //$NON-NLS-1$
-        user3.setFullName(new Name(MessageUtil.getString("Arnold_Palmer"))); //$NON-NLS-1$
-        user3.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("apalmer@company.com"))); //$NON-NLS-1$
-        user3.setPhoneNumber("x567"); //$NON-NLS-1$
-        user3
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        user3.setBirthday(new Birthday(11, 23, 1962));
-        user3.setHairColor(new RGB(0, 0, 0));
-        user3.setEyeColor(new RGB(0, 0, 0));
-
-        //
-        UserElement user4 = uiTeam.createUser("lee"); //$NON-NLS-1$
-        user4.setFullName(new Name(MessageUtil.getString("Lee_Trevino"))); //$NON-NLS-1$
-        user4.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("ltrevino@company.com"))); //$NON-NLS-1$
-        user4.setPhoneNumber("x456"); //$NON-NLS-1$
-        user4
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        //
-        UserElement user5 = uiTeam.createUser("tiger"); //$NON-NLS-1$
-        user5.setFullName(new Name(MessageUtil.getString("Tiger_Woods"))); //$NON-NLS-1$
-        user5.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("twoods@company.com"))); //$NON-NLS-1$
-        user5.setPhoneNumber("x345"); //$NON-NLS-1$
-        user5
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        //
-        UserElement user6 = uiTeam.createUser("jack"); //$NON-NLS-1$
-        user6.setFullName(new Name(MessageUtil.getString("Jack_Nicklaus"))); //$NON-NLS-1$
-        user6.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("jnicklaus@company.com"))); //$NON-NLS-1$
-        user6.setPhoneNumber("x234 "); //$NON-NLS-1$
-        user6
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        //
-        UserElement greg = uiTeam.createUser("weslock"); //$NON-NLS-1$
-        greg.setFullName(new Name(MessageUtil.getString("Weslock"))); //$NON-NLS-1$
-        greg.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("weslock@company.com"))); //$NON-NLS-1$
-        greg.setPhoneNumber("x123"); //$NON-NLS-1$
-        greg
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-
-        return root;
-    }
-
-    /**
-     * Parse the input given by the argument. For this example we do no parsing and return
-     * a fabricated result.
-     *
-     */
-    public IAdaptable parse(IDocumentProvider documentProvider) {
-
-        return getFabricatedResult();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/messages.properties b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/messages.properties
deleted file mode 100644
index edf96bc..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/messages.properties
+++ /dev/null
@@ -1,108 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Alberta=Alberta
-British_Columbia=British Columbia
-City=City
-Manitoba=Manitoba
-New_Brunswick=New Brunswick
-Newfoundland=Newfoundland
-North_West_Territories=North West Territories
-Nova_Scotia=Nova Scotia
-Nunavut=Nunavut
-Ontario=Ontario
-PostalCode=PostalCode
-Prince_Edward_Island=Prince Edward Island
-Province=Province
-Quebec=Quebec
-Saskatchewan=Saskatchewan
-Street=Street
-Yukon=Yukon
-_is_an_invalid_format_for_a_postal_code={0} is an invalid format for a postal code
-postal_code_is_incomplete=postal code is incomplete
-unspecified_city=unspecified city
-April=April
-August=August
-December=December
-February=February
-January=January
-July=July
-June=June
-March=March
-May=May
-November=November
-October=October
-September=September
-day=day
-month=month
-year=year
-domain=domain
-emailaddress_cannot_be_set_to_null=emailaddress cannot be set to null
-invalid_email_address_format_should_have_been_validated=invalid email address format, should have been validated
-unknownDomain=unknownDomain
-unknownUser=unknownUser
-userid=userid
-email_address_does_not_have_a_valid_format=email address does not have a valid format
-email_address_is_incomplete=email address is incomplete
-FirstName=FirstName
-LastName=LastName
-Middle=Middle
-name=name
-apt.no_or_box.no=apt.no or box.no
-building_number=building number
-street=street
-unspecified=unspecified
-Editor_instructions=Click on the items in the content outline\nto see their properties
-address=address
-birthday=birthday
-contact=contact
-coop_student=coop student
-email=email
-eyecolor=eyecolor
-false=false
-fullname=fullname
-haircolor=haircolor
-personal=personal
-personel=personel
-phonenumber=phonenumber
-salary=salary
-salary_is_invalid=salary is invalid
-salary_must_be_greator_than_zero=salary must be greator than zero
-true=true
-A1B2C3=A1B2C3
-Arnold_Palmer=Arnold Palmer
-Champlain=Champlain
-Company_Inc=Company Inc.
-Everybody=Everybody
-George_Knudson=George Knudson
-Grimsby_Lab=Grimsby Lab
-Hamilton_Lab=Hamilton Lab
-Hull=Hull
-Jack_Nicklaus=Jack Nicklaus
-Lee_Trevino=Lee Trevino
-London_Lab=London Lab
-Ottawa=Ottawa
-Richard_Zokol=Richard Zokol
-Team1=Team1
-Tiger_Woods=Tiger Woods
-Toronto=Toronto
-Toronto_Lab=Toronto Lab
-Waterloo_Lab=Waterloo Lab
-Weslock=Weslock
-apalmer@company.com=apalmer@company.com
-gknudson@company.com=gknudson@company.com
-jnicklaus@company.com=jnicklaus@company.com
-ltrevino@company.com=ltrevino@company.com
-rzokol@company.com=rzokol@company.com
-twoods@company.com=twoods@company.com
-weslock@company.com=weslock@company.com
-Popup_Menu_Action_executed=Popup Menu Action executed
-Property_Sheet_Example=Property Sheet Example
-
diff --git a/examples/org.eclipse.ui.examples.propertysheet/HelpContexts.xml b/examples/org.eclipse.ui.examples.propertysheet/HelpContexts.xml
deleted file mode 100644
index 0a1ed0a..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/HelpContexts.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<contexts>
-
-   <context  id="phone_number_context" >
-      <description>Help for phone number</description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="address_context" >
-      <description>Help for address </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="full_name_context" >
-      <description>Help for full name </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="email_context" >
-      <description>Help for email address </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="coop_context" >
-      <description>Help for coop </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="birthday_context" >
-      <description>Help for birthday </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="salary_context" >
-      <description>Help for salary </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="hair_color_context" >
-      <description>Help for hair color </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="eye_color_context" >
-      <description>Help for eye color </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-
-</contexts>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.propertysheet/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.propertysheet/META-INF/MANIFEST.MF
deleted file mode 100644
index 518284f..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.propertysheet; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-ClassPath: propertysheet.jar
-Bundle-Activator: org.eclipse.ui.examples.propertysheet.PropertySheetPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.views,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.text,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors
-Eclipse-LazyStart: true
diff --git a/examples/org.eclipse.ui.examples.propertysheet/about.html b/examples/org.eclipse.ui.examples.propertysheet/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.propertysheet/build.properties b/examples/org.eclipse.ui.examples.propertysheet/build.properties
deleted file mode 100644
index fb15c08..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.propertysheet.jar = Eclipse UI Examples PropertySheet/
-
-bin.includes = doc-html/,\
-               icons/,\
-               about.html,\
-               doc.zip,\
-               HelpContexts.xml,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               META-INF/
-
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.propertysheet/doc-html/hglegal.htm b/examples/org.eclipse.ui.examples.propertysheet/doc-html/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/doc-html/hglegal.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html b/examples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html
deleted file mode 100644
index 54205b2..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Desktop - Property Sheet Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Property Sheet</b></h2>
-
-<h3>
-Introduction</h3>
-The Property Sheet Example adds an editor for files with the .usr extension
-and also demonstrates how to add properties and outline views on a file.
-<br>&nbsp;
-<h3>
-Running the example</h3>
-To start using the Property Sheet Example, create a file with extension
-.usr.&nbsp;&nbsp; Open the file and the Outline and Properties views to
-see the example in action.&nbsp; Click on items in the Outline view and
-look in the Properties view for details of the selected item in the Outline
-view.&nbsp; The people items in the list show the most detail in the Properties
-view.
-<h4>
-<b>Creating a new usr file</b></h4>
-Create a new file with file extension .usr.&nbsp; From the File menu, select
-New and then select Other... from the sub-menu.&nbsp; Click on Simple in
-the wizard, then select
-<br>File in the list on the left.&nbsp; Click on Next to supply the file
-name (make sure the extension is .usr) and the folder in which the file
-should be contained.
-<br>&nbsp;
-<h3>
-Details</h3>
-The Property Sheet Example demonstrates how to provide properties to the
-Property Sheet View.
-<p>The tree viewer of the Content Outline View contains and presents OrganizationElements.
-When an element is selected in the Content Outline View the Workspace will
-invoke <tt>getAdapter</tt>
-on the selected OrganizationElement. If an adapter is requested for IPropertySource,
-the OrganizationElement returns itself as it impements IPropertySource
-The Property Sheet View then use the Organization Element as it source.
-<br>&nbsp;
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.propertysheet/doc.zip b/examples/org.eclipse.ui.examples.propertysheet/doc.zip
deleted file mode 100644
index 41e8aa9..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/doc.zip
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.propertysheet/icons/obj16/usereditor.gif b/examples/org.eclipse.ui.examples.propertysheet/icons/obj16/usereditor.gif
deleted file mode 100644
index 64d7907..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/icons/obj16/usereditor.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.propertysheet/plugin.properties b/examples/org.eclipse.ui.examples.propertysheet/plugin.properties
deleted file mode 100644
index 4842080..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/plugin.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = User File Editor
-Plugin.providerName = Eclipse.org
-Editors.UserEditor = User File Editor
-PopupMenus.action = Show Action
diff --git a/examples/org.eclipse.ui.examples.propertysheet/plugin.xml b/examples/org.eclipse.ui.examples.propertysheet/plugin.xml
deleted file mode 100644
index d834a9e..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/plugin.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%Editors.UserEditor"
-            icon="icons/obj16/usereditor.gif"
-            extensions="usr"
-            class="org.eclipse.ui.examples.propertysheet.UserEditor"
-            id="org.eclipse.ui.examples.propertysheet.UserEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.ui.examples.propertysheet.UserElement"
-            id="org.eclipse.ui.examples.propertysheet">
-         <action
-               label="%PopupMenus.action"
-               class="org.eclipse.ui.examples.propertysheet.PopupMenuActionDelegate"
-               menubarPath="additions"
-               enablesFor="1"
-               id="org.eclipse.ui.examples.propertysheet.action1">
-         </action>
-      </objectContribution>
-   </extension>
-   <extension
-         point="org.eclipse.help.contexts">
-      <contexts
-            file="HelpContexts.xml">
-      </contexts>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/.classpath b/examples/org.eclipse.ui.examples.rcp.browser/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/.cvsignore b/examples/org.eclipse.ui.examples.rcp.browser/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/.project b/examples/org.eclipse.ui.examples.rcp.browser/.project
deleted file mode 100644
index 72f5949..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.rcp.browser</name>
-	<comment></comment>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9e4d26..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Jan 15 21:20:27 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 19dd0a9..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:17:40 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/Browser.product b/examples/org.eclipse.ui.examples.rcp.browser/Browser.product
deleted file mode 100644
index cf1dee7..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/Browser.product
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="%productName" id="org.eclipse.ui.examples.rcp.browser.product" application="org.eclipse.ui.examples.rcp.browser.app" useFeatures="false">
-
-   <aboutInfo>
-      <image path="icons/eclipse_lg.gif"/>
-      <text>
-         %aboutText
-      </text>
-   </aboutInfo>
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-   </launcherArgs>
-
-   <windowImages small="icons/eclipse.gif" large="icons/eclipse32.gif"/>
-
-
-   <launcher name="browser">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <plugins includeFragments="false">
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.carbon.macosx.ppc"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ia64"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ppc"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86_64"/>
-      <plugin id="org.eclipse.swt.gtk.solaris.sparc"/>
-      <plugin id="org.eclipse.swt.motif.aix.ppc"/>
-      <plugin id="org.eclipse.swt.motif.hpux.ia64_32"/>
-      <plugin id="org.eclipse.swt.motif.hpux.PA_RISC"/>
-      <plugin id="org.eclipse.swt.motif.linux.x86"/>
-      <plugin id="org.eclipse.swt.motif.solaris.sparc"/>
-      <plugin id="org.eclipse.swt.photon.qnx.x86"/>
-      <plugin id="org.eclipse.swt.win32.wce_ppc.arm"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.examples.rcp.browser"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF
deleted file mode 100644
index 7b8ee01..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ui.examples.rcp.browser; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-ClassPath: browser.jar
-Bundle-Activator: org.eclipse.ui.examples.rcp.browser.BrowserPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui
-Eclipse-LazyStart: true
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/about.html b/examples/org.eclipse.ui.examples.rcp.browser/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/build.properties b/examples/org.eclipse.ui.examples.rcp.browser/build.properties
deleted file mode 100644
index 17534b0..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               about.html,\
-               readme.html,\
-               splash.bmp,\
-               META-INF/
-source.browser.jar = src/
-src.includes = about.html,\
-               readme.html
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt16.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/alt16.gif
deleted file mode 100644
index 05626b1..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt16.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt32.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/alt32.gif
deleted file mode 100644
index b432f88..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt32.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt_about.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/alt_about.gif
deleted file mode 100644
index 20d9ad2..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt_about.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse.gif
deleted file mode 100644
index 6ca37e0..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse32.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse32.gif
deleted file mode 100644
index f71a8f6..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse_lg.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse_lg.gif
deleted file mode 100644
index 27c0838..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/plugin.properties b/examples/org.eclipse.ui.examples.rcp.browser/plugin.properties
deleted file mode 100644
index 76d0a44..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName= Browser Example
-providerName= Eclipse.org
-
-productName= Browser Example
-appName= Browser Example App
-perspectives.browser.name= Browser Example
-views.category.name= Browser Example
-views.browser.name= Browser
-views.history.name= History
-
-swtAppName= BrowserExample
-aboutText= Browser Example \n\n\
-(c) Copyright Eclipse contributors and others 2003, 2004.  All rights reserved.\n\
-Visit http://www.eclipse.org/platform
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/plugin.xml b/examples/org.eclipse.ui.examples.rcp.browser/plugin.xml
deleted file mode 100644
index ae8d123..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/plugin.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.core.runtime.applications"
-         id="app"
-         name="%appName">
-      <application>
-         <run
-            class="org.eclipse.ui.examples.rcp.browser.BrowserApp">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            id="org.eclipse.ui.examples.rcp.browser.browserPerspective"
-            name="%perspectives.browser.name"
-            class="org.eclipse.ui.examples.rcp.browser.BrowserPerspectiveFactory"
-			fixed="false"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            id="org.eclipse.ui.examples.rcp.browser"
-            name="%views.category.name"/>
-      <view
-            id="org.eclipse.ui.examples.rcp.browser.browserView"
-            name="%views.browser.name"
-            icon="icons/eclipse.gif"
-            class="org.eclipse.ui.examples.rcp.browser.BrowserView"
-            category="org.eclipse.ui.examples.rcp.browser"
-            allowMultiple="true"/>
-      <view
-            id="org.eclipse.ui.examples.rcp.browser.historyView"
-            name="%views.history.name"
-            icon="icons/eclipse.gif"
-            class="org.eclipse.ui.examples.rcp.browser.HistoryView"
-            category="org.eclipse.ui.examples.rcp.browser"/>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.products"
-         id="product">
-      <product
-            name="%productName"
-            application="org.eclipse.ui.examples.rcp.browser.app">
-         <property
-               name="appName"
-               value="%swtAppName"/>
-         <property
-               name="windowImages"
-               value="icons/eclipse.gif,icons/eclipse32.gif"/>
-         <property
-               name="aboutText"
-               value="%aboutText"/>
-         <property
-               name="aboutImage"
-               value="icons/eclipse_lg.gif"/>
-         <property
-               name="preferenceCustomization"
-               value="plugin_customization.ini"/>
-      </product>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Browser"
-            id="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Back"
-            id="org.eclipse.ui.examples.rcp.browser.commands.back"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Forward"
-            id="org.eclipse.ui.examples.rcp.browser.commands.forward"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Stop"
-            id="org.eclipse.ui.examples.rcp.browser.commands.stop"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Refresh"
-            id="org.eclipse.ui.examples.rcp.browser.commands.refresh"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="New Tab"
-            id="org.eclipse.ui.examples.rcp.browser.commands.newTab"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="History"
-            id="org.eclipse.ui.examples.rcp.browser.commands.history"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Easter Egg"
-            id="org.eclipse.ui.examples.rcp.browser.commands.easterEgg"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <scheme
-            name="Browser Keys"
-            id="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.back"
-            sequence="M3+ARROW_LEFT"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.forward"
-            sequence="M3+ARROW_RIGHT"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.stop"
-            sequence="ESC"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.refresh"
-            sequence="F5"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.newTab"
-            sequence="M1+T"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.history"
-            sequence="M1+H"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.easterEgg"
-            sequence="M1+M2+E"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer class="org.eclipse.ui.examples.rcp.browser.BrowserPreferenceInitializer"/>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/plugin_customization.ini b/examples/org.eclipse.ui.examples.rcp.browser/plugin_customization.ini
deleted file mode 100644
index e5ffb06..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/plugin_customization.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.ui/DOCK_PERSPECTIVE_BAR=topRight
-org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.examples.rcp.browser.keyConfiguration
-org.eclipse.ui/presentationFactoryId=org.eclipse.ui.examples.presentation.customtoolbar
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/readme.html b/examples/org.eclipse.ui.examples.rcp.browser/readme.html
deleted file mode 100644
index 1f21ad5..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/readme.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-<title>Eclipse RCP Browser Example</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>Eclipse RCP Browser Example</h2>
- 
-<p>Last updated May 21, 2004</p>	
-
-<h3>Description</h3>
-<p>This is an example of a simple Eclipse Rich Client Platform (RCP) application.
-It is a bare bones web browser, using the SWT Browser control.
-</p>
-<p>
-The code is in package <code>org.eclipse.ui.examples.browser</code>, and consists
-of an application class (<code>BrowserApp</code>), a workbench advisor for 
-configuring the workbench (<code>BrowserAdvisor</code>), and a single perspective 
-(<code>BrowserPerspectiveFactory</code>) containing a single view (<code>BrowserView</code>).
-</p>
-<p>
-The application defines several built-in actions in the menu and toolbar that are
-typical for web browsers (Back, Forward, Stop, Refresh).  These are added in 
-<code>BrowserActionBuilder</code> when a new window is opened (see 
-<code>BrowserAdvisor.fillActionBars(...)</code>).  These actions are defined as 
-retargetable actions, for which the view registers handling actions.
-</p>
-<p>
-The view consists of an address bar (a <code>Label</code> and a <code>Text</code>
-control) and the <code>Browser</code> control.  To handle status and progress
-events, it simply passes on the relevant events from the <code>Browser</code> 
-control to the Workbench status line.
-
-<h3>Running the example</h3>
-To run the RCP Browser example from within the Eclipse SDK:
-<ol>
-<li>Load project org.eclipse.ui.examples.rcp.browser
-from the Eclipse repository into a self-hosting workspace.</li>
-<li>Create a new "Run-time workbench" launch configuration called "Browser Example".</li>
-<li>On the "Arguments" tab, select "Run a product" and choose select "org.eclipse.ui.examples.rcp.browser.product" from the drop-down.</li>
-<li>On the "Plug-ins" tab, configure it to include only the 
-  required plug-ins:
-  <ul>
-  <li>Press "Deselect All"</li>
-  <li>Check "org.eclipse.ui.examples.rcp.browser"</li>
-  <li>Press "Add Required Plug-ins"</li>
-  <li>Check "org.eclipse.update.configurator"</li>
-  </ul>
-</li>
-<li>Run or debug the launch config.</li>
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/splash.bmp b/examples/org.eclipse.ui.examples.rcp.browser/splash.bmp
deleted file mode 100644
index 6507770..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserActionBarAdvisor.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserActionBarAdvisor.java
deleted file mode 100644
index 60960dd..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserActionBarAdvisor.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.rcp.browser;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * Builds the actions and populates the menubar and toolbar when a new window
- * is opened.
- * This work is factored into a separate class to avoid cluttering 
- * <code>BrowserAdvisor</code>
- * <p>
- * This adds several actions to the menus and toolbar that are typical for 
- * web browsers (e.g. Back, Forward, Stop, Refresh).  These are defined as 
- * retargetable actions, for which the <code>BrowserView</code> registers 
- * handling actions.
- * 
- * @since 3.1
- */
-public class BrowserActionBarAdvisor extends ActionBarAdvisor {
-
-	private IAction newWindowAction, newTabAction, quitAction, historyAction, aboutAction;
-    private RetargetAction backAction, forwardAction, stopAction, refreshAction; 
-
-    public BrowserActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-	}
-    
-	protected void makeActions(final IWorkbenchWindow window) {
-        ISharedImages images = window.getWorkbench().getSharedImages();
-		
-		newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        newWindowAction.setText("&New Window");
-        register(newWindowAction);
-		
-		newTabAction = new Action("New &Tab") { //$NON-NLS-1$
-		    int counter = 0;
-		    { setId("newTab");
-              setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "newTab"); } //$NON-NLS-1$
-            public void run() {
-                try {
-                    String secondaryId = Integer.toString(++counter);
-                    IWorkbenchPage page = window.getActivePage();
-                    if (page != null) {
-                        page.showView(IBrowserConstants.BROWSER_VIEW_ID, secondaryId, IWorkbenchPage.VIEW_ACTIVATE);
-                    }
-                } catch (PartInitException e) {
-                    e.printStackTrace();
-                }
-            }
-		};
-        register(newTabAction);
-		
-		quitAction = ActionFactory.QUIT.create(window);
-        register(quitAction);
-		
-        backAction = new RetargetAction("back", "&Back");
-        backAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "back"); //$NON-NLS-1$
-		backAction.setToolTipText("Back");
-		backAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_BACK));
-		window.getPartService().addPartListener(backAction);
-        register(backAction);
-		
-        forwardAction = new RetargetAction("forward", "&Forward");
-        forwardAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "forward"); //$NON-NLS-1$
-		forwardAction.setToolTipText("Forward");
-		forwardAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD));
-		window.getPartService().addPartListener(forwardAction);
-		register(forwardAction);
-		
-		stopAction = new RetargetAction("stop", "Sto&p");
-        stopAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "stop"); //$NON-NLS-1$
-		stopAction.setToolTipText("Stop");
-		window.getPartService().addPartListener(stopAction);
-		register(stopAction);
-		
-		refreshAction = new RetargetAction("refresh", "&Refresh");
-        refreshAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "refresh"); //$NON-NLS-1$
-		refreshAction.setToolTipText("Refresh");
-		window.getPartService().addPartListener(refreshAction);
-		register(refreshAction);
-		
-		historyAction = new Action("History", IAction.AS_CHECK_BOX) { //$NON-NLS-1$
-		    { setId("history");
-              setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "history"); } //$NON-NLS-1$
-		    public void run() {
-		        try {
-		            IWorkbenchPage page = window.getActivePage();
-		            if (page != null) {
-		                IViewPart historyView = page.findView(IBrowserConstants.HISTORY_VIEW_ID);
-		                if (historyView == null) {
-		                    page.showView(IBrowserConstants.HISTORY_VIEW_ID);
-		                    setChecked(true);
-		                }
-		                else {
-		                    page.hideView(historyView);
-		                    setChecked(false);
-		                }
-		            }
-                } catch (PartInitException e) {
-                    e.printStackTrace();
-                }
-		    }
-		};
-        register(historyAction);
-
-		aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-	}
-
-	protected void fillMenuBar(IMenuManager menuBar) {
-		IMenuManager fileMenu = new MenuManager("&File", "file");  //$NON-NLS-2$
-		menuBar.add(fileMenu);
-        fileMenu.add(newWindowAction);
-        fileMenu.add(newTabAction);
-		fileMenu.add(new Separator());
-        fileMenu.add(quitAction);
-		
-		IMenuManager viewMenu = new MenuManager("&View", "view");  //$NON-NLS-2$
-		menuBar.add(viewMenu);
-        viewMenu.add(backAction);
-        viewMenu.add(forwardAction);
-        viewMenu.add(stopAction);
-        viewMenu.add(refreshAction);
-		viewMenu.add(new Separator("views")); //$NON-NLS-1$
-        viewMenu.add(historyAction);
-
-		IMenuManager helpMenu = new MenuManager("&Help", "help");  //$NON-NLS-2$
-		menuBar.add(helpMenu);
-        helpMenu.add(aboutAction);
-	}
-
-	protected void fillCoolBar(ICoolBarManager coolBar) {
-		IToolBarManager toolBar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-		coolBar.add(new ToolBarContributionItem(toolBar, "standard")); //$NON-NLS-1$
-		
-		// For the Back and Forward actions, force their text to be shown on the toolbar,
-		// not just their image.  For the remaining actions, the ActionContributionItem
-		// is created implicitly with the default presentation mode.
-		ActionContributionItem backCI = new ActionContributionItem(backAction);
-		backCI.setMode(ActionContributionItem.MODE_FORCE_TEXT);
-		toolBar.add(backCI);
-		
-		ActionContributionItem forwardCI = new ActionContributionItem(forwardAction);
-		forwardCI.setMode(ActionContributionItem.MODE_FORCE_TEXT);
-		toolBar.add(forwardCI);
-
-		toolBar.add(stopAction);
-		toolBar.add(refreshAction);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserAdvisor.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserAdvisor.java
deleted file mode 100644
index f214ba5..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserAdvisor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.rcp.browser;
-
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * The workbench advisor for the browser example.
- * Configures the workbench as needed for the browser example, including
- * specifying the default perspective id.
- * Creates the workbench window advisor for configuring each new window 
- * as it is being opened.
- * 
- * @since 3.0
- */
-public class BrowserAdvisor extends WorkbenchAdvisor {
-
-	/**
-	 * Constructs a new <code>BrowserAdvisor</code>.
-	 */
-	public BrowserAdvisor() {
-		// do nothing
-	}
-	
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.application.WorkbenchAdvisor
-     */
-    public void initialize(IWorkbenchConfigurer configurer) {
-        super.initialize(configurer);
-//        configurer.setSaveAndRestore(true);
-    }
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor
-	 */
-	public String getInitialWindowPerspectiveId() {
-		return IBrowserConstants.BROWSER_PERSPECTIVE_ID;
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.application.WorkbenchAdvisor
-     */
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-            IWorkbenchWindowConfigurer configurer) {
-        return new BrowserWindowAdvisor(configurer);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.java
deleted file mode 100644
index 9f75650..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.rcp.browser;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * The application class for the RCP Browser Example.
- * Creates and runs the Workbench, passing a <code>BrowserAdvisor</code>
- * as the workbench advisor.
- * 
- * @issue Couldn't run without initial perspective -- it failed with NPE 
- *   on WorkbenchWindow.openPage (called from Workbench.openFirstTimeWindow).  Advisor is currently required to override 
- *   getInitialWindowPerspectiveId.
- * 
- * @issue If shortcut bar is hidden, and last view in perspective is closed, there's no way to get it open again.
- * 
- * @since 3.0
- */
-public class BrowserApp implements IApplication {
-	
-	/**
-	 * Constructs a new <code>BrowserApp</code>.
-	 */
-	public BrowserApp() {
-		// do nothing
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int code = PlatformUI.createAndRunWorkbench(display,
-					new BrowserAdvisor());
-			// exit the application with an appropriate return code
-			return code == PlatformUI.RETURN_RESTART
-					? EXIT_RESTART
-					: EXIT_OK;
-		} finally {
-			if (display != null)
-				display.dispose();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPerspectiveFactory.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPerspectiveFactory.java
deleted file mode 100644
index 1a36c5e..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPerspectiveFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.rcp.browser;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.IViewLayout;
-
-/**
- * The perspective factory for the RCP Browser Example's perspective.
- * 
- * @since 3.0
- */
-public class BrowserPerspectiveFactory implements IPerspectiveFactory {
-
-	/**
-	 * Constructs a new <code>BrowserPerspectiveFactory</code>.
-	 */
-	public BrowserPerspectiveFactory() {
-		// do nothing
-	}
-
-	/**
-	 * Creates the initial layout of the Browser perspective.
-	 */
-	public void createInitialLayout(IPageLayout layout) {
-		layout.addView(IBrowserConstants.BROWSER_VIEW_ID, IPageLayout.RIGHT, .25f, IPageLayout.ID_EDITOR_AREA);
-		layout.addPlaceholder(IBrowserConstants.HISTORY_VIEW_ID, IPageLayout.LEFT, .3f, IPageLayout.ID_EDITOR_AREA); //$NON-NLS-1$
-		IViewLayout historyLayout = layout.getViewLayout(IBrowserConstants.HISTORY_VIEW_ID);
-		historyLayout.setCloseable(true);
-		layout.setEditorAreaVisible(false);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPlugin.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPlugin.java
deleted file mode 100644
index dca29a8..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPlugin.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.rcp.browser;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Plug-in class for the browser example.
- */
-public class BrowserPlugin extends AbstractUIPlugin {
-    private static BrowserPlugin DEFAULT;
-    
-    public BrowserPlugin() {
-        DEFAULT = this;
-    }
-
-    public static BrowserPlugin getDefault() {
-        return DEFAULT;
-    }
-
-    /**
-     * Logs the given throwable.
-     * 
-     * @param t the throwable to log
-     */
-    public void log(Throwable t) {
-        String msg = t.getMessage();
-        if (msg == null)
-            msg = t.toString();
-        IStatus status = new Status(IStatus.ERROR, getBundle().getSymbolicName(), 0, msg, t);
-        getLog().log(status);
-    }
-    
-    /**
-     * Returns a list of all views and editors in the given page,
-     * excluding any secondary views like the History view.
-     * 
-     * @param page the workbench page
-     * @return a list of all non-secondary parts in the page
-     */
-    public static List getNonSecondaryParts(IWorkbenchPage page) {
-        ArrayList list = new ArrayList();
-        list.addAll(Arrays.asList(page.getViewReferences()));
-        list.addAll(Arrays.asList(page.getEditorReferences()));
-        for (Iterator i = list.iterator(); i.hasNext();) {
-            IWorkbenchPartReference ref = (IWorkbenchPartReference) i.next();
-            if (ref instanceof ISecondaryPart) {
-                i.remove();
-            }
-        }
-        return list;
-    }
-    
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPreferenceInitializer.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPreferenceInitializer.java
deleted file mode 100644
index 243ed5e..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPreferenceInitializer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.rcp.browser;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-
-/**
- * Preference initializer for the browser preferences.
- */
-public class BrowserPreferenceInitializer extends AbstractPreferenceInitializer {
-
-    public BrowserPreferenceInitializer() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-     */
-    public void initializeDefaultPreferences() {
-        Preferences prefs = BrowserPlugin.getDefault().getPluginPreferences();
-        prefs.setDefault(IBrowserConstants.PREF_HOME_PAGE, "http://eclipse.org");  //$NON-NLS-1$
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java
deleted file mode 100644
index 4b65de7..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.rcp.browser;
-
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.commands.ActionHandler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.CloseWindowListener;
-import org.eclipse.swt.browser.LocationAdapter;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.browser.OpenWindowListener;
-import org.eclipse.swt.browser.ProgressAdapter;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.StatusTextEvent;
-import org.eclipse.swt.browser.StatusTextListener;
-import org.eclipse.swt.browser.TitleEvent;
-import org.eclipse.swt.browser.TitleListener;
-import org.eclipse.swt.browser.WindowEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.ViewPart;
-
-
-/**
- * The Browser view.  This consists of a <code>Browser</code> control, and an
- * address bar consisting of a <code>Label</code> and a <code>Text</code> 
- * control.  This registers handling actions for the retargetable actions added 
- * by <code>BrowserActionBuilder</code> (Back, Forward, Stop, Refresh).  
- * This also hooks listeners on the Browser control for status and progress
- * messages, and redirects these to the status line.
- * 
- * @since 3.0
- */
-public class BrowserView extends ViewPart {
-	
-    /**
-	 * Debug flag.  When true, status and progress messages are sent to the
-	 * console in addition to the status line.
-	 */
-	private static final boolean DEBUG = false;
-	
-	private Browser browser;
-	private Text location;
-	private String initialUrl;
-	
-	private Action backAction = new Action("Back") {
-		public void run() {
-			browser.back();
-		}
-	};
-	
-	private Action forwardAction = new Action("Forward") {
-		public void run() {
-			browser.forward();
-		}
-	};
-
-	private Action stopAction = new Action("Stop") {
-		public void run() {
-			browser.stop();
-			// cancel any partial progress.
-			getViewSite().getActionBars().getStatusLineManager().getProgressMonitor().done();
-		}
-	};
-
-	private Action refreshAction = new Action("Refresh") {
-		public void run() {
-			browser.refresh();
-		}
-	};
-	
-	/**
-	 * The easter egg action.  
-	 * See the corresponding command and key binding in the plugin.xml,
-	 * and how it's registered in createBrowser.
-	 */
-	private Action easterEggAction = new Action() {
-	    { setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "easterEgg"); } //$NON-NLS-1$
-	    public void run() {
-	        browser.execute("window.confirm('You found the easter egg!')");
-	    }
-	};
-	
-    /**
-     * Finds the first browser view in the given window.
-     * 
-     * @param window the window
-     * @return the first found browser view, or <code>null</code> if none found
-     */
-    private static BrowserView findBrowser(IWorkbenchWindow window) {
-        IWorkbenchPage page = window.getActivePage();
-        IViewPart view = page.findView(IBrowserConstants.BROWSER_VIEW_ID);
-        if (view != null) {
-            return (BrowserView) view;
-        }
-        IViewReference[] refs = page.getViewReferences();
-        for (int i = 0; i < refs.length; i++) {
-            if (IBrowserConstants.BROWSER_VIEW_ID.equals(refs[i].getId())) {
-                return (BrowserView) refs[i].getPart(true);
-            }
-        }
-        return null;
-    }
-    
-	/**
-	 * Constructs a new <code>BrowserView</code>.
-	 */
-	public BrowserView() {
-	    initialUrl = BrowserPlugin.getDefault().getPluginPreferences().getString(IBrowserConstants.PREF_HOME_PAGE);
-	}
-	
-    public void init(IViewSite site, IMemento memento) throws PartInitException {
-        super.init(site);
-        if (memento != null) {
-	        String u = memento.getString(IBrowserConstants.MEMENTO_URL);
-	        if (u != null) {
-	            initialUrl = u;
-	        }
-        }
-    }
-    
-    public void saveState(IMemento memento) {
-        memento.putString(IBrowserConstants.MEMENTO_URL, browser.getUrl());
-    }
-    
-	public void createPartControl(Composite parent) {
-		browser = createBrowser(parent, getViewSite().getActionBars());
-		browser.setUrl(initialUrl);
-	}
-
-	public void setFocus() {
-		if (browser != null && !browser.isDisposed()) {
-			browser.setFocus();
-		}
-	}
-	
-	private Browser createBrowser(Composite parent, final IActionBars actionBars) {
-		
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		parent.setLayout(gridLayout);
-		
-		Label labelAddress = new Label(parent, SWT.NONE);
-		labelAddress.setText("A&ddress");
-		
-		location = new Text(parent, SWT.BORDER);
-		GridData data = new GridData();
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		location.setLayoutData(data);
-
-		browser = new Browser(parent, SWT.NONE);
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalSpan = 2;
-		data.grabExcessHorizontalSpace = true;
-		data.grabExcessVerticalSpace = true;
-		browser.setLayoutData(data);
-
-		browser.addProgressListener(new ProgressAdapter() {
-			IProgressMonitor monitor = actionBars.getStatusLineManager().getProgressMonitor();
-			boolean working = false;
-			int workedSoFar;
-			public void changed(ProgressEvent event) {
-				if (DEBUG) {
-					System.out.println("changed: " + event.current + "/" + event.total);
-				}
-				if (event.total == 0) return;
-				if (!working) {
-					if (event.current == event.total) return;
-					monitor.beginTask("", event.total); //$NON-NLS-1$
-					workedSoFar = 0;
-					working = true;
-				}
-				monitor.worked(event.current - workedSoFar);
-				workedSoFar = event.current;
-			}
-			public void completed(ProgressEvent event) {
-				if (DEBUG) {
-					System.out.println("completed: " + event.current + "/" + event.total);
-				}
-				monitor.done();
-				working = false;
-			}
-		});
-		browser.addStatusTextListener(new StatusTextListener() {
-			IStatusLineManager status = actionBars.getStatusLineManager(); 
-			public void changed(StatusTextEvent event) {
-				if (DEBUG) {
-					System.out.println("status: " + event.text);
-				}
-				status.setMessage(event.text);
-			}
-		});
-		browser.addLocationListener(new LocationAdapter() {
-			public void changed(LocationEvent event) {
-			    if (event.top)
-			        location.setText(event.location);
-			}
-		});
-		browser.addTitleListener(new TitleListener() {
-            public void changed(TitleEvent event) {
-                setPartName(event.title);
-            }
-        });
-        browser.addOpenWindowListener(new OpenWindowListener() {
-            public void open(WindowEvent event) {
-                BrowserView.this.openWindow(event);
-            }
-        });
-        // TODO: should handle VisibilityWindowListener.show and .hide events
-        browser.addCloseWindowListener(new CloseWindowListener() {
-            public void close(WindowEvent event) {
-                BrowserView.this.close();
-            }
-        });
-		location.addSelectionListener(new SelectionAdapter() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				browser.setUrl(location.getText());
-			}
-		});
-		
-		// Hook the navigation actons as handlers for the retargetable actions
-		// defined in BrowserActionBuilder.
-		actionBars.setGlobalActionHandler("back", backAction); //$NON-NLS-1$
-		actionBars.setGlobalActionHandler("forward", forwardAction); //$NON-NLS-1$
-		actionBars.setGlobalActionHandler("stop", stopAction); //$NON-NLS-1$
-		actionBars.setGlobalActionHandler("refresh", refreshAction); //$NON-NLS-1$
-		
-		// Register the easter egg action with the key binding service,
-		// allowing it to be invoked directly via keypress, 
-		// without requiring the action to be visible in the UI.
-		// Note that the address field needs to have focus for this to work, 
-		// or any control other than the browser widget, due to 
-		// <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=69919">bug 69919</a>.
-		IHandlerService hs = (IHandlerService) getSite().getService(
-				IHandlerService.class);
-		IHandler easterHandler = new ActionHandler(easterEggAction);
-		hs.activateHandler(easterEggAction.getActionDefinitionId(), easterHandler);
-		return browser;
-	}
-
-    /**
-     * Opens a new browser window.
-     * 
-     * @param event the open window event
-     */
-    private void openWindow(WindowEvent event) {
-        try {
-            IWorkbench workbench = getSite().getWorkbenchWindow().getWorkbench();
-            IWorkbenchWindow window = workbench.openWorkbenchWindow(IBrowserConstants.BROWSER_PERSPECTIVE_ID, null);
-            Shell shell = window.getShell();
-            if (event.location != null)
-                shell.setLocation(event.location);
-            if (event.size != null)
-                shell.setLocation(event.size);
-            BrowserView view = findBrowser(window);
-            Assert.isNotNull(view);
-            event.browser = view.browser;
-        } catch (WorkbenchException e) {
-            BrowserPlugin.getDefault().log(e);
-        }
-    }
-    
-    /**
-     * Closes this browser view.  Closes the window too if there
-     * are no non-secondary parts open.
-     */
-    private void close() {
-        IWorkbenchPage page = getSite().getPage();
-        IWorkbenchWindow window = page.getWorkbenchWindow();
-        page.hideView(this);
-        if (BrowserPlugin.getNonSecondaryParts(page).size() == 0) {
-            page.closePerspective(page.getPerspective(), true, true);
-        }
-        if (window.getActivePage() == null) {
-            window.close();
-        }
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserWindowAdvisor.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserWindowAdvisor.java
deleted file mode 100644
index 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 d507f73..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/IBrowserConstants.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.rcp.browser;
-
-/**
- * Interface defining constants for use in the browser example.
- */
-public interface IBrowserConstants {
-
-    /**
-     * ID of the RCP Browser Example plug-in.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.ui.examples.rcp.browser"; //$NON-NLS-1$
-    
-    /**
-     * ID of the Browser perspective.
-     */
-    public static final String BROWSER_PERSPECTIVE_ID = PLUGIN_ID + ".browserPerspective"; //$NON-NLS-1$
-    
-    /**
-     * ID of the Browser view.
-     */
-    public static final String BROWSER_VIEW_ID = PLUGIN_ID + ".browserView"; //$NON-NLS-1$
-
-    /**
-     * ID of the History view.
-     */
-    public static final String HISTORY_VIEW_ID = PLUGIN_ID + ".historyView"; //$NON-NLS-1$
-
-    /**
-     * Common prefix for command ids.
-     */
-    public static final String COMMAND_PREFIX = PLUGIN_ID + ".commands."; //$NON-NLS-1$
-    
-    /**
-     * Preference key for the home page URL (property is String-valued).
-     */
-    public static final String PREF_HOME_PAGE = "homePage"; //$NON-NLS-1$
-
-    /**
-     * Memento attribute name for the browser URL (attribute is String-valued).
-     */
-    public static final String MEMENTO_URL = "url"; //$NON-NLS-1$
-    
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/ISecondaryPart.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/ISecondaryPart.java
deleted file mode 100644
index 4e2c1bb..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/ISecondaryPart.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.rcp.browser;
-
-/**
- * Marks a workbench part implementation as being a secondary part.
- * A secondary part is one that exists only to support the browser,
- * and should not be considered when determining whether to close
- * a window whose last browser has been closed.
- */
-public interface ISecondaryPart {
-    // marker interface only; no behaviour
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/.classpath b/examples/org.eclipse.ui.examples.readmetool/.classpath
deleted file mode 100644
index d0ff700..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples Readme Tool"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.readmetool/.cvsignore b/examples/org.eclipse.ui.examples.readmetool/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.readmetool/.project b/examples/org.eclipse.ui.examples.readmetool/.project
deleted file mode 100644
index 208a260..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.readmetool</name>
-	<comment></comment>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6a0c68d..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Jan 15 21:12:33 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 595f8b1..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Wed May 30 11:19:45 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e5fd2a4..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Jan 10 16:54:24 EST 2006
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AdaptableList.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AdaptableList.java
deleted file mode 100644
index 7a57110..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AdaptableList.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * A list of adaptable objects.  This is a generic list that can
- * be used to display an arbitrary set of adaptable objects in the workbench.
- * Also implements the IWorkbenchAdapter interface for simple display
- * and navigation.
- */
-public class AdaptableList implements IWorkbenchAdapter, IAdaptable {
-    protected List children = new ArrayList();
-
-    /**
-     * Creates a new adaptable list with the given children.
-     */
-    public AdaptableList() {
-        // do nothing
-    }
-
-    /**
-     * Creates a new adaptable list with the given children.
-     */
-    public AdaptableList(IAdaptable[] newChildren) {
-        for (int i = 0; i < newChildren.length; i++) {
-            children.add(newChildren[i]);
-        }
-    }
-
-    /**
-     * Adds all the adaptable objects in the given enumeration to this list.
-     * Returns this list.
-     */
-    public AdaptableList add(Iterator iterator) {
-        while (iterator.hasNext()) {
-            add((IAdaptable) iterator.next());
-        }
-        return this;
-    }
-
-    /**
-     * Adds the given adaptable object to this list.
-     * Returns this list.
-     */
-    public AdaptableList add(IAdaptable adaptable) {
-        children.add(adaptable);
-        return this;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IWorkbenchAdapter.class)
-            return this;
-        return null;
-    }
-
-    /**
-     * Returns the elements in this list.
-     */
-    public Object[] getChildren() {
-        return children.toArray();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object[] getChildren(Object o) {
-        return children.toArray();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public String getLabel(Object object) {
-        return object == null ? "" : object.toString(); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object getParent(Object object) {
-        return null;
-    }
-
-    /**
-     * Removes the given adaptable object from this list.
-     */
-    public void remove(IAdaptable adaptable) {
-        children.remove(adaptable);
-    }
-
-    /**
-     * Returns the number of items in the list
-     */
-    public int size() {
-        return children.size();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddReadmeMarkerAction.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddReadmeMarkerAction.java
deleted file mode 100644
index fa5f42d..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddReadmeMarkerAction.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74528)
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.MarkerUtilities;
-import org.osgi.framework.Bundle;
-
-/**
- * Action for creating a readme marker with a specfic id 
- * attribute value.
- */
-public class AddReadmeMarkerAction extends Action {
-    private ITextEditor textEditor;
-
-    private Object[][] customAttributes;
-
-    private String message;
-
-    private final static String MARKER_TYPE = "org.eclipse.ui.examples.readmetool.readmemarker"; //$NON-NLS-1$
-
-    /**
-     * Creates a new action for the given text editor.
-     *
-     * @param editor the text editor
-     * @param label the label for the action
-     * @param attributes the custom attributes for this marker
-     * @param message the message for the marker
-     */
-    public AddReadmeMarkerAction(ITextEditor editor, String label,
-            Object[][] attributes, String message) {
-        textEditor = editor;
-        setText(label);
-        this.customAttributes = attributes;
-        this.message = message;
-    }
-
-    /*
-     * @see IAction#run()
-     */
-    public void run() {
-        Map attributes = new HashMap(11);
-
-        ITextSelection selection = (ITextSelection) textEditor
-                .getSelectionProvider().getSelection();
-        if (!selection.isEmpty()) {
-
-            int start = selection.getOffset();
-            int length = selection.getLength();
-
-            if (length < 0) {
-                length = -length;
-                start -= length;
-            }
-
-            MarkerUtilities.setCharStart(attributes, start);
-            MarkerUtilities.setCharEnd(attributes, start + length);
-
-            // marker line numbers are 1-based
-            int line = selection.getStartLine();
-            MarkerUtilities.setLineNumber(attributes, line == -1 ? -1
-                    : line + 1);
-
-            // set custom attribute values
-            for (int i = 0; i < customAttributes.length; i++) {
-                attributes.put(customAttributes[i][0], customAttributes[i][1]);
-            }
-
-            MarkerUtilities.setMessage(attributes, message);
-        }
-
-        try {
-            MarkerUtilities
-                    .createMarker(getResource(), attributes, MARKER_TYPE);
-        } catch (CoreException x) {
-            Bundle bundle = ReadmePlugin.getDefault().getBundle();
-            Platform.getLog(bundle).log(x.getStatus());
-
-            Shell shell = textEditor.getSite().getShell();
-            String title = MessageUtil
-                    .getString("Add_readme_marker_error_title"); //$NON-NLS-1$
-            String msg = MessageUtil
-                    .getString("Add_readme_marker_error_message"); //$NON-NLS-1$
-
-            ErrorDialog.openError(shell, title, msg, x.getStatus());
-        }
-    }
-
-    /** 
-     * Returns the resource on which to create the marker, 
-     * or <code>null</code> if there is no applicable resource. This
-     * queries the editor's input using <code>getAdapter(IResource.class)</code>.
-     *
-     * @return the resource to which to attach the newly created marker
-     */
-    protected IResource getResource() {
-        IEditorInput input = textEditor.getEditorInput();
-        return (IResource) ((IAdaptable) input).getAdapter(IResource.class);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddSentenceResolution.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddSentenceResolution.java
deleted file mode 100644
index 21f23b2..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddSentenceResolution.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * A resolution which inserts a sentence into the readme file 
- */
-public class AddSentenceResolution implements IMarkerResolution {
-    /* (non-Javadoc)
-     * Method declared on IMarkerResolution.
-     */
-    public String getLabel() {
-        return MessageUtil.getString("Add_Sentence"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerResolution.
-     */
-    public void run(IMarker marker) {
-        // Se if there is an open editor on the file containing the marker
-        IWorkbenchWindow w = PlatformUI.getWorkbench()
-                .getActiveWorkbenchWindow();
-        if (w == null)
-            return;
-        IWorkbenchPage page = w.getActivePage();
-        if (page == null)
-            return;
-        IFileEditorInput input = new FileEditorInput((IFile) marker
-                .getResource());
-        IEditorPart editorPart = page.findEditor(input);
-
-        if (editorPart == null) {
-            // open an editor
-            try {
-                editorPart = IDE.openEditor(page, (IFile) marker.getResource(),
-                        true);
-            } catch (PartInitException e) {
-                MessageDialog.openError(w.getShell(), MessageUtil
-                        .getString("Resolution_Error"), //$NON-NLS-1$
-                        MessageUtil.getString("Unable_to_open_file_editor")); //$NON-NLS-1$
-            }
-        }
-        if (editorPart == null || !(editorPart instanceof ReadmeEditor))
-            return;
-        // insert the sentence
-        ReadmeEditor editor = (ReadmeEditor) editorPart;
-        IDocument doc = editor.getDocumentProvider().getDocument(
-                editor.getEditorInput());
-        String s = MessageUtil.getString("Simple_sentence"); //$NON-NLS-1$
-        try {
-            doc.replace(marker.getAttribute(IMarker.CHAR_START, -1), 0, s);
-        } catch (BadLocationException e) {
-            // ignore
-            return;
-        }
-        // delete the marker
-        try {
-            marker.delete();
-        } catch (CoreException e) {
-            e.printStackTrace();
-            // ignore
-        }
-
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DefaultSectionsParser.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DefaultSectionsParser.java
deleted file mode 100644
index dc224b7..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DefaultSectionsParser.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * This class is a simple parser implementing the IReadmeFileParser
- * interface. It parses a Readme file into sections based on the
- * existence of numbered section tags in the input. A line beginning
- * with a number followed by a dot will be taken as a section indicator
- * (for example, 1., 2., or 12.). 
- * As well, a line beginning with a subsection-style series of numbers
- * will also be taken as a section indicator, and can be used to 
- * indicate subsections (for example, 1.1, or 1.1.12).
- */
-public class DefaultSectionsParser implements IReadmeFileParser {
-    /**
-     * Returns the mark element that is the logical parent
-     * of the given mark number.  Each dot in a mark number
-     * represents a parent-child separation.  For example,
-     * the parent of 1.2 is 1, the parent of 1.4.1 is 1.4.
-     * Returns null if there is no appropriate parent.
-     */
-    protected IAdaptable getParent(Hashtable toc, String number) {
-        int lastDot = number.lastIndexOf('.');
-        if (lastDot < 0)
-            return null;
-        String parentNumber = number.substring(0, lastDot);
-        return (IAdaptable) toc.get(parentNumber);
-    }
-
-    /**
-     * Returns a string containing the contents of the given
-     * file.  Returns an empty string if there were any errors
-     * reading the file.
-     */
-    protected String getText(IFile file) {
-        try {
-            InputStream in = file.getContents();
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            byte[] buf = new byte[1024];
-            int read = in.read(buf);
-            while (read > 0) {
-                out.write(buf, 0, read);
-                read = in.read(buf);
-            }
-            return out.toString();
-        } catch (CoreException e) {
-            // do nothing
-        } catch (IOException e) {
-            // do nothing
-        }
-        return ""; //$NON-NLS-1$
-    }
-
-    /**
-     * Parses the input given by the argument.
-     *
-     * @param file  the element containing the input text
-     * @return an element collection representing the parsed input
-     */
-    public MarkElement[] parse(IFile file) {
-        Hashtable markTable = new Hashtable(40);
-        Vector topLevel = new Vector();
-        String s = getText(file);
-        int start = 0;
-        int end = -1;
-        int lineno = 0;
-        int lastlineno = 0;
-        MarkElement lastme = null;
-        int ix;
-
-        // parse content for headings
-        ix = s.indexOf('\n', start);
-        while (ix != -1) {
-            start = end + 1;
-            end = ix = s.indexOf('\n', start);
-            lineno++;
-            if (ix != -1) {
-                // skip blanks
-                while (s.charAt(start) == ' ' || s.charAt(start) == '\t') {
-                    start++;
-                }
-                if (Character.isDigit(s.charAt(start))) {
-                    if (lastme != null) {
-                        lastme.setNumberOfLines(lineno - lastlineno - 1);
-                    }
-                    lastlineno = lineno;
-                    String markName = parseHeading(s, start, end);
-
-                    //get the parent mark, if any.
-                    String markNumber = parseNumber(markName);
-                    IAdaptable parent = getParent(markTable, markNumber);
-                    if (parent == null)
-                        parent = file;
-
-                    MarkElement me = new MarkElement(parent, markName, start,
-                            end - start);
-                    lastme = me;
-
-                    markTable.put(markNumber, me);
-                    if (parent == file) {
-                        topLevel.add(me);
-                    }
-                }
-            }
-        }
-        if (lastme != null) {
-            // set the number of lines for the last section
-            lastme.setNumberOfLines(lineno - lastlineno - 1);
-        }
-        MarkElement[] results = new MarkElement[topLevel.size()];
-        topLevel.copyInto(results);
-        return results;
-    }
-
-    /**
-     * Creates a section name from the buffer and trims trailing
-     * space characters.
-     *
-     * @param buffer  the string from which to create the section name
-     * @param start  the start index
-     * @param end  the end index
-     * @return a section name
-     */
-    private String parseHeading(String buffer, int start, int end) {
-        while (Character.isWhitespace(buffer.charAt(end - 1)) && end > start) {
-            end--;
-        }
-        return buffer.substring(start, end);
-    }
-
-    /**
-     * Returns the number for this heading.  A heading consists
-     * of a number (an arbitrary string of numbers and dots), followed by
-     * arbitrary text.
-     */
-    protected String parseNumber(String heading) {
-        int start = 0;
-        int end = heading.length();
-        char c;
-        do {
-            c = heading.charAt(start++);
-        } while ((c == '.' || Character.isDigit(c)) && start < end);
-
-        //disregard trailing dots
-        while (heading.charAt(start - 1) == '.' && start > 0) {
-            start--;
-        }
-        return heading.substring(0, start);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DirtyStateContribution.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DirtyStateContribution.java
deleted file mode 100644
index 50489ad..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DirtyStateContribution.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.action.ControlContribution;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPropertyListener;
-
-/**
- * This class demonstrates the contribution of a custom control to the 
- * status line for the readme editor.  The control shows the
- * dirty status of the editor.
- */
-public class DirtyStateContribution extends ControlContribution implements
-        IPropertyListener {
-    private Composite composite;
-
-    private Label label;
-
-    private IEditorPart activeEditor;
-
-    /**
-     * Creates a new DirtyStateContribution.
-     */
-    protected DirtyStateContribution() {
-        super("DirtyState"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ControlContribution
-     */
-    protected Control createControl(Composite parent) {
-        // If the composite is good just return it.
-        if (composite != null && !composite.isDisposed())
-            return composite;
-
-        // Create composite for border.
-        composite = new Composite(parent, SWT.BORDER);
-        composite.setData(this);
-
-        // Create label inside composite.	
-        label = new Label(composite, SWT.NONE);
-        label.setSize(80, 15);
-
-        updateState();
-        return composite;
-    }
-
-    /**
-     * Called when an editor is activated.
-     *
-     * @see ReadmeEditorActionBarContributor#setActiveEditor(IEditorPart)
-     */
-    public void editorChanged(IEditorPart part) {
-        if (activeEditor != null) {
-            activeEditor.removePropertyListener(this);
-        }
-        activeEditor = part;
-        if (activeEditor != null) {
-            activeEditor.addPropertyListener(this);
-        }
-        updateState();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertyListener
-     */
-    public void propertyChanged(Object source, int propID) {
-        if (source instanceof IEditorPart)
-            updateState();
-    }
-
-    /**
-     * Updates the state of the label.
-     */
-    private void updateState() {
-        if (label == null || label.isDisposed())
-            return;
-
-        boolean saveNeeded = false;
-        if (activeEditor != null)
-            saveNeeded = activeEditor.isDirty();
-        if (saveNeeded)
-            label.setText(MessageUtil.getString("Save_Needed")); //$NON-NLS-1$
-        else
-            label.setText(MessageUtil.getString("Clean")); //$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/EditorActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/EditorActionDelegate.java
deleted file mode 100644
index 09cbf35..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/EditorActionDelegate.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * This class is used to demonstrate editor action extensions.
- * An extension should be defined in the readme plugin.xml.
- */
-public class EditorActionDelegate implements IEditorActionDelegate {
-    private IEditorPart editor;
-
-    /**
-     * Creates a new EditorActionDelegate.
-     */
-    public EditorActionDelegate() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void run(IAction action) {
-        MessageDialog.openInformation(editor.getSite().getShell(), MessageUtil
-                .getString("Readme_Editor"), //$NON-NLS-1$
-                MessageUtil.getString("Editor_Action_executed")); //$NON-NLS-1$
-    }
-
-    /** 
-     * The <code>EditorActionDelegate</code> implementation of this
-     * <code>IActionDelegate</code> method does nothing.
-     *
-     * Selection in the workbench has changed. Plugin provider
-     * can use it to change the availability of the action
-     * or to modify other presentation properties.
-     *
-     * <p>Action delegate cannot be notified about
-     * selection changes before it is loaded. For that reason,
-     * control of action's enable state should also be performed
-     * through simple XML rules defined for the extension
-     * point. These rules allow enable state control before
-     * the delegate has been loaded.</p>
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        // do nothing
-    }
-
-    /** 
-     * The <code>EditorActionDelegate</code> implementation of this
-     * <code>IEditorActionDelegate</code> method remembers the active editor.
-     *
-     * The matching editor has been activated. Notification
-     * guarantees that only editors that match the type for which 
-     * this action has been registered will be tracked.
-     *
-     * @param action action proxy that represents this delegate in the workbench
-     * @param editor the matching editor that has been activated
-     */
-    public void setActiveEditor(IAction action, IEditorPart editor) {
-        this.editor = editor;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeConstants.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeConstants.java
deleted file mode 100644
index dda2fe7..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeConstants.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-/**
- * This interface contains constants for use only within the
- * Readme example.
- */
-public interface IReadmeConstants {
-    public static final String PLUGIN_ID = "org.eclipse.ui.examples.readmetool"; //$NON-NLS-1$
-
-    public static final String PREFIX = PLUGIN_ID + "."; //$NON-NLS-1$
-
-    public static final String P_CONTENT_OUTLINE = PREFIX + "content_outline"; //$NON-NLS-1$
-
-    public static final String P_SECTIONS = PREFIX + "sections"; //$NON-NLS-1$
-
-    public static final String EXTENSION = "readme"; //$NON-NLS-1$
-
-    public static final String TAG_PARSER = "parser"; //$NON-NLS-1$
-
-    public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-    public static final String PP_SECTION_PARSER = "sectionParser"; //$NON-NLS-1$
-
-    // Global actions
-    public static final String RETARGET2 = PREFIX + "retarget2"; //$NON-NLS-1$
-
-    public static final String LABELRETARGET3 = PREFIX + "labelretarget3"; //$NON-NLS-1$
-
-    public static final String ACTION_SET_RETARGET4 = "org_eclipse_ui_examples_readmetool_readmeRetargetAction"; //$NON-NLS-1$
-
-    public static final String ACTION_SET_LABELRETARGET5 = "org_eclipse_ui_examples_readmetool_readmeRelabelRetargetAction"; //$NON-NLS-1$
-
-    // Preference constants
-    public static final String PRE_CHECK1 = PREFIX + "check1"; //$NON-NLS-1$
-
-    public static final String PRE_CHECK2 = PREFIX + "check2"; //$NON-NLS-1$
-
-    public static final String PRE_CHECK3 = PREFIX + "check3"; //$NON-NLS-1$
-
-    public static final String PRE_RADIO_CHOICE = PREFIX + "radio_choice"; //$NON-NLS-1$
-
-    public static final String PRE_TEXT = PREFIX + "text"; //$NON-NLS-1$
-
-    // Help context ids
-    public static final String EDITOR_ACTION1_CONTEXT = PREFIX
-            + "editor_action1_context"; //$NON-NLS-1$
-
-    public static final String EDITOR_ACTION2_CONTEXT = PREFIX
-            + "editor_action2_context"; //$NON-NLS-1$
-
-    public static final String EDITOR_ACTION3_CONTEXT = PREFIX
-            + "editor_action3_context"; //$NON-NLS-1$
-
-    public static final String SECTIONS_VIEW_CONTEXT = PREFIX
-            + "sections_view_context"; //$NON-NLS-1$
-
-    public static final String PREFERENCE_PAGE_CONTEXT = PREFIX
-            + "preference_page_context"; //$NON-NLS-1$
-
-    public static final String PROPERTY_PAGE_CONTEXT = PREFIX
-            + "property_page_context"; //$NON-NLS-1$
-
-    public static final String PROPERTY_PAGE2_CONTEXT = PREFIX
-            + "property_page2_context"; //$NON-NLS-1$
-
-    public static final String EDITOR_CONTEXT = PREFIX + "editor_context"; //$NON-NLS-1$
-
-    public static final String SECTIONS_DIALOG_CONTEXT = PREFIX
-            + "sections_dialog_context"; //$NON-NLS-1$
-
-    public static final String CONTENT_OUTLINE_PAGE_CONTEXT = PREFIX
-            + "content_outline_page_context"; //$NON-NLS-1$
-
-    public static final String CREATION_WIZARD_PAGE_CONTEXT = PREFIX
-            + "creation_wizard_page_context"; //$NON-NLS-1$
-
-    // Marker attributes
-    public static final String MARKER_ATT_ID = PREFIX + "id"; //$NON-NLS-1$
-
-    public static final String MARKER_ATT_LEVEL = PREFIX + "level"; //$NON-NLS-1$
-
-    public static final String MARKER_ATT_DEPT = PREFIX + "department"; //$NON-NLS-1$
-
-    public static final String MARKER_ATT_CODE = PREFIX + "code"; //$NON-NLS-1$
-
-    public static final String MARKER_ATT_LANG = PREFIX + "language"; //$NON-NLS-1$
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeFileParser.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeFileParser.java
deleted file mode 100644
index ce00f30..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeFileParser.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * This interface is used as API for the Readme parser extension 
- * point. The default implementation simply looks for lines
- * in the file that start with a number and assumes that they
- * represent sections. Tools are allowed to replace this 
- * algorithm by defining an extension and supplying an 
- * alternative that implements this interface.
- */
-public interface IReadmeFileParser {
-    /**
-     * Parses the contents of the provided file
-     * and generates a collection of sections.
-     */
-    public MarkElement[] parse(IFile readmeFile);
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElement.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElement.java
deleted file mode 100644
index 7a5d8d8..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElement.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.views.properties.IPropertySource;
-
-/**
- * This class represents a marked location in the Readme
- * file text.  
- *
- * TIP: By implementing the <code>IWorkbenchAdapter</code> interface,
- * we can easily add objects of this type to viewers and parts in
- * the workbench.  When a viewer contains <code>IWorkbenchAdapter</code>,
- * the generic <code>WorkbenchContentProvider</code> and
- * <code>WorkbenchLabelProvider</code> can be used to provide
- * navigation and display for that viewer.
- */
-public class MarkElement implements IWorkbenchAdapter, IAdaptable {
-    private String headingName;
-
-    private IAdaptable parent;
-
-    private int offset;
-
-    private int numberOfLines;
-
-    private int length;
-
-    private Vector children;
-
-    /**
-     * Creates a new MarkElement and stores parent element and
-     * location in the text.
-     *
-     * @param parent  the parent of this element
-     * @param heading text corresponding to the heading
-     * @param offset  the offset into the Readme text
-     * @param length  the length of the element
-     */
-    public MarkElement(IAdaptable parent, String heading, int offset, int length) {
-        this.parent = parent;
-        if (parent instanceof MarkElement) {
-            ((MarkElement) parent).addChild(this);
-        }
-        this.headingName = heading;
-        this.offset = offset;
-        this.length = length;
-    }
-
-    /**
-     * Adds a child to this element
-     */
-    private void addChild(MarkElement child) {
-        if (children == null) {
-            children = new Vector();
-        }
-        children.add(child);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IWorkbenchAdapter.class)
-            return this;
-        if (adapter == IPropertySource.class)
-            return new MarkElementProperties(this);
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object[] getChildren(Object object) {
-        if (children != null) {
-            return children.toArray();
-        }
-        return new Object[0];
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-        IWorkbenchAdapter parentElement = (IWorkbenchAdapter) parent
-                .getAdapter(IWorkbenchAdapter.class);
-        if (parentElement != null) {
-            return parentElement.getImageDescriptor(object);
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public String getLabel(Object o) {
-        return headingName;
-    }
-
-    /**
-     * Returns the number of characters in this section.
-     */
-    public int getLength() {
-        return length;
-    }
-
-    /**
-     * Returns the number of lines in the element.
-     *
-     * @return the number of lines in the element
-     */
-    public int getNumberOfLines() {
-        return numberOfLines;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object getParent(Object o) {
-        return null;
-    }
-
-    /**
-     * Returns the offset of this section in the file.
-     */
-    public int getStart() {
-        return offset;
-    }
-
-    /**
-     * Sets the number of lines in the element
-     *
-     * @param newNumberOfLines  the number of lines in the element
-     */
-    public void setNumberOfLines(int newNumberOfLines) {
-        numberOfLines = newNumberOfLines;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElementProperties.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElementProperties.java
deleted file mode 100644
index 58379e5..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElementProperties.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-/**
- * This class encapsulates property sheet properties
- * for MarkElement.  This will display properties for
- * the MarkElement when selected in the readme editor's
- * content outline.
- */
-public class MarkElementProperties implements IPropertySource {
-    protected MarkElement element;
-
-    protected static final String PROPERTY_LINECOUNT = "lineno"; //$NON-NLS-1$
-
-    protected static final String PROPERTY_START = "start"; //$NON-NLS-1$
-
-    protected static final String PROPERTY_LENGTH = "length"; //$NON-NLS-1$
-
-    /**
-     * Creates a new MarkElementProperties.
-     *
-     * @param element  the element whose properties this instance represents
-     */
-    public MarkElementProperties(MarkElement element) {
-        super();
-        this.element = element;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        // Create the property vector.
-        IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[3];
-
-        // Add each property supported.
-        PropertyDescriptor descriptor;
-
-        descriptor = new PropertyDescriptor(PROPERTY_LINECOUNT, MessageUtil
-                .getString("Line_count")); //$NON-NLS-1$
-        propertyDescriptors[0] = descriptor;
-        descriptor = new PropertyDescriptor(PROPERTY_START, MessageUtil
-                .getString("Title_start")); //$NON-NLS-1$
-        propertyDescriptors[1] = descriptor;
-        descriptor = new PropertyDescriptor(PROPERTY_LENGTH, MessageUtil
-                .getString("Title_length")); //$NON-NLS-1$
-        propertyDescriptors[2] = descriptor;
-
-        // Return it.
-        return propertyDescriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getPropertyValue(Object name) {
-        if (name.equals(PROPERTY_LINECOUNT))
-            return new Integer(element.getNumberOfLines());
-        if (name.equals(PROPERTY_START))
-            return new Integer(element.getStart());
-        if (name.equals(PROPERTY_LENGTH))
-            return new Integer(element.getLength());
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void setPropertyValue(Object name, Object value) {
-        // do nothing
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MessageUtil.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MessageUtil.java
deleted file mode 100644
index 44e2ce1..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MessageUtil.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps with managing messages.
- */
-/* package */class MessageUtil {
-
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.examples.readmetool.messages";//$NON-NLS-1$
-
-    private static ResourceBundle fgResourceBundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    private MessageUtil() {
-        // prevent instantiation of class
-    }
-
-    /**
-     * Returns the formatted message for the given key in
-     * the resource bundle. 
-     *
-     * @param key the resource name
-     * @param args the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in
-     * the resource bundle. If there isn't any value under
-     * the given key, the key is returned, surrounded by '!'s.
-     *
-     * @param key the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return fgResourceBundle.getString(key);
-        } catch (MissingResourceException e) {
-            return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/PopupMenuActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/PopupMenuActionDelegate.java
deleted file mode 100644
index 89b5cc3..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/PopupMenuActionDelegate.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Action delegate for handling popup menu actions on a readme file.
- */
-public class PopupMenuActionDelegate implements IObjectActionDelegate {
-
-    private IWorkbenchPart part;
-
-    /** (non-Javadoc)
-     * Method declared on IDropActionDelegate
-     */
-    public void run(IAction action) {
-        MessageDialog.openInformation(this.part.getSite().getShell(),
-                MessageUtil.getString("Readme_Example"), //$NON-NLS-1$
-                MessageUtil.getString("Popup_Menu_Action_executed")); //$NON-NLS-1$
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        //Ignored for this example
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IObjectActionDelegate
-     */
-    public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-        this.part = targetPart;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlineDragListener.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlineDragListener.java
deleted file mode 100644
index ff4ab63..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlineDragListener.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.ui.part.PluginTransfer;
-import org.eclipse.ui.part.PluginTransferData;
-
-/**
- * A drag listener for the readme editor's content outline page.
- * Allows dragging of content segments into views that support
- * the <code>TextTransfer</code> or <code>PluginTransfer</code> transfer types.
- */
-public class ReadmeContentOutlineDragListener extends DragSourceAdapter {
-    private ReadmeContentOutlinePage page;
-
-    /**
-     * Creates a new drag listener for the given page.
-     */
-    public ReadmeContentOutlineDragListener(ReadmeContentOutlinePage page) {
-        this.page = page;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DragSourceListener
-     */
-    public void dragSetData(DragSourceEvent event) {
-        if (PluginTransfer.getInstance().isSupportedType(event.dataType)) {
-            byte[] segmentData = getSegmentText().getBytes();
-            event.data = new PluginTransferData(ReadmeDropActionDelegate.ID,
-                    segmentData);
-            return;
-        }
-        if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
-            event.data = getSegmentText();
-            return;
-        }
-    }
-
-    /**
-     * Returns the text of the currently selected readme segment.
-     */
-    private String getSegmentText() {
-        StringBuffer result = new StringBuffer();
-        ISelection selection = page.getSelection();
-        if (selection instanceof org.eclipse.jface.viewers.IStructuredSelection) {
-            Object[] selected = ((IStructuredSelection) selection).toArray();
-            result.append("\n"); //$NON-NLS-1$
-            for (int i = 0; i < selected.length; i++) {
-                if (selected[i] instanceof MarkElement) {
-                    result.append(((MarkElement) selected[i])
-                            .getLabel(selected[i]));
-                    result.append("\n"); //$NON-NLS-1$
-                }
-            }
-        }
-        return result.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlinePage.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlinePage.java
deleted file mode 100644
index e25ee80..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlinePage.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.PluginTransfer;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-
-/**
- * Content outline page for the readme editor.
- */
-public class ReadmeContentOutlinePage extends ContentOutlinePage {
-    protected IFile input;
-
-    class OutlineAction extends Action {
-        private Shell shell;
-
-        public OutlineAction(String label) {
-            super(label);
-            getTreeViewer().addSelectionChangedListener(
-                    new ISelectionChangedListener() {
-                        public void selectionChanged(SelectionChangedEvent event) {
-                            setEnabled(!event.getSelection().isEmpty());
-                        }
-                    });
-        }
-
-        public void setShell(Shell shell) {
-            this.shell = shell;
-        }
-
-        public void run() {
-            MessageDialog.openInformation(shell, MessageUtil
-                    .getString("Readme_Outline"), //$NON-NLS-1$
-                    MessageUtil.getString("ReadmeOutlineActionExecuted")); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Creates a new ReadmeContentOutlinePage.
-     */
-    public ReadmeContentOutlinePage(IFile input) {
-        super();
-        this.input = input;
-    }
-
-    /**  
-     * Creates the control and registers the popup menu for this page
-     * Menu id "org.eclipse.ui.examples.readmetool.outline"
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-                IReadmeConstants.CONTENT_OUTLINE_PAGE_CONTEXT);
-
-        TreeViewer viewer = getTreeViewer();
-        viewer.setContentProvider(new WorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-        viewer.setInput(getContentOutline(input));
-        initDragAndDrop();
-
-        // Configure the context menu.
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
-                + "-end")); //$NON-NLS-1$
-
-        Menu menu = menuMgr.createContextMenu(viewer.getTree());
-        viewer.getTree().setMenu(menu);
-        // Be sure to register it so that other plug-ins can add actions.
-        getSite().registerContextMenu(
-                "org.eclipse.ui.examples.readmetool.outline", menuMgr, viewer); //$NON-NLS-1$
-
-        getSite().getActionBars().setGlobalActionHandler(
-                IReadmeConstants.RETARGET2,
-                new OutlineAction(MessageUtil.getString("Outline_Action2"))); //$NON-NLS-1$
-
-        OutlineAction action = new OutlineAction(MessageUtil
-                .getString("Outline_Action3")); //$NON-NLS-1$
-        action.setToolTipText(MessageUtil.getString("Readme_Outline_Action3")); //$NON-NLS-1$
-        getSite().getActionBars().setGlobalActionHandler(
-                IReadmeConstants.LABELRETARGET3, action);
-        action = new OutlineAction(MessageUtil.getString("Outline_Action4")); //$NON-NLS-1$
-        getSite().getActionBars().setGlobalActionHandler(
-                IReadmeConstants.ACTION_SET_RETARGET4, action);
-        action = new OutlineAction(MessageUtil.getString("Outline_Action5")); //$NON-NLS-1$
-        action.setToolTipText(MessageUtil.getString("Readme_Outline_Action5")); //$NON-NLS-1$
-        getSite().getActionBars().setGlobalActionHandler(
-                IReadmeConstants.ACTION_SET_LABELRETARGET5, action);
-    }
-
-    /**
-     * Gets the content outline for a given input element.
-     * Returns the outline (a list of MarkElements), or null
-     * if the outline could not be generated.
-     */
-    private IAdaptable getContentOutline(IAdaptable input) {
-        return ReadmeModelFactory.getInstance().getContentOutline(input);
-    }
-
-    /**
-     * Initializes drag and drop for this content outline page.
-     */
-    private void initDragAndDrop() {
-        int ops = DND.DROP_COPY | DND.DROP_MOVE;
-        Transfer[] transfers = new Transfer[] { TextTransfer.getInstance(),
-                PluginTransfer.getInstance() };
-        getTreeViewer().addDragSupport(ops, transfers,
-                new ReadmeContentOutlineDragListener(this));
-    }
-
-    /**
-     * Forces the page to update its contents.
-     *
-     * @see ReadmeEditor#doSave(IProgressMonitor)
-     */
-    public void update() {
-        getControl().setRedraw(false);
-        getTreeViewer().setInput(getContentOutline(input));
-        getTreeViewer().expandAll();
-        getControl().setRedraw(true);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationPage.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationPage.java
deleted file mode 100644
index 71f7460..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationPage.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.readmetool;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * This class is the only page of the Readme file resource creation wizard.  
- * It subclasses the standard file resource creation page class, 
- * and consequently inherits the file resource creation functionality.
- *
- * This page provides users with the choice of creating sample headings for
- * sections and subsections.  Additionally, the option is presented to open
- * the file immediately for editing after creation.
- */
-public class ReadmeCreationPage extends WizardNewFileCreationPage {
-    private IWorkbench workbench;
-
-    // widgets
-    private Button sectionCheckbox;
-
-    private Button subsectionCheckbox;
-
-    private Button openFileCheckbox;
-
-    // constants
-    private static int nameCounter = 1;
-
-    /**
-     * Creates the page for the readme creation wizard.
-     *
-     * @param workbench  the workbench on which the page should be created
-     * @param selection  the current selection
-     */
-    public ReadmeCreationPage(IWorkbench workbench,
-            IStructuredSelection selection) {
-        super("sampleCreateReadmePage1", selection); //$NON-NLS-1$
-        this.setTitle(MessageUtil.getString("Create_Readme_File")); //$NON-NLS-1$
-        this.setDescription(MessageUtil
-                .getString("Create_a_new_Readme_file_resource")); //$NON-NLS-1$
-        this.workbench = workbench;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        // inherit default container and name specification widgets
-        super.createControl(parent);
-        Composite composite = (Composite) getControl();
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
-				IReadmeConstants.CREATION_WIZARD_PAGE_CONTEXT);
-
-        this.setFileName("sample" + nameCounter + ".readme"); //$NON-NLS-1$ //$NON-NLS-2$
-
-        // sample section generation group
-        Group group = new Group(composite, SWT.NONE);
-        group.setLayout(new GridLayout());
-        group.setText(MessageUtil
-                .getString("Automatic_sample_section_generation")); //$NON-NLS-1$
-        group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-
-        // sample section generation checkboxes
-        sectionCheckbox = new Button(group, SWT.CHECK);
-        sectionCheckbox.setText(MessageUtil
-                .getString("Generate_sample_section_titles")); //$NON-NLS-1$
-        sectionCheckbox.setSelection(true);
-        sectionCheckbox.addListener(SWT.Selection, this);
-
-        subsectionCheckbox = new Button(group, SWT.CHECK);
-        subsectionCheckbox.setText(MessageUtil
-                .getString("Generate_sample_subsection_titles")); //$NON-NLS-1$
-        subsectionCheckbox.setSelection(true);
-        subsectionCheckbox.addListener(SWT.Selection, this);
-
-        // open file for editing checkbox
-        openFileCheckbox = new Button(composite, SWT.CHECK);
-        openFileCheckbox.setText(MessageUtil
-                .getString("Open_file_for_editing_when_done")); //$NON-NLS-1$
-        openFileCheckbox.setSelection(true);
-
-        setPageComplete(validatePage());
-
-    }
-
-    /**
-     * Creates a new file resource as requested by the user. If everything
-     * is OK then answer true. If not, false will cause the dialog
-     * to stay open.
-     *
-     * @return whether creation was successful
-     * @see ReadmeCreationWizard#performFinish()
-     */
-    public boolean finish() {
-        // create the new file resource
-        IFile newFile = createNewFile();
-        if (newFile == null)
-            return false; // ie.- creation was unsuccessful
-
-        // Since the file resource was created fine, open it for editing
-        // if requested by the user
-        try {
-            if (openFileCheckbox.getSelection()) {
-                IWorkbenchWindow dwindow = workbench.getActiveWorkbenchWindow();
-                IWorkbenchPage page = dwindow.getActivePage();
-                if (page != null) {
-                    IDE.openEditor(page, newFile, true);
-                }
-            }
-        } catch (PartInitException e) {
-            e.printStackTrace();
-            return false;
-        }
-        nameCounter++;
-        return true;
-    }
-
-    /** 
-     * The <code>ReadmeCreationPage</code> implementation of this
-     * <code>WizardNewFileCreationPage</code> method 
-     * generates sample headings for sections and subsections in the
-     * newly-created Readme file according to the selections of self's
-     * checkbox widgets
-     */
-    protected InputStream getInitialContents() {
-        if (!sectionCheckbox.getSelection())
-            return null;
-
-        StringBuffer sb = new StringBuffer();
-        sb.append(MessageUtil.getString("SAMPLE_README_FILE")); //$NON-NLS-1$
-        sb.append(MessageUtil.getString("SECTION_1")); //$NON-NLS-1$
-        sb.append(MessageUtil.getString("SECTION_1_BODY_1")); //$NON-NLS-1$
-
-        if (subsectionCheckbox.getSelection()) {
-            sb.append(MessageUtil.getString("Subsection_1_1")); //$NON-NLS-1$
-            sb.append(MessageUtil.getString("Subsection_1_1_Body_1")); //$NON-NLS-1$
-        }
-
-        sb.append(MessageUtil.getString("SECTION_2")); //$NON-NLS-1$
-        sb.append(MessageUtil.getString("SECTION_2_BODY_1")); //$NON-NLS-1$
-        sb.append(MessageUtil.getString("SECTION_2_BODY_2")); //$NON-NLS-1$
-
-        if (subsectionCheckbox.getSelection()) {
-            sb.append(MessageUtil.getString("Subsection_2_1")); //$NON-NLS-1$
-            sb.append(MessageUtil.getString("Subsection_2_1_BODY_1")); //$NON-NLS-1$
-            sb.append(MessageUtil.getString("Subsection_2_2")); //$NON-NLS-1$
-            sb.append(MessageUtil.getString("Subsection_2_2_BODY_1")); //$NON-NLS-1$
-        }
-
-        return new ByteArrayInputStream(sb.toString().getBytes());
-    }
-
-    /** (non-Javadoc)
-     * Method declared on WizardNewFileCreationPage.
-     */
-    protected String getNewFileLabel() {
-        return MessageUtil.getString("Readme_file_name"); //$NON-NLS-1$
-    }
-
-    /** (non-Javadoc)
-     * Method declared on WizardNewFileCreationPage.
-     */
-    public void handleEvent(Event e) {
-        Widget source = e.widget;
-
-        if (source == sectionCheckbox) {
-            if (!sectionCheckbox.getSelection())
-                subsectionCheckbox.setSelection(false);
-            subsectionCheckbox.setEnabled(sectionCheckbox.getSelection());
-        }
-
-        super.handleEvent(e);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationWizard.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationWizard.java
deleted file mode 100644
index 615d1dc..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationWizard.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * This class implements the interface required by the workbench
- * for all 'New' wizards.  This wizard creates readme files.
- */
-public class ReadmeCreationWizard extends Wizard implements INewWizard {
-    private IStructuredSelection selection;
-
-    private IWorkbench workbench;
-
-    private ReadmeCreationPage mainPage;
-
-    /** (non-Javadoc)
-     * Method declared on Wizard.
-     */
-    public void addPages() {
-        mainPage = new ReadmeCreationPage(workbench, selection);
-        addPage(mainPage);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IWorkbenchWizard
-     */
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-        this.workbench = workbench;
-        this.selection = selection;
-        setWindowTitle(MessageUtil.getString("New_Readme_File")); //$NON-NLS-1$
-        setDefaultPageImageDescriptor(ReadmeImages.README_WIZARD_BANNER);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IWizard
-     */
-    public boolean performFinish() {
-        return mainPage.finish();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeDropActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeDropActionDelegate.java
deleted file mode 100644
index e4b7cf4..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeDropActionDelegate.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.part.IDropActionDelegate;
-
-/**
- * Adapter for handling the dropping of readme segments into
- * another plugin.  In this case, we expect the segments
- * to be dropped onto <code>IFile</code> object, or an adapter 
- * that supports <code>IFile</code>.
- */
-public class ReadmeDropActionDelegate implements IDropActionDelegate {
-    public static final String ID = "org_eclipse_ui_examples_readmetool_drop_actions"; //$NON-NLS-1$
-
-    /** (non-Javadoc)
-     * Method declared on IDropActionDelegate
-     */
-    public boolean run(Object source, Object target) {
-        if (source instanceof byte[] && target instanceof IFile) {
-            IFile file = (IFile) target;
-            try {
-                file.appendContents(new ByteArrayInputStream((byte[]) source),
-                        false, true, null);
-            } catch (CoreException e) {
-                System.out
-                        .println(MessageUtil
-                                .getString("Exception_in_readme_drop_adapter") + e.getStatus().getMessage()); //$NON-NLS-1$
-                return false;
-            }
-            return true;
-        }
-        return false;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditor.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditor.java
deleted file mode 100644
index 58e08d5..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditor.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.dnd.IDragAndDropService;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-/**
- * This class implements the Readme editor.  Since the readme
- * editor is mostly just a text editor, there is very little
- * implemented in this actual class.  It can be regarded as
- * simply decorating the text editor with a content outline.
- */
-public class ReadmeEditor extends TextEditor {
-    protected ReadmeContentOutlinePage page;
-
-    /**
-     * Creates a new ReadmeEditor.
-     */
-    public ReadmeEditor() {
-        super();
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.texteditor.StatusTextEditor#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-		
-		StyledText tw = getSourceViewer().getTextWidget();
-		
-		// Add a 'TextTransfer' drop target to the editor
-		int ops = DND.DROP_DEFAULT | DND.DROP_COPY;
-		Transfer[] transfers = { TextTransfer.getInstance() };
-		DropTargetListener editorListener = new DropTargetListener() {
-
-			public void dragEnter(DropTargetEvent event) {
-				event.detail = DND.DROP_COPY;
-			}
-
-			public void dragLeave(DropTargetEvent event) {
-			}
-
-			public void dragOperationChanged(DropTargetEvent event) {
-				event.detail = DND.DROP_COPY;
-			}
-
-			public void dragOver(DropTargetEvent event) {
-				event.feedback = DND.FEEDBACK_SCROLL | DND.FEEDBACK_SELECT;
-			}
-
-			public void drop(DropTargetEvent event) {
-		        if (TextTransfer.getInstance().isSupportedType(event.currentDataType)) {
-					String text = (String) event.data;
-					getSourceViewer().getTextWidget().insert(text);
-				} 
-			}
-
-			public void dropAccept(DropTargetEvent event) {
-			}
-			
-		};
-		
-		IDragAndDropService dtSvc = (IDragAndDropService) getSite().getService(IDragAndDropService.class);
-		dtSvc.addMergedDropTarget(tw, ops, transfers, editorListener);
-	}
-	
-    /** (non-Javadoc)
-     * Method declared on IEditorPart
-     */
-    public void doSave(IProgressMonitor monitor) {
-        super.doSave(monitor);
-        if (page != null)
-            page.update();
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class key) {
-        if (key.equals(IContentOutlinePage.class)) {
-            IEditorInput input = getEditorInput();
-            if (input instanceof IFileEditorInput) {
-                page = new ReadmeContentOutlinePage(((IFileEditorInput) input)
-                        .getFile());
-                return page;
-            }
-        }
-        return super.getAdapter(key);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on AbstractTextEditor
-     */
-    protected void editorContextMenuAboutToShow(IMenuManager parentMenu) {
-        super.editorContextMenuAboutToShow(parentMenu);
-        parentMenu.add(new Separator());
-        IMenuManager subMenu = new MenuManager(MessageUtil.getString("Add")); //$NON-NLS-1$
-        parentMenu.add(subMenu);
-        if (subMenu != null) {
-            // Add readme actions with various attributes
-            Object[][] att = new Object[][] { { IReadmeConstants.MARKER_ATT_ID,
-                    new Integer(1234) } };
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "1", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " id=1234")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] { { IReadmeConstants.MARKER_ATT_LEVEL,
-                    new Integer(7) } };
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "2", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " level=7")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] {
-                    { IReadmeConstants.MARKER_ATT_LEVEL, new Integer(7) },
-                    { IReadmeConstants.MARKER_ATT_DEPT, "infra" } }; //$NON-NLS-1$
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "3", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " level=7, department=infra")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] { { IReadmeConstants.MARKER_ATT_CODE, "red" } }; //$NON-NLS-1$
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "4", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " code=red")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] { { IReadmeConstants.MARKER_ATT_LANG,
-                    "english" } }; //$NON-NLS-1$
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "5", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " language=english")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] {
-                    { IReadmeConstants.MARKER_ATT_ID, new Integer(1234) },
-                    { IReadmeConstants.MARKER_ATT_LEVEL, new Integer(7) },
-                    { IReadmeConstants.MARKER_ATT_DEPT, "infra" }, //$NON-NLS-1$
-                    { IReadmeConstants.MARKER_ATT_CODE, "red" }, //$NON-NLS-1$
-                    { IReadmeConstants.MARKER_ATT_LANG, "english" } }; //$NON-NLS-1$
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "6", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + //$NON-NLS-1$
-                                    " id=1234, level=7, department=infra, code=red, language=english")); //$NON-NLS-1$
-
-            att = new Object[0][0];
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "7", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " No attributes specified")); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditorActionBarContributor.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditorActionBarContributor.java
deleted file mode 100644
index 58c466a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditorActionBarContributor.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.LabelRetargetAction;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.texteditor.BasicTextEditorActionContributor;
-
-/**
- * This class demonstrates action contribution for the readme editor.
- * A number of menu, toolbar, and status line contributions are defined
- * in the workbench window.  These actions are shared among all 
- * readme editors, and are only visible when a readme editor is 
- * active.  Otherwise, they are invisible.
- */
-public class ReadmeEditorActionBarContributor extends
-        BasicTextEditorActionContributor {
-    private EditorAction action1;
-
-    private RetargetAction action2;
-
-    private LabelRetargetAction action3;
-
-    private EditorAction handler2;
-
-    private EditorAction handler3;
-
-    private EditorAction handler4;
-
-    private EditorAction handler5;
-
-    private DirtyStateContribution dirtyStateContribution;
-
-    class EditorAction extends Action {
-        private Shell shell;
-
-        private IEditorPart activeEditor;
-
-        public EditorAction(String label) {
-            super(label);
-        }
-
-        public void setShell(Shell shell) {
-            this.shell = shell;
-        }
-
-        public void run() {
-            String editorName = MessageUtil.getString("Empty_Editor_Name"); //$NON-NLS-1$
-            if (activeEditor != null)
-                editorName = activeEditor.getTitle();
-            MessageDialog
-                    .openInformation(
-                            shell,
-                            MessageUtil.getString("Readme_Editor"), //$NON-NLS-1$
-                            MessageUtil
-                                    .format(
-                                            "ReadmeEditorActionExecuted", new Object[] { getText(), editorName })); //$NON-NLS-1$
-        }
-
-        public void setActiveEditor(IEditorPart part) {
-            activeEditor = part;
-        }
-    }
-
-    /**
-     * Creates a new ReadmeEditorActionBarContributor.
-     */
-    public ReadmeEditorActionBarContributor() {
-        action1 = new EditorAction(MessageUtil.getString("Editor_Action1")); //$NON-NLS-1$
-        action1.setToolTipText(MessageUtil.getString("Readme_Editor_Action1")); //$NON-NLS-1$
-        action1
-                .setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_DISABLE);
-        action1.setImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_ENABLE);
-        action1.setHoverImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(action1, IReadmeConstants.EDITOR_ACTION1_CONTEXT);
-
-        action2 = new RetargetAction(IReadmeConstants.RETARGET2, MessageUtil
-                .getString("Editor_Action2")); //$NON-NLS-1$
-        action2.setToolTipText(MessageUtil.getString("Readme_Editor_Action2")); //$NON-NLS-1$
-        action2
-                .setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_DISABLE);
-        action2.setImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_ENABLE);
-        action2.setHoverImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE);
-
-        action3 = new LabelRetargetAction(IReadmeConstants.LABELRETARGET3,
-                MessageUtil.getString("Editor_Action3")); //$NON-NLS-1$
-        action3
-                .setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_DISABLE);
-        action3.setImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_ENABLE);
-        action3.setHoverImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE);
-
-        handler2 = new EditorAction(MessageUtil.getString("Editor_Action2")); //$NON-NLS-1$
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(action2, IReadmeConstants.EDITOR_ACTION2_CONTEXT);
-
-        handler3 = new EditorAction(MessageUtil.getString("Editor_Action3")); //$NON-NLS-1$
-        handler3.setToolTipText(MessageUtil.getString("Readme_Editor_Action3")); //$NON-NLS-1$
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(action3, IReadmeConstants.EDITOR_ACTION3_CONTEXT);
-
-        handler4 = new EditorAction(MessageUtil.getString("Editor_Action4")); //$NON-NLS-1$
-        handler5 = new EditorAction(MessageUtil.getString("Editor_Action5")); //$NON-NLS-1$
-        handler5.setToolTipText(MessageUtil.getString("Readme_Editor_Action5")); //$NON-NLS-1$
-
-        dirtyStateContribution = new DirtyStateContribution();
-    }
-
-    /** (non-Javadoc)
-     * Method declared on EditorActionBarContributor
-     */
-    public void contributeToMenu(IMenuManager menuManager) {
-        // Run super.
-        super.contributeToMenu(menuManager);
-
-        // Editor-specitic menu
-        MenuManager readmeMenu = new MenuManager(MessageUtil
-                .getString("Readme_Menu")); //$NON-NLS-1$
-        // It is important to append the menu to the
-        // group "additions". This group is created
-        // between "Project" and "Tools" menus
-        // for this purpose.
-        menuManager.insertAfter("additions", readmeMenu); //$NON-NLS-1$
-        readmeMenu.add(action1);
-        readmeMenu.add(action2);
-        readmeMenu.add(action3);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on EditorActionBarContributor
-     */
-    public void contributeToStatusLine(IStatusLineManager statusLineManager) {
-        // Run super.
-        super.contributeToStatusLine(statusLineManager);
-        // Test status line.	
-        statusLineManager.setMessage(MessageUtil.getString("Editor_is_active")); //$NON-NLS-1$
-        statusLineManager.add(dirtyStateContribution);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on EditorActionBarContributor
-     */
-    public void contributeToToolBar(IToolBarManager toolBarManager) {
-        // Run super.
-        super.contributeToToolBar(toolBarManager);
-
-        // Add toolbar stuff.
-        toolBarManager.add(new Separator("ReadmeEditor")); //$NON-NLS-1$
-        toolBarManager.add(action1);
-        toolBarManager.add(action2);
-        toolBarManager.add(action3);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IEditorActionBarContributor
-     */
-    public void dispose() {
-        // Remove retarget actions as page listeners
-        getPage().removePartListener(action2);
-        getPage().removePartListener(action3);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IEditorActionBarContributor
-     */
-    public void init(IActionBars bars, IWorkbenchPage page) {
-        super.init(bars, page);
-        bars.setGlobalActionHandler(IReadmeConstants.RETARGET2, handler2);
-        bars.setGlobalActionHandler(IReadmeConstants.LABELRETARGET3, handler3);
-        bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_RETARGET4,
-                handler4);
-        bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_LABELRETARGET5,
-                handler5);
-
-        // Hook retarget actions as page listeners
-        page.addPartListener(action2);
-        page.addPartListener(action3);
-        IWorkbenchPart activePart = page.getActivePart();
-        if (activePart != null) {
-            action2.partActivated(activePart);
-            action3.partActivated(activePart);
-        }
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IEditorActionBarContributor
-     */
-    public void setActiveEditor(IEditorPart editor) {
-        // Run super.
-        super.setActiveEditor(editor);
-
-        // Target shared actions to new editor
-        action1.setActiveEditor(editor);
-        handler2.setActiveEditor(editor);
-        handler3.setActiveEditor(editor);
-        handler4.setActiveEditor(editor);
-        handler5.setActiveEditor(editor);
-        dirtyStateContribution.editorChanged(editor);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage.java
deleted file mode 100644
index fa02051..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * This page will be added to the property page dialog
- * when the "Properties..." popup menu item is selected
- * for Readme files. 
- */
-public class ReadmeFilePropertyPage extends PropertyPage {
-
-    /**
-     * Utility method that creates a new composite and
-     * sets up its layout data.
-     *
-     * @param parent  the parent of the composite
-     * @param numColumns  the number of columns in the new composite
-     * @return the newly-created composite
-     */
-    protected Composite createComposite(Composite parent, int numColumns) {
-        Composite composite = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = numColumns;
-        composite.setLayout(layout);
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        composite.setLayoutData(data);
-        return composite;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public Control createContents(Composite parent) {
-
-        // ensure the page has no special buttons
-        noDefaultAndApplyButton();
-        Composite panel = createComposite(parent, 2);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-				IReadmeConstants.PROPERTY_PAGE_CONTEXT);
-
-        // layout the page
-
-        IResource resource = (IResource) getElement();
-        IStatus result = null;
-        if (resource.getType() == IResource.FILE) {
-            Label label = createLabel(panel, MessageUtil.getString("File_name")); //$NON-NLS-1$
-            label = createLabel(panel, resource.getName());
-            grabExcessSpace(label);
-
-            //
-            createLabel(panel, MessageUtil.getString("Path")); //$NON-NLS-1$
-            label = createLabel(panel, resource.getFullPath().setDevice(null)
-                    .toString());
-            grabExcessSpace(label);
-
-            //
-            createLabel(panel, MessageUtil.getString("Size")); //$NON-NLS-1$
-            InputStream contentStream = null;
-            try {
-                IFile file = (IFile) resource;
-                contentStream = file.getContents();
-                Reader in = new InputStreamReader(contentStream);
-                int chunkSize = contentStream.available();
-                StringBuffer buffer = new StringBuffer(chunkSize);
-                char[] readBuffer = new char[chunkSize];
-                int n = in.read(readBuffer);
-
-                while (n > 0) {
-                    buffer.append(readBuffer);
-                    n = in.read(readBuffer);
-                }
-
-                contentStream.close();
-                label = createLabel(panel, Integer.toString(buffer.length()));
-            } catch (CoreException e) {
-                result = e.getStatus();
-                String message = result.getMessage();
-                if (message == null)
-                    label = createLabel(panel, MessageUtil.getString("<Unknown>")); //$NON-NLS-1$
-                else
-                    label = createLabel(panel, message);
-            } catch (IOException e) {
-                label = createLabel(panel, MessageUtil.getString("<Unknown>")); //$NON-NLS-1$
-            } finally {
-                if (contentStream != null) {
-                    try {
-                        contentStream.close();
-                    } catch (IOException e) {
-                        // do nothing
-                    }
-                }
-            }
-            grabExcessSpace(label);
-            createLabel(panel, MessageUtil.getString("Number_of_sections")); //$NON-NLS-1$
-            // We will get the sections property and simply
-            // report number of elements found.
-            IAdaptable sections = getSections(resource);
-            if (sections instanceof AdaptableList) {
-                AdaptableList list = (AdaptableList) sections;
-                label = createLabel(panel, String.valueOf(list.size()));
-                grabExcessSpace(label);
-            }
-        }
-
-        //
-        Label label = createLabel(panel, MessageUtil
-                .getString("Additional_information")); //$NON-NLS-1$
-        grabExcessSpace(label);
-        GridData gd = (GridData) label.getLayoutData();
-        gd.horizontalSpan = 2;
-        return new Canvas(panel, 0);
-    }
-
-    /**
-     * Utility method that creates a new label and sets up its layout data.
-     *
-     * @param parent  the parent of the label
-     * @param text  the text of the label
-     * @return the newly-created label
-     */
-    protected Label createLabel(Composite parent, String text) {
-        Label label = new Label(parent, SWT.LEFT);
-        label.setText(text);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        return label;
-    }
-
-    /**
-     * Returns the readme sections for this resource, or null
-     * if not applicable (resource is not a readme file).
-     */
-    private AdaptableList getSections(IAdaptable adaptable) {
-        if (adaptable instanceof IFile)
-            return ReadmeModelFactory.getInstance().getSections(
-                    (IFile) adaptable);
-        return null;
-    }
-
-    /**
-     * Sets this control to grab any excess horizontal space
-     * left in the window.
-     *
-     * @param control  the control for which to grab excess space
-     */
-    private void grabExcessSpace(Control control) {
-        GridData gd = (GridData) control.getLayoutData();
-        if (gd != null) {
-            gd.grabExcessHorizontalSpace = true;
-        }
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public boolean performOk() {
-        // nothing to do - read-only page
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java
deleted file mode 100644
index dd2ee3a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * This page will be added to the property page dialog
- * when "Properties..." popup menu item is selected
- * for Readme files. 
- *
- * This page demonstrates conditional property pages which look
- * different depending on the state of the element. In this example,
- * the arbitrary condition chosen is whether the Readme file is
- * greater than 256 bytes in length. If it is smaller than 256 bytes
- * in length, this will be a placeholder page containing 
- * a simple message. If it is 256 bytes or larger, additional 
- * information will be provided. This information is determined at
- * runtime.
- *
- * This class may be reused to implement a conditional property page.
- * The getPageIndex() method tests the condition and returns the
- * index of the page to create. The createPage*() methods are called
- * upon to create the actual pages.
- */
-public class ReadmeFilePropertyPage2 extends PropertyPage {
-
-    /**
-     * Utility method that creates a new composite and
-     * sets up its layout data.
-     *
-     * @param parent  the parent of the composite
-     * @param numColumns  the number of columns in the new composite
-     * @return the newly-created composite
-     */
-    protected Composite createComposite(Composite parent, int numColumns) {
-        Composite composite = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = numColumns;
-        composite.setLayout(layout);
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        composite.setLayoutData(data);
-        return composite;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public Control createContents(Composite parent) {
-        // ensure the page has no special buttons
-        noDefaultAndApplyButton();
-        Composite panel = createComposite(parent, 2);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-				IReadmeConstants.PROPERTY_PAGE2_CONTEXT);
-
-        // layout the page
-        int page = getPageIndex();
-        switch (page) {
-        case 1:
-            createPageOne(panel);
-            break;
-        case 2:
-            createPageTwo(panel);
-            break;
-        default:
-        }
-        return new Canvas(panel, 0);
-    }
-
-    /**
-     * Utility method that creates a new label and sets up
-     * its layout data.
-     *
-     * @param parent  the parent of the label
-     * @param text  the text of the label
-     * @return the newly-created label
-     */
-    protected Label createLabel(Composite parent, String text) {
-        Label label = new Label(parent, SWT.LEFT);
-        label.setText(text);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        return label;
-    }
-
-    /**
-     * Creates the first version of the page. This is a placeholder page which
-     * notified the user that the page is not available.
-     *
-     * @param panel  the panel in which to create the page
-     */
-    protected void createPageOne(Composite panel) {
-        Label l = createLabel(panel, MessageUtil
-                .getString("Additional_Readme_properties_not_available.")); //$NON-NLS-1$
-        GridData gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("This_illustrates_a_property_page_that_is_dynamically_determined")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("not_to_be_available_based_on_the_state_of_the_object.")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-    }
-
-    /**
-     * Creates the second version of the page. This page might contain more information
-     * about the file or other information.
-     *
-     * @param panel  the panel in which to create the page
-     */
-    protected void createPageTwo(Composite panel) {
-        Label l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("The_size_of_the_Readme_file_is_at_least_256_bytes.")); //$NON-NLS-1$
-        GridData gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("Had_it_been_less_than_256_bytes_this_page_would_be_a_placeholder_page.")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(panel, MessageUtil.getString("Additional_information")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("This_illustrates_a_property_page_that_is_dynamically_determined")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(panel, MessageUtil
-                .getString("to_be_available_based_on_the_state_of_the_object.")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-    }
-
-    /**
-     * Returns which page to display. This implementation
-     * answers 1 if the size of the Readme file is less than 256 bytes
-     * and 2 otherwise.
-     *
-     * @return the index of the page to display
-     */
-    protected int getPageIndex() {
-        IResource resource = (IResource) getElement();
-
-        if (resource.getType() == IResource.FILE) {
-            InputStream contentStream = null;
-            int length = 0;
-            try {
-                IFile file = (IFile) resource;
-                contentStream = file.getContents();
-                Reader in = new InputStreamReader(contentStream);
-                int chunkSize = contentStream.available();
-                StringBuffer buffer = new StringBuffer(chunkSize);
-                char[] readBuffer = new char[chunkSize];
-                int n = in.read(readBuffer);
-
-                while (n > 0) {
-                    buffer.append(readBuffer);
-                    n = in.read(readBuffer);
-                }
-
-                contentStream.close();
-                length = buffer.length();
-            } catch (CoreException e) {
-                length = 0;
-            } catch (IOException e) {
-                // do nothing
-            } finally {
-                if (contentStream != null) {
-                    try {
-                        contentStream.close();
-                    } catch (IOException e) {
-                        // do nothing
-                    }
-                }
-            }
-
-            if (length < 256)
-                return 1;
-            return 2;
-        }
-
-        return 0;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public boolean performOk() {
-        // nothing to do - read-only page
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeImages.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeImages.java
deleted file mode 100644
index 8c1ce7a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeImages.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74526)
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * Convenience class for storing references to image descriptors
- * used by the readme tool.
- */
-public class ReadmeImages {
-    static final URL BASE_URL = ReadmePlugin.getDefault().getBundle().getEntry("/"); //$NON-NLS-1$
-
-    static final ImageDescriptor EDITOR_ACTION1_IMAGE;
-
-    static final ImageDescriptor EDITOR_ACTION2_IMAGE;
-
-    static final ImageDescriptor EDITOR_ACTION3_IMAGE;
-
-    static final ImageDescriptor EDITOR_ACTION1_IMAGE_DISABLE;
-
-    static final ImageDescriptor EDITOR_ACTION2_IMAGE_DISABLE;
-
-    static final ImageDescriptor EDITOR_ACTION3_IMAGE_DISABLE;
-
-    static final ImageDescriptor EDITOR_ACTION1_IMAGE_ENABLE;
-
-    static final ImageDescriptor EDITOR_ACTION2_IMAGE_ENABLE;
-
-    static final ImageDescriptor EDITOR_ACTION3_IMAGE_ENABLE;
-
-    static final ImageDescriptor README_WIZARD_BANNER;
-
-    static {
-        String iconPath = "icons/"; //$NON-NLS-1$
-
-        String prefix = iconPath + "ctool16/"; //$NON-NLS-1$
-        EDITOR_ACTION1_IMAGE = createImageDescriptor(prefix + "action1.gif"); //$NON-NLS-1$
-        EDITOR_ACTION2_IMAGE = createImageDescriptor(prefix + "action2.gif"); //$NON-NLS-1$
-        EDITOR_ACTION3_IMAGE = createImageDescriptor(prefix + "action3.gif"); //$NON-NLS-1$
-
-        prefix = iconPath + "dtool16/"; //$NON-NLS-1$
-        EDITOR_ACTION1_IMAGE_DISABLE = createImageDescriptor(prefix
-                + "action1.gif"); //$NON-NLS-1$
-        EDITOR_ACTION2_IMAGE_DISABLE = createImageDescriptor(prefix
-                + "action2.gif"); //$NON-NLS-1$
-        EDITOR_ACTION3_IMAGE_DISABLE = createImageDescriptor(prefix
-                + "action3.gif"); //$NON-NLS-1$
-
-        prefix = iconPath + "etool16/"; //$NON-NLS-1$
-        EDITOR_ACTION1_IMAGE_ENABLE = createImageDescriptor(prefix
-                + "action1.gif"); //$NON-NLS-1$
-        EDITOR_ACTION2_IMAGE_ENABLE = createImageDescriptor(prefix
-                + "action2.gif"); //$NON-NLS-1$
-        EDITOR_ACTION3_IMAGE_ENABLE = createImageDescriptor(prefix
-                + "action3.gif"); //$NON-NLS-1$
-
-        prefix = iconPath + "wizban/"; //$NON-NLS-1$
-        README_WIZARD_BANNER = createImageDescriptor(prefix
-                + "newreadme_wiz.gif"); //$NON-NLS-1$
-    }
-
-    /**
-     * Utility method to create an <code>ImageDescriptor</code>
-     * from a path to a file.
-     */
-    private static ImageDescriptor createImageDescriptor(String path) {
-        try {
-            URL url = new URL(BASE_URL, path);
-            return ImageDescriptor.createFromURL(url);
-        } catch (MalformedURLException e) {
-            // do nothing
-        }
-        return ImageDescriptor.getMissingImageDescriptor();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeMarkerResolutionGenerator.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeMarkerResolutionGenerator.java
deleted file mode 100644
index 5bd3108..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeMarkerResolutionGenerator.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.IMarkerResolutionGenerator2;
-
-/**
- * Creates resolutions for readme markers.
- */
-public class ReadmeMarkerResolutionGenerator implements
-        IMarkerResolutionGenerator2 {
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerResolutionGenerator.
-     */
-    public IMarkerResolution[] getResolutions(IMarker marker) {
-        return new IMarkerResolution[] { new AddSentenceResolution() };
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerResolutionGenerator2.
-     */
-    public boolean hasResolutions(IMarker marker) {
-        return true;
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeModelFactory.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeModelFactory.java
deleted file mode 100644
index 641735d..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeModelFactory.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74526)
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-/**
- * Creates the sections used in the <code>ContentOutline</code>
- *
- * @see ReadmeContentOutlinePage#getContentOutline(IAdaptable)
- */
-public class ReadmeModelFactory {
-    private static ReadmeModelFactory instance = new ReadmeModelFactory();
-
-    private boolean registryLoaded = false;
-
-    IReadmeFileParser parser = null;
-
-    /**
-     * Creates a new ReadmeModelFactory.
-     */
-    private ReadmeModelFactory() {
-        // do nothing
-    }
-
-    /**
-     * Adds all mark elements to the list for the subtree rooted
-     * at the given mark element.
-     */
-    protected void addSections(AdaptableList list, MarkElement element) {
-        list.add(element);
-        Object[] children = element.getChildren(element);
-        for (int i = 0; i < children.length; ++i) {
-            addSections(list, (MarkElement) children[i]);
-        }
-    }
-
-    /**
-     * Returns the content outline for the given Readme file.
-     *
-     * @param adaptable  the element for which to return the content outline
-     * @return the content outline for the argument
-     */
-    public AdaptableList getContentOutline(IAdaptable adaptable) {
-        return new AdaptableList(getToc((IFile) adaptable));
-    }
-
-    /**
-     * Returns the singleton readme adapter.
-     */
-    public static ReadmeModelFactory getInstance() {
-        return instance;
-    }
-
-    /**
-     * Returns a list of all sections in this readme file.
-     *
-     * @param file  the file for which to return section heading and subheadings
-     * @return A list containing headings and subheadings
-     */
-    public AdaptableList getSections(IFile file) {
-        MarkElement[] topLevel = getToc(file);
-        AdaptableList list = new AdaptableList();
-        for (int i = 0; i < topLevel.length; i++) {
-            addSections(list, topLevel[i]);
-        }
-        return list;
-    }
-
-    /**
-     * Convenience method.  Looks for a readme file in the selection,
-     * and if one is found, returns the sections for it.  Returns null
-     * if there is no readme file in the selection.
-     */
-    public AdaptableList getSections(ISelection sel) {
-        // If sel is not a structured selection just return.
-        if (!(sel instanceof IStructuredSelection))
-            return null;
-        IStructuredSelection structured = (IStructuredSelection) sel;
-
-        //if the selection is a readme file, get its sections.
-        Object object = structured.getFirstElement();
-        if (object instanceof IFile) {
-            IFile file = (IFile) object;
-            String extension = file.getFileExtension();
-            if (extension != null
-                    && extension.equals(IReadmeConstants.EXTENSION)) {
-                return getSections(file);
-            }
-        }
-
-        //the selected object is not a readme file
-        return null;
-    }
-
-    /**
-     * Parses the contents of the Readme file by looking for lines 
-     * that start with a number.
-     *
-     * @param file  the file representing the Readme file
-     * @return an element collection representing the table of contents
-     */
-    private MarkElement[] getToc(IFile file) {
-        if (registryLoaded == false)
-            loadParser();
-        return parser.parse(file);
-    }
-
-    /**
-     * Loads the parser from the registry by searching for
-     * extensions that satisfy our published extension point.
-     * For the sake of simplicity, we will pick the last extension,
-     * allowing tools to override what is used. In a more
-     * elaborate tool, all the extensions would be processed.
-     */
-    private void loadParser() {
-        IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(
-                IReadmeConstants.PLUGIN_ID, IReadmeConstants.PP_SECTION_PARSER);
-        if (point != null) {
-            IExtension[] extensions = point.getExtensions();
-            for (int i = 0; i < extensions.length; i++) {
-                IExtension currentExtension = extensions[i];
-                // in a real application, we would collection
-                // the entire list and probably expose it
-                // as a drop-down list. For the sake
-                // of simplicity, we will pick the last extension only.
-                if (i == extensions.length - 1) {
-                    IConfigurationElement[] configElements = currentExtension
-                            .getConfigurationElements();
-                    for (int j = 0; j < configElements.length; j++) {
-                        IConfigurationElement config = configElements[i];
-                        if (config.getName()
-                                .equals(IReadmeConstants.TAG_PARSER)) {
-                            // process the first 'parser' element and stop
-                            processParserElement(config);
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-        if (parser == null)
-            parser = new DefaultSectionsParser();
-        registryLoaded = true;
-    }
-
-    /**
-     * Tries to create the Readme file parser. If an error occurs during
-     * the creation of the parser, print an error and set the parser
-     * to null.
-     *
-     * @param element  the element to process
-     */
-    private void processParserElement(IConfigurationElement element) {
-        try {
-            parser = (IReadmeFileParser) element
-                    .createExecutableExtension(IReadmeConstants.ATT_CLASS);
-        } catch (CoreException e) {
-            // since this is an example just write to the console
-            System.out
-                    .println(MessageUtil
-                            .getString("Unable_to_create_file_parser") + e.getStatus().getMessage()); //$NON-NLS-1$
-            parser = null;
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePlugin.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePlugin.java
deleted file mode 100644
index 6c67f57..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePlugin.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74528)
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * This is the top-level class of the Readme plugin tool.
- *
- * @see AbstractUIPlugin for additional information on UI plugins
- */
-public class ReadmePlugin extends AbstractUIPlugin {
-    
-    public static final String PLUGIN_ID = "org.eclipse.ui.examples.readmetool"; //$NON-NLS-1$
-    
-    /**
-     * Default instance of the receiver
-     */ 
-    private static ReadmePlugin inst;
-
-    /**
-     * Creates the Readme plugin and caches its default instance
-     */
-    public ReadmePlugin() {
-        if (inst == null)
-            inst = this;
-    }
-
-    /**
-     * Gets the plugin singleton.
-     *
-     * @return the default ReadmePlugin instance
-     */
-    static public ReadmePlugin getDefault() {
-        return inst;
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferenceInitializer.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferenceInitializer.java
deleted file mode 100644
index 6df33ad..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferenceInitializer.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * Initializes the preferences for the readme plug-in.
- * 
- * @since 3.0
- */
-public class ReadmePreferenceInitializer extends AbstractPreferenceInitializer {
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-     */
-    public void initializeDefaultPreferences() {
-        // These settings will show up when the Readme preference page
-        // is shown for the first time.
-        IPreferenceStore store = ReadmePlugin.getDefault().getPreferenceStore();
-        store.setDefault(IReadmeConstants.PRE_CHECK1, true);
-        store.setDefault(IReadmeConstants.PRE_CHECK2, true);
-        store.setDefault(IReadmeConstants.PRE_CHECK3, false);
-        store.setDefault(IReadmeConstants.PRE_RADIO_CHOICE, 2);
-        store.setDefault(IReadmeConstants.PRE_TEXT, MessageUtil
-                .getString("Default_text")); //$NON-NLS-1$
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java
deleted file mode 100644
index ba8d286..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java
+++ /dev/null
@@ -1,359 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class implements a sample preference page that is 
- * added to the preference dialog based on the registration.
- */
-public class ReadmePreferencePage extends PreferencePage implements
-        IWorkbenchPreferencePage, SelectionListener, ModifyListener {
-    private Button radioButton1;
-
-    private Button radioButton2;
-
-    private Button radioButton3;
-
-    private Button checkBox1;
-
-    private Button checkBox2;
-
-    private Button checkBox3;
-
-    private Text textField;
-
-    /**
-     * Creates an new checkbox instance and sets the default
-     * layout data.
-     *
-     * @param group  the composite in which to create the checkbox
-     * @param label  the string to set into the checkbox
-     * @return the new checkbox
-     */
-    private Button createCheckBox(Composite group, String label) {
-        Button button = new Button(group, SWT.CHECK | SWT.LEFT);
-        button.setText(label);
-        button.addSelectionListener(this);
-        GridData data = new GridData();
-        button.setLayoutData(data);
-        return button;
-    }
-
-    /**
-     * Creates composite control and sets the default layout data.
-     *
-     * @param parent  the parent of the new composite
-     * @param numColumns  the number of columns for the new composite
-     * @return the newly-created coposite
-     */
-    private Composite createComposite(Composite parent, int numColumns) {
-        Composite composite = new Composite(parent, SWT.NULL);
-
-        //GridLayout
-        GridLayout layout = new GridLayout();
-        layout.numColumns = numColumns;
-        composite.setLayout(layout);
-
-        //GridData
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        composite.setLayoutData(data);
-        return composite;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    protected Control createContents(Composite parent) {
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-				IReadmeConstants.PREFERENCE_PAGE_CONTEXT);
-
-        //composite_textField << parent
-        Composite composite_textField = createComposite(parent, 2);
-        createLabel(composite_textField, MessageUtil.getString("Text_Field")); //$NON-NLS-1$
-        textField = createTextField(composite_textField);
-        createPushButton(composite_textField, MessageUtil.getString("Change")); //$NON-NLS-1$
-
-        //composite_tab << parent
-        Composite composite_tab = createComposite(parent, 2);
-        createLabel(composite_tab, MessageUtil
-                .getString("Radio_Button_Options")); //$NON-NLS-1$
-
-        //
-        tabForward(composite_tab);
-        //radio button composite << tab composite
-        Composite composite_radioButton = createComposite(composite_tab, 1);
-        radioButton1 = createRadioButton(composite_radioButton, MessageUtil
-                .getString("Radio_button_1")); //$NON-NLS-1$
-        radioButton2 = createRadioButton(composite_radioButton, MessageUtil
-                .getString("Radio_button_2")); //$NON-NLS-1$
-        radioButton3 = createRadioButton(composite_radioButton, MessageUtil
-                .getString("Radio_button_3")); //$NON-NLS-1$
-
-        //composite_tab2 << parent
-        Composite composite_tab2 = createComposite(parent, 2);
-        createLabel(composite_tab2, MessageUtil.getString("Check_Box_Options")); //$NON-NLS-1$
-
-        //
-        tabForward(composite_tab2);
-        //composite_checkBox << composite_tab2
-        Composite composite_checkBox = createComposite(composite_tab2, 1);
-        checkBox1 = createCheckBox(composite_checkBox, MessageUtil
-                .getString("Check_box_1")); //$NON-NLS-1$
-        checkBox2 = createCheckBox(composite_checkBox, MessageUtil
-                .getString("Check_box_2")); //$NON-NLS-1$
-        checkBox3 = createCheckBox(composite_checkBox, MessageUtil
-                .getString("Check_box_3")); //$NON-NLS-1$
-
-        initializeValues();
-
-        //font = null;
-        return new Composite(parent, SWT.NULL);
-    }
-
-    /**
-     * Utility method that creates a label instance
-     * and sets the default layout data.
-     *
-     * @param parent  the parent for the new label
-     * @param text  the text for the new label
-     * @return the new label
-     */
-    private Label createLabel(Composite parent, String text) {
-        Label label = new Label(parent, SWT.LEFT);
-        label.setText(text);
-        GridData data = new GridData();
-        data.horizontalSpan = 2;
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        return label;
-    }
-
-    /**
-     * Utility method that creates a push button instance
-     * and sets the default layout data.
-     *
-     * @param parent  the parent for the new button
-     * @param label  the label for the new button
-     * @return the newly-created button
-     */
-    private Button createPushButton(Composite parent, String label) {
-        Button button = new Button(parent, SWT.PUSH);
-        button.setText(label);
-        button.addSelectionListener(this);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        button.setLayoutData(data);
-        return button;
-    }
-
-    /**
-     * Utility method that creates a radio button instance
-     * and sets the default layout data.
-     *
-     * @param parent  the parent for the new button
-     * @param label  the label for the new button
-     * @return the newly-created button
-     */
-    private Button createRadioButton(Composite parent, String label) {
-        Button button = new Button(parent, SWT.RADIO | SWT.LEFT);
-        button.setText(label);
-        button.addSelectionListener(this);
-        GridData data = new GridData();
-        button.setLayoutData(data);
-        return button;
-    }
-
-    /**
-     * Create a text field specific for this application
-     *
-     * @param parent  the parent of the new text field
-     * @return the new text field
-     */
-    private Text createTextField(Composite parent) {
-        Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-        text.addModifyListener(this);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        data.grabExcessHorizontalSpace = true;
-        data.verticalAlignment = GridData.CENTER;
-        data.grabExcessVerticalSpace = false;
-        text.setLayoutData(data);
-        return text;
-    }
-
-    /** 
-     * The <code>ReadmePreferencePage</code> implementation of this
-     * <code>PreferencePage</code> method 
-     * returns preference store that belongs to the our plugin.
-     * This is important because we want to store
-     * our preferences separately from the workbench.
-     */
-    protected IPreferenceStore doGetPreferenceStore() {
-        return ReadmePlugin.getDefault().getPreferenceStore();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPreferencePage
-     */
-    public void init(IWorkbench workbench) {
-        // do nothing
-    }
-
-    /**
-     * Initializes states of the controls using default values
-     * in the preference store.
-     */
-    private void initializeDefaults() {
-        IPreferenceStore store = getPreferenceStore();
-        checkBox1.setSelection(store
-                .getDefaultBoolean(IReadmeConstants.PRE_CHECK1));
-        checkBox2.setSelection(store
-                .getDefaultBoolean(IReadmeConstants.PRE_CHECK2));
-        checkBox3.setSelection(store
-                .getDefaultBoolean(IReadmeConstants.PRE_CHECK3));
-
-        radioButton1.setSelection(false);
-        radioButton2.setSelection(false);
-        radioButton3.setSelection(false);
-        int choice = store.getDefaultInt(IReadmeConstants.PRE_RADIO_CHOICE);
-        switch (choice) {
-        case 1:
-            radioButton1.setSelection(true);
-            break;
-        case 2:
-            radioButton2.setSelection(true);
-            break;
-        case 3:
-            radioButton3.setSelection(true);
-            break;
-        }
-        textField.setText(store.getDefaultString(IReadmeConstants.PRE_TEXT));
-    }
-
-    /**
-     * Initializes states of the controls from the preference store.
-     */
-    private void initializeValues() {
-        IPreferenceStore store = getPreferenceStore();
-        checkBox1.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK1));
-        checkBox2.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK2));
-        checkBox3.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK3));
-
-        int choice = store.getInt(IReadmeConstants.PRE_RADIO_CHOICE);
-        switch (choice) {
-        case 1:
-            radioButton1.setSelection(true);
-            break;
-        case 2:
-            radioButton2.setSelection(true);
-            break;
-        case 3:
-            radioButton3.setSelection(true);
-            break;
-        }
-        textField.setText(store.getString(IReadmeConstants.PRE_TEXT));
-    }
-
-    /** (non-Javadoc)
-     * Method declared on ModifyListener
-     */
-    public void modifyText(ModifyEvent event) {
-        //Do nothing on a modification in this example
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    protected void performDefaults() {
-        super.performDefaults();
-        initializeDefaults();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public boolean performOk() {
-        storeValues();
-        ReadmePlugin.getDefault().savePluginPreferences();
-        return true;
-    }
-
-    /**
-     * Stores the values of the controls back to the preference store.
-     */
-    private void storeValues() {
-        IPreferenceStore store = getPreferenceStore();
-        store.setValue(IReadmeConstants.PRE_CHECK1, checkBox1.getSelection());
-        store.setValue(IReadmeConstants.PRE_CHECK2, checkBox2.getSelection());
-        store.setValue(IReadmeConstants.PRE_CHECK3, checkBox3.getSelection());
-
-        int choice = 1;
-
-        if (radioButton2.getSelection())
-            choice = 2;
-        else if (radioButton3.getSelection())
-            choice = 3;
-
-        store.setValue(IReadmeConstants.PRE_RADIO_CHOICE, choice);
-        store.setValue(IReadmeConstants.PRE_TEXT, textField.getText());
-    }
-
-    /**
-     * Creates a tab of one horizontal spans.
-     *
-     * @param parent  the parent in which the tab should be created
-     */
-    private void tabForward(Composite parent) {
-        Label vfiller = new Label(parent, SWT.LEFT);
-        GridData gridData = new GridData();
-        gridData = new GridData();
-        gridData.horizontalAlignment = GridData.BEGINNING;
-        gridData.grabExcessHorizontalSpace = false;
-        gridData.verticalAlignment = GridData.CENTER;
-        gridData.grabExcessVerticalSpace = false;
-        vfiller.setLayoutData(gridData);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on SelectionListener
-     */
-    public void widgetDefaultSelected(SelectionEvent event) {
-        //Handle a default selection. Do nothing in this example
-    }
-
-    /** (non-Javadoc)
-     * Method declared on SelectionListener
-     */
-    public void widgetSelected(SelectionEvent event) {
-        //Do nothing on selection in this example;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeSectionsView.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeSectionsView.java
deleted file mode 100644
index 249ee5a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeSectionsView.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * This class demonstrates a simple view containing a single viewer.
- */
-public class ReadmeSectionsView extends ViewPart implements ISelectionListener {
-    ListViewer viewer;
-
-    /**
-     * Creates a new ReadmeSectionsView .
-     */
-    public ReadmeSectionsView() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart
-     */
-    public void createPartControl(Composite parent) {
-        viewer = new ListViewer(parent);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(),
-				IReadmeConstants.SECTIONS_VIEW_CONTEXT);
-
-        // if the objects in the viewer implement IWorkbenchAdapter,
-        // these generic content and label providers can be used.
-        viewer.setContentProvider(new WorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-
-        // add myself as a global selection listener
-        getSite().getPage().addSelectionListener(this);
-
-        // prime the selection
-        selectionChanged(null, getSite().getPage().getSelection());
-    }
-
-    /**
-     * The <code>ReadmeSectionView</code> implementation of this 
-     * <code>IWorkbenchPart</code> method runs super
-     * and removes itself from the global selection listener. 
-     */
-    public void dispose() {
-        super.dispose();
-        getSite().getPage().removeSelectionListener(this);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionListener
-     */
-    public void selectionChanged(IWorkbenchPart part, ISelection sel) {
-        //if the selection is a readme file, get its sections.
-        AdaptableList input = ReadmeModelFactory.getInstance().getSections(sel);
-        viewer.setInput(input);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart
-     */
-    public void setFocus() {
-        viewer.getControl().setFocus();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/SectionsDialog.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/SectionsDialog.java
deleted file mode 100644
index 670bdb5..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/SectionsDialog.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * This dialog is an example of a detached window launched
- * from an action in the workbench.
- */
-public class SectionsDialog extends Dialog {
-    protected IAdaptable input;
-
-    /**
-     * Creates a new SectionsDialog.
-     */
-    public SectionsDialog(Shell parentShell, IAdaptable input) {
-        super(parentShell);
-        this.input = input;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell newShell) {
-        super.configureShell(newShell);
-        newShell.setText(MessageUtil.getString("Readme_Sections")); //$NON-NLS-1$
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell,
-				IReadmeConstants.SECTIONS_DIALOG_CONTEXT);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog
-     */
-    protected Control createDialogArea(Composite parent) {
-        Composite composite = (Composite) super.createDialogArea(parent);
-
-        List list = new List(composite, SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        list.setLayoutData(data);
-        ListViewer viewer = new ListViewer(list);
-        viewer.setContentProvider(new WorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-        viewer.setInput(input);
-
-        return composite;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ViewActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ViewActionDelegate.java
deleted file mode 100644
index a0ba8ad..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ViewActionDelegate.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * This class is used to demonstrate view action extensions.
- * An extension should be defined in the readme plugin.xml.
- */
-public class ViewActionDelegate implements IViewActionDelegate {
-    public IViewPart view;
-
-    /**
-     * Creates a new ViewActionDelegate.
-     */
-    public ViewActionDelegate() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewActionDelegate
-     */
-    public void init(IViewPart view) {
-        this.view = view;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void run(org.eclipse.jface.action.IAction action) {
-        MessageDialog.openInformation(view.getSite().getShell(), MessageUtil
-                .getString("Readme_Editor"), //$NON-NLS-1$
-                MessageUtil.getString("View_Action_executed")); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void selectionChanged(org.eclipse.jface.action.IAction action,
-            org.eclipse.jface.viewers.ISelection selection) {
-        // do nothing
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/WindowActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/WindowActionDelegate.java
deleted file mode 100644
index 7438d70..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/WindowActionDelegate.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * This class shows how <code>IActionDelegate</code> implementations
- * should be used for global action registration for menu 
- * and tool bars. Action proxy object is created in the 
- * workbench based on presentation information in the plugin.xml
- * file. Delegate is not loaded until the first time the user
- * presses the button or selects the menu. Based on the action
- * availability, it is possible that the button will disable
- * instead of executing.
- */
-public class WindowActionDelegate implements IWorkbenchWindowActionDelegate {
-    private IWorkbenchWindow window;
-
-    private ISelection selection;
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchActionDelegate
-     */
-    public void dispose() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchActionDelegate
-     */
-    public void init(IWorkbenchWindow window) {
-        this.window = window;
-    }
-
-    /** 
-     * The <code>WindowActionDelegate</code> implementation of this
-     * <code>IActionDelegate</code> method 
-     * launches a stand-alone dialog that contains a list of sections for
-     * the selected readme file in the navigator.
-     */
-    public void run(IAction action) {
-        SectionsDialog dialog = new SectionsDialog(window.getShell(),
-                ReadmeModelFactory.getInstance().getSections(selection));
-        dialog.open();
-    }
-
-    /** 
-     * The <code>WindowActionDelegate</code> implementation of this
-     * <code>IActionDelegate</code> method 
-     * does nothing - we will let simple rules in the XML
-     * config file react to selections.
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        this.selection = selection;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties
deleted file mode 100644
index fb11559..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties
+++ /dev/null
@@ -1,96 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Add=&Add
-Clean=Clean
-Save_Needed=Save Needed
-Editor_Action_executed=Editor Action executed
-Readme_Editor=Readme Editor
-Readme_Outline=Readme Outline
-Line_count=Line count
-Title_length=Title length
-Title_start=Title start
-Popup_Menu_Action_executed=Popup Menu Action executed
-Readme_Example=Readme Example
-Automatic_sample_section_generation=Automatic sample section generation
-Create_Readme_File=Create Readme File
-Create_a_new_Readme_file_resource=Create a new Readme file resource.
-Generate_sample_section_titles=&Generate sample section titles
-Generate_sample_subsection_titles=Generate sample subsection &titles
-Open_file_for_editing_when_done=&Open file for editing when done
-Readme_file_name=&Readme file name:
-SAMPLE_README_FILE=\n\n     SAMPLE README FILE\n\n
-SECTION_1=1. SECTION 1\n
-SECTION_1_BODY_1=This text is a placeholder for the section body.\n
-SECTION_2=2. SECTION 2\n
-SECTION_2_BODY_1=This text is a placeholder for the section body. It is\n
-SECTION_2_BODY_2=a bit longer in order to span two lines.\n
-Subsection_1_1=\ \ \ 1.1 Subsection\n
-Subsection_1_1_Body_1=\ \ \ This text is a placeholder for the subsection body\n
-Subsection_2_1=\ \ \ 2.1 Subsection\n
-Subsection_2_1_BODY_1=\ \ \ This text is a placeholder for the subsection body\n
-Subsection_2_2=\ \ \ 2.2 Subsection\n
-Subsection_2_2_BODY_1=\ \ \ This text is a placeholder for the subsection body\n
-New_Readme_File=New Readme File
-Exception_in_readme_drop_adapter=Exception in readme drop adapter: 
-Editor_Action1=Editor Action &1
-Editor_Action2=Editor Action &2
-Editor_Action3=Editor Action &3
-Editor_Action4=Editor Action &4
-Editor_Action5=Editor Action &5
-Outline_Action2=Outline Action &2
-Outline_Action3=Outline Action &3
-Outline_Action4=Outline Action &4
-Outline_Action5=Outline Action &5
-Editor_is_active=Editor is active
-Empty_Editor_Name=Empty
-Readme_Editor_Action1=Readme Editor Action 1
-Readme_Editor_Action2=Readme Retarget Editor Action 2
-Readme_Editor_Action3=Readme Label Retarget Editor Action 3
-Readme_Editor_Action5=Readme Label Retarget Editor Action 5
-Readme_Outline_Action3=Readme Label Retarget Outline Action 3
-Readme_Outline_Action5=Readme Label Retarget Outline Action 5
-Readme_Menu=&Readme
-ReadmeEditorActionExecuted=Readme Editor Action executed: {0} for: {1}
-ReadmeOutlineActionExecuted=Readme Outline Action executed
-<Unknown>=<Unknown>
-<file_contents_not_local>=<file contents not local>
-Additional_information=Additional information about the Readme file can go here.
-File_name=File name:
-Number_of_sections=Number of sections:
-Path=Path: 
-Size=Size: 
-Additional_Readme_properties_not_available.=Additional Readme properties not available.
-Had_it_been_less_than_256_bytes_this_page_would_be_a_placeholder_page.=Had it been less than 256 bytes, this page would be a placeholder page.
-The_size_of_the_Readme_file_is_at_least_256_bytes.=The size of the Readme file is at least 256 bytes.
-This_illustrates_a_property_page_that_is_dynamically_determined=This illustrates a property page that is dynamically determined
-not_to_be_available_based_on_the_state_of_the_object.=not to be available based on the state of the object.
-to_be_available_based_on_the_state_of_the_object.=to be available based on the state of the object.
-Unable_to_create_file_parser=Unable to create file parser.
-Default_text=Default text
-Change=Chan&ge
-Check_Box_Options=Check Box Options
-Check_box_1=&Check box 1
-Check_box_2=C&heck box 2
-Check_box_3=Check bo&x 3
-Radio_Button_Options=Radio Button Options
-Radio_button_1=&Radio button 1
-Radio_button_2=Rad&io button 2
-Radio_button_3=Radio b&utton 3
-Text_Field=&Text Field
-Readme_Sections=Readme Sections
-View_Action_executed=View Action executed
-Add_Sentence=Add Sentence
-Resolution_Error=Resolution Error
-Unable_to_open_file_editor=Unable to open file editor
-Simple_sentence=This is a simple sentence.\n
-Readme_marker_message_example=Readme marker example 
-Add_readme_marker_action_label=Readme Marker Example &
-View_Command_executed=View Command executed
diff --git a/examples/org.eclipse.ui.examples.readmetool/HelpContexts.xml b/examples/org.eclipse.ui.examples.readmetool/HelpContexts.xml
deleted file mode 100644
index bf2b580..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/HelpContexts.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<contexts>
-
-   <context  id="open_browser_action_context" >
-      <description>Opens the readme browser </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="view_action_context" >
-      <description>Runs a readme view action <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="editor_action_context" >
-      <description>Runs a readme editor action <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="editor_action1_context" >
-      <description>Runs readme editor action 1 <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="editor_action2_context" >
-      <description>Runs readme editor action 2 <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="editor_action3_context" >
-      <description>Runs readme editor action 3 <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="sections_view_context" >
-      <description>Readme sections view <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="sections_dialog_context" >
-      <description>Readme sections dialog <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="preference_page_context" >
-      <description>Readme preference page <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="property_page_context" >
-      <description>Readme property page <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="property_page2_context" >
-      <description>Readme property page2 <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="editor_context" >
-      <description>Readme editor <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="content_outline_page_context" >
-      <description>Readme editor content outline <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="creation_wizard_page_context" >
-      <description>Readme file creation wizard <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="marker_example1_context" >
-      <description>Readme marker example 1 <b>Help</b> id = 1234 </description>
-   </context>
-   <context  id="marker_example2_context" >
-      <description>Readme marker example 2 <b>Help</b> level = 7 </description>
-   </context>
-   <context  id="marker_example3_context" >
-      <description>Readme marker example 3 <b>Help</b> level = 7, department = infra </description>
-   </context>
-   <context  id="marker_example4_context" >
-      <description>Readme marker example 4 <b>Help</b> code = red </description>
-   </context>
-   <context  id="marker_example5_context" >
-      <description>Readme marker example 5 <b>Help</b> language = english </description>
-   </context>
-   <context  id="marker_example6_context" >
-      <description>Readme marker example 6 <b>Help</b> id = 1234, level = 7, department = infra, code = red, language = english </description>
-   </context>
-   <context  id="marker_example7_context" >
-      <description>Readme marker example 7 <b>Help</b> No attributes specified </description>
-   </context>
-</contexts>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF
deleted file mode 100644
index 90fbb5f..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.readmetool; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-ClassPath: readmetool.jar
-Bundle-Activator: org.eclipse.ui.examples.readmetool.ReadmePlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.views,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.text,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.ui.examples.readmetool
diff --git a/examples/org.eclipse.ui.examples.readmetool/about.html b/examples/org.eclipse.ui.examples.readmetool/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.readmetool/build.properties b/examples/org.eclipse.ui.examples.readmetool/build.properties
deleted file mode 100644
index e23fed7..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.readmetool.jar = Eclipse UI Examples Readme Tool/
-
-bin.includes = doc/,\
-               doc-html/,\
-               icons/,\
-               about.html,\
-               doc.zip,\
-               HelpContexts.xml,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               META-INF/
-
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc-html/hglegal.htm b/examples/org.eclipse.ui.examples.readmetool/doc-html/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc-html/hglegal.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html b/examples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html
deleted file mode 100644
index e624f8b..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html
+++ /dev/null
@@ -1,166 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Workbench - Readme Tool Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Readme Tool</b></h2>
-
-<h3>
-Introduction</h3>
-The Readme editor shows how to define your own extension points for use
-by other plugins. It also shows how to create extensions for resource popup
-menu entries, new resource wizards, file editors on an extension (.readme),
-a custom view and property pages.
-<h3>
-Running the example</h3>
-To start using this example create a file with the .readme extension using
-the file creation wizard or create one using the example creation wizard.
-The additional&nbsp; view provided by this example can be seen by selecting
-Window > Show View > Other and expanding the Readme section. The
-view action can be seen by clicking on the readme icon on the Navigator
-View.
-<h4>
-Creating a new readme file</h4>
-Create a new file with file extension .readme.&nbsp; From the File menu,
-select New and then select Other... from the sub menu.&nbsp; Click on Simple
-in the wizard, then select File in the list on the left.&nbsp; Click on
-Next to supply the file name (make sure the extension is .readme) and the
-folder in which the file should be contained.
-<h4>
-Example creation wizards</h4>
-From the File menu, select New and from the sub menu select Example...&nbsp;
-Now select Example Creation Wizards. Select Readme File. Click Next. Select
-the folder in which you want the file to be created. Type the name of the
-file with a .readme extension. Click Finish.
-<h4>
-Readme view extension action</h4>
-In the Navigator View, select a file with extension .readme. If there isn't
-one create a file with that extension. On the local toolbar of the Navigator
-View, you will see a button whose hover help says Run Readme View Extension.&nbsp;
-Click on this button.&nbsp; A dialog will popup saying View Action executed.
-<h4>
-Popup menus</h4>
-In the Navigator View, select a file with extension .readme.&nbsp; If there
-isn't one create a file with that extension.&nbsp; Select the file to bring
-up the popup menu.&nbsp; Notice there is a menu item that says Show Readme
-Action in the popup menu.&nbsp; Choose this menu item to open a dialog
-that says Popup Menu Action Executed.
-<h4>
-Preference page</h4>
-From the Window menu, select Preferences.&nbsp; Click on the page called
-Readme Example.&nbsp; This shows an example of a preference page.
-<h4>
-Property page</h4>
-In the Navigator View, select a file with extension .readme.&nbsp; If there
-isn't one create a file with that extension.&nbsp; Select the file to bring
-up the popup menu, then select the Properties menu item.&nbsp; Click on
-the page called Readme Tool to see an example of a property page.
-<h4>
-Readme file editor</h4>
-The Readme File Editor is the default editor for files of type *.readme.&nbsp;
-Create a file with extension .readme and open the file by double clicking
-on it, or by bringing up the popup menu,&nbsp; selecting Open With, then
-selecting Readme File Editor from the sub menu.&nbsp; Notice the editor
-has an icon with a pencil.&nbsp; This is the editor that the readme tool
-uses by default for files of type *.readme.
-<h4>
-Readme Editor Actions</h4>
-This demonstrates an example of actions that are applicable only to a particular
-editor.&nbsp; When a readme file editor has focus, notice 4 additional
-tool bar buttons - Run Readme Editor Extension, Readme Editor Action 1,
-Readme Editor Action 2, Readme Editor Action 3.
-<p>A pull down menu named Readme appears when a readme file editor has
-focus.&nbsp; It contains the actions previously described: Readme Editor
-Action 1, Readme Editor Action 2, Readme Editor Action 3.
-<h4>
-Readme sections view</h4>
-To see this Readme Sections view, from the Window menu select Show
-View, then select Other... from the sub menu.&nbsp; Expand the Readme item
-and then select Readme Sections.&nbsp; This will show a list of the sections
-in the current *.readme file when a .readme file is selected in the Navigator
-View.&nbsp; You can also see the structure of a *.readme file in the Outline
-view.
-<p>A file with extension .readme can be broken down into sections when
-each section begins with a number.&nbsp; For example, if the following
-text were entered into the readme file editor, the readme tool would detect
-2 sections.&nbsp; To see how sections are detected in the readme tool,
-type some text in the readme file editor, save the file by either typing
-CTRL-S or selecting&nbsp; File->Save. Open the Readme Sections view and
-select the .readme file in the Navigator View.
-<p>Example text:
-<p>99.1 This is my first section
-<br>This is some text in my first section.
-<p>99.1.1 This is a sub section
-<br>This is some text in my sub-section.
-<h4>Drag and Drop</h4>
-<p>The Drag and Drop functionality can be seen by selecting a section in the
-Outline View and dragging the selection over top of a text file. The contents of
-the selection will be appended to the file.
-<h4>
-Help contribution</h4>
-The readme tool example also demonstrates how to use and implement context
-help on all of the extensions it supplies - a view, various actions and
-a wizard page.&nbsp; To get context help on an action, hover over the menu
-item, but do no select it, then hit the F1 key.&nbsp; You can also get
-context sensitive (F1) help on the Readme Sections view and the Example
-Creation Wizards page (in the New wizard).
-<br>&nbsp;
-<h3>
-Details</h3>
-The Readme Tool example declares one extension point and supplies a number
-of extensions.&nbsp; The extensions supplied are quite comprehensive in
-understanding how the Workbench functions, as it utilizes a number of the
-more interesting extension points declared by the workbench.&nbsp; Supplied
-extensions included in this example are views and view actions, preference
-pages, property pages, wizards, editors and editor actions, popup menus,
-action sets, help contributions, help contexts, and drop actions.
-<p>This example also supplies an extension point declared in the plug-in..
-The class IReadmeFileParser is required for any plug-in that uses the org.eclipse.ui.examples.readmetool.sectionParser
-extension that this example defines. The class DefaultSectionParser is
-an example implementation of IReadmeFileParser.
-<p>The class ReadmeEditor implements IEditorPart and is defined as an editor
-on files with the extension .readme in the plugin.xml using the org.eclipse.ui.editors
-extension point. The class ReadmeSectionsView implements IViewPart and
-is defined as a view using the org.eclipse.ui.views extension point. This
-extension point also defines a category for the view for use in view selection.
-<p>Two types of preference settings are defined in this example, workbench
-preferences and resource properties. The workbench preference is defined
-in class ReadmePreferencePage which implements IWorkbenchPreferencePage
-so that it will be added to the Window-&gt;Preferences dialog. The class
-is defined in the extension point org.eclipse.ui.preferencePages in the
-plugin.xml. The two resource properties pages are ReadmeFilePropertyPage
-and ReadmeFilePropertyPage2 both of which implement IWorkbenchPropertyPage.
-They are both defined to be invoked on the IFile type by the objectClass
-tag in the plugin.xml in the org.eclipse.ui.propertyPages extension point.
-<p>The class ReadmeCreationWizard implements INewWizard and is defined
-in the org.eclipse.ui.newWizards extension point in the plugin.xml. This
-extension point also defines the category that the wizard that is shown
-when the user selects File-&gt;New-&gt;Example....
-<p>Several action stubs are added to this example. The action set declares
-a menu labeled Readme File Editor<b> </b>to be included in the workbench
-window menu bar using the extension point org.eclipse.ui.actionSets. It
-also defines an action for the workbench toolbar and menu bar using the
-tags toolbarPath and menubarPath. It uses the class WindowActionDelegate
-which implements IWorkbenchWindowActionDelegate to implement the action.
-The action for the popup menu is defined as an objectContribution by the
-class PopupMenuActionDelegate in&nbsp; the extension point org.eclipse.ui.popupMenus.
-PopupMenuActionDelegate implements IObjectActionDelegate and uses the IWorkbenchPart
-provided to open a message dialog. The view action ViewActionDelegate is
-defined in the extension point org.eclipse.ui.viewActions and implements
-IViewActionDelegate. The View it appears in is defined by the tag targetID
-which in this example is org.eclipse.ui.views.ResourceNavigator. The editor
-action is defined by the class EditorActionDelegate which implements IEditorActionDelegate
-and is added using the org.eclipse.ui.editorActions extension point. The
-editor that it is applied to is defined by the tag targetID which in this
-example is defined on org.eclipse.ui.examples.readmetool.ReadmeEditor.<p>The
-class ReadmeDropActionDelegate implements IDropDelegate. IDropDelegates are
-informed every time there is a drop action performed in the workbench . The
-extension point for this action is org.eclipse.ui.dropActions.
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc.zip b/examples/org.eclipse.ui.examples.readmetool/doc.zip
deleted file mode 100644
index 41e8aa9..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc.zip
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc/hglegal.htm b/examples/org.eclipse.ui.examples.readmetool/doc/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc/hglegal.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool.html b/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool.html
deleted file mode 100644
index 986462a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Readme Tool Extension Points</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<center>
-<h1>
-Readme Tool</h1></center>
-The Readme Tool is provided as an example for tool developers. It demonstrates
-the extension of various aspects of the workbench, both visually and functionally.
-As well, the Readme Tool provides extension points of its own.
-<p>
-<hr WIDTH="100%">
-<h1>
-Extension Points</h1>
-The following extension points can be used to extend the Readme Tool:
-<ul>
-<li>
-<a href="org_eclipse_ui_examples_readmetool_sectionParser.html">org.eclipse.ui.readmetool.sectionParser</a></li>
-</ul>
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool_sectionParser.html b/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool_sectionParser.html
deleted file mode 100644
index b197e80..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool_sectionParser.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>README Tool Extension Points</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<center>
-<h1>
-Section Parser</h1></center>
-<b><i>Identifier: </i></b>org.eclipse.ui.examples.readmetool.sectionParser
-<p><b><i>Description: </i></b>This extension point allows tools to provide
-a parser for Readme files which identifies the sections of the file.
-The sections determined by this parser will show up in the outliner when a
-Readme file is open in the editor. The sections will also appear in the 
-"Readme sections" view.
-<p>The default section parser provided with the Readme Tool is a simple parser
-which considers sections to be numbered at the beginning of a line. Top-level
-sections are signified by a number followed by a period, such as in the following
-regular expression: "[0-9]+\.". Examples are "1.", "0.", and "12345.".
-Subsections are signified by the regular expression: "([0-9]+\.)+[0-9]+". Examples
-of subsections are "1.1", "1.1.1.1", and "123.456.7890". Any level of subsection
-nesting may occur. Section and subsection markers must occur before any other
-non-whitespace characters on a line.
-<p><b><i>Configuration Markup:</i></b>
-<p><tt>&nbsp;&nbsp; &lt;!ATTLIST sectionParser</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name &nbsp;CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id &nbsp;&nbsp; CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp; ></tt>
-<ul>
-<li>
-<b>name</b> - a string describing this contribution.</li>
-
-<li>
-<b>id</b> - a unique identifier that can be used to reference this extension.</li>
-
-<li>
-<b>class</b> - a fully qualified name of the class which provides this extension.</li>
-</ul>
-
-<b><i>Examples:</i></b>
-<p>The following is an example of a sectionParser extension point:
-<p><tt>&nbsp;&nbsp;&lt;extension point="org.eclipse.ui.examples.readmetool.sectionParser"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;parser</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="Custom README Section Parser"</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="com.xyz.CustomSectionParser"</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.xyz.CustomSectionParser"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parser></tt>
-<br><tt>&nbsp;&nbsp;&lt;/extension></tt>
-<p>In the example above, the class com.xyz.CustomSectionParser will be used as
-the section parser for Readme files.
-<p><b><i>API Information: </i></b>Value of the action attribute <b>class</b>
-must be a fully qualified class name of a Java class that implements the interface
-org.eclipse.ui.examples.readmetool.IReadmeFileParser. This interface is loaded as 
-late as possible to avoid loading the entire tool before it is really needed.
-<p><b><i>Supplied Implementation: </i></b>As described above, the default section
-parser uses a simple grammar of sections identified by numbers followed by periods,
-and subsections identified by the pattern of a number followed by a period, repeated
-an arbitrary number of times, and ending with a number.
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action1.gif b/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action1.gif
deleted file mode 100644
index 91077ef..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action1.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action2.gif b/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action2.gif
deleted file mode 100644
index c2a3e17..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action3.gif b/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action3.gif
deleted file mode 100644
index 9c14f74..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/openbrwsr.gif b/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/openbrwsr.gif
deleted file mode 100644
index 6d40439..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/openbrwsr.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action1.gif b/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action1.gif
deleted file mode 100644
index 0c50830..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action1.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action2.gif b/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action2.gif
deleted file mode 100644
index 3f978df..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action3.gif b/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action3.gif
deleted file mode 100644
index f9f1e95..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/openbrwsr.gif b/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/openbrwsr.gif
deleted file mode 100644
index 02a2df8..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/openbrwsr.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action1.gif b/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action1.gif
deleted file mode 100644
index 55fb1a6..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action1.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action2.gif b/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action2.gif
deleted file mode 100644
index f801d2e..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action3.gif b/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action3.gif
deleted file mode 100644
index 5e199b1..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/openbrwsr.gif b/examples/org.eclipse.ui.examples.readmetool/icons/etool16/openbrwsr.gif
deleted file mode 100644
index bdbe8ca..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/openbrwsr.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/editor.gif b/examples/org.eclipse.ui.examples.readmetool/icons/obj16/editor.gif
deleted file mode 100644
index c48d9a9..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/editor.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/newreadme_wiz.gif b/examples/org.eclipse.ui.examples.readmetool/icons/obj16/newreadme_wiz.gif
deleted file mode 100644
index 293826d..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/newreadme_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/usereditor.gif b/examples/org.eclipse.ui.examples.readmetool/icons/obj16/usereditor.gif
deleted file mode 100644
index 64d7907..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/usereditor.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/view16/sections.gif b/examples/org.eclipse.ui.examples.readmetool/icons/view16/sections.gif
deleted file mode 100644
index 008fd7a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/view16/sections.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/wizban/newreadme_wiz.gif b/examples/org.eclipse.ui.examples.readmetool/icons/wizban/newreadme_wiz.gif
deleted file mode 100644
index 3265aaf..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/wizban/newreadme_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/plugin.properties b/examples/org.eclipse.ui.examples.readmetool/plugin.properties
deleted file mode 100644
index 3d02a7c..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/plugin.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Readme File Editing Tool
-Plugin.providerName = Eclipse.org
-ExtPoint.sectionParser = Section parser for Readme file editor
-SectionParser.name = Default section parser for Readme tool
-ActionSet.name = ReadMe Actions
-ActionSet.menu = Readme &File Editor
-ReadmeAction.label = &Open Readme Browser
-ReadmeAction.tooltip = Open Readme Browser
-ReadmeRetargetAction.label = &Open Readme Browser (Retarget)
-ReadmeRetargetAction.tooltip = Open Readme Browser (Retarget)
-ReadmeRelabelRetargetAction.label = &Open Readme Browser (Retarget - Label Update)
-ReadmeRelabelRetargetAction.tooltip = Open Readme Browser (Retarget - Label Update)
-NewWizard.category = Example Creation Wizards
-NewWizard.name = Readme File
-NewWizard.desc = An example of a wizard that creates sample Readme file
-Editors.ReadmeEditor = Readme File Editor
-Views.category = &Readme
-Views.ReadmeSections = Readme Sections
-PreferencePage.name = Readme Example
-PropertiesPage.filePage = Readme Tool
-PropertiesPage.filePage2 = More Readme Info
-PopupMenus.action = &Show Readme Action
-PopupMenu.ResourceNav.label = &Readme View Extension
-PopupMenu.ResourceNav.tooltip = Run Readme View Extension
-Editors.Action.label = &Readme Editor Extension
-Editors.Action.tooltip = Run Readme Editor Extension
-ReadmeMarker.name = Readme Marker
-CmdLabel=Test Trim Cmd
-Trim.item=Trim Item
-TrimItem.toolTip=TrimItem ToolTip
-Trim2.item=Trim Item 2
-TrimItem2.toolTip=TrimItem 2 ToolTip
-
-Readme.commands.category=Readme Commands
-Readme.viewCmd.name=View Message
-Readme.viewCmd.mnemonic=M
-Readme.viewCmd.tooltip = Run Readme View Command
-
diff --git a/examples/org.eclipse.ui.examples.readmetool/plugin.xml b/examples/org.eclipse.ui.examples.readmetool/plugin.xml
deleted file mode 100644
index 21c94a8..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/plugin.xml
+++ /dev/null
@@ -1,385 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- ================================================================== -->
-<!--         org.eclipse.ui.examples.readmetool.IReadmeFileParser       -->
-<!-- Extension Implementation: must implement                           -->
-<!--          the file's section and subsection structure               -->
-<!-- Purpose: Provide a custom parser for Readme files which determines -->
-<!-- Extension point: org.eclipse.ui.examples.readmetool.sectionParser  -->
-<!-- ================================================================== -->
-   <extension-point id="sectionParser" name="%ExtPoint.sectionParser"/>
-
-   <extension
-         point="org.eclipse.ui.examples.readmetool.sectionParser">
-      <parser
-            name="%SectionParser.name"
-            class="org.eclipse.ui.examples.readmetool.DefaultSectionsParser"
-            id="org.eclipse.ui.examples.readmetool.DefaultSectionsParser">
-      </parser>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="%ActionSet.name"
-            visible="false"
-            id="org_eclipse_ui_examples_readmetool_actionSet">
-         <menu
-               label="%ActionSet.menu"
-               path="window/additions"
-               id="org_eclipse_ui_examples_readmetool">
-            <separator
-                  name="slot1">
-            </separator>
-            <separator
-                  name="slot2">
-            </separator>
-            <separator
-                  name="slot3">
-            </separator>
-         </menu>
-         <action
-               id="org_eclipse_ui_examples_readmetool_readmeAction"
-               toolbarPath="readme"
-               class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
-               enablesFor="1"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               label="%ReadmeAction.label"
-               menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
-               tooltip="%ReadmeAction.tooltip">
-            <selection
-                  name="*.readme"
-                  class="org.eclipse.core.resources.IFile">
-            </selection>
-         </action>
-         <action
-               label="%ReadmeRetargetAction.label"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               tooltip="%ReadmeRetargetAction.tooltip"
-               retarget="true"
-               menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
-               toolbarPath="readme"
-               id="org_eclipse_ui_examples_readmetool_readmeRetargetAction">
-         </action>
-         <action
-               allowLabelUpdate="true"
-               id="org_eclipse_ui_examples_readmetool_readmeRelabelRetargetAction"
-               toolbarPath="readme"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               label="%ReadmeRelabelRetargetAction.label"
-               menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
-               retarget="true"
-               tooltip="%ReadmeRelabelRetargetAction.tooltip">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            name="%NewWizard.category"
-            parentCategory="org.eclipse.ui.Examples"
-            id="org.eclipse.ui.examples.readmetool.new">
-      </category>
-      <wizard
-            name="%NewWizard.name"
-            icon="$nl$/icons/obj16/newreadme_wiz.gif"
-            category="org.eclipse.ui.Examples/org.eclipse.ui.examples.readmetool.new"
-            class="org.eclipse.ui.examples.readmetool.ReadmeCreationWizard"
-            id="org.eclipse.ui.examples.readmetool.wizards.new.file">
-         <description>
-            %NewWizard.desc
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%Editors.ReadmeEditor"
-            icon="$nl$/icons/obj16/editor.gif"
-            extensions="readme"
-            contributorClass="org.eclipse.ui.examples.readmetool.ReadmeEditorActionBarContributor"
-            class="org.eclipse.ui.examples.readmetool.ReadmeEditor"
-            id="org.eclipse.ui.examples.readmetool.ReadmeEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.category"
-            id="org.eclipse.ui.examples.readmetool">
-      </category>
-      <view
-            name="%Views.ReadmeSections"
-            icon="$nl$/icons/view16/sections.gif"
-            category="org.eclipse.ui.examples.readmetool"
-            class="org.eclipse.ui.examples.readmetool.ReadmeSectionsView"
-            id="org.eclipse.ui.examples.readmetool.views.SectionsView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%PreferencePage.name"
-            class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage"
-            id="org.eclipse.ui.examples.readmetool.Page1">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            name="%PropertiesPage.filePage"
-            nameFilter="*.readme"
-            class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage"
-            id="org.eclipse.ui.examples.readmetool.FilePage">
-         <enabledWhen>
-            <instanceof
-                  value="org.eclipse.core.resources.IFile">
-            </instanceof>
-         </enabledWhen>
-      </page>
-      <page
-            name="%PropertiesPage.filePage2"
-            nameFilter="*.readme"
-            class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage2"
-            id="org.eclipse.ui.examples.readmetool.FilePage2">
-         <enabledWhen>
-            <instanceof
-                  value="org.eclipse.core.resources.IFile">
-            </instanceof>
-         </enabledWhen>
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IFile"
-            nameFilter="*.readme"
-            id="org.eclipse.ui.examples.readmetool">
-         <action
-               label="%PopupMenus.action"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               class="org.eclipse.ui.examples.readmetool.PopupMenuActionDelegate"
-               menubarPath="additions"
-               enablesFor="1"
-               id="org.eclipse.ui.examples.readmetool.action1">
-         </action>
-      </objectContribution>
-      <viewerContribution
-            targetID="org.eclipse.ui.examples.readmetool.outline"
-            id="org.eclipse.ui.examples.readmetool2">
-         <action
-               label="%PopupMenus.action"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
-               menubarPath="additions"
-               id="org.eclipse.ui.examples.readmetool.action1">
-         </action>
-      </viewerContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.viewActions">
-      <viewContribution
-            targetID="org.eclipse.ui.navigator.ProjectExplorer"
-            id="org.eclipse.ui.examples.readmetool.vc1">
-         <action
-               id="org.eclipse.ui.examples.readmetool.va1"
-               toolbarPath="additions"
-               class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
-               enablesFor="1"
-               icon="$nl$/icons/obj16/editor.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
-               label="%PopupMenu.ResourceNav.label"
-               menubarPath="additions"
-               tooltip="%PopupMenu.ResourceNav.tooltip">
-            <selection
-                  name="*.readme"
-                  class="org.eclipse.core.resources.IFile">
-            </selection>
-         </action>
-      </viewContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editorActions">
-      <editorContribution
-            targetID="org.eclipse.ui.examples.readmetool.ReadmeEditor"
-            id="org.eclipse.ui.examples.readmetool.ec1">
-         <action
-               label="%Editors.Action.label"
-               icon="$nl$/icons/obj16/editor.gif"
-               tooltip="%Editors.Action.tooltip"
-               class="org.eclipse.ui.examples.readmetool.EditorActionDelegate"
-               toolbarPath="ReadmeEditor"
-               id="org.eclipse.ui.examples.readmetool.ea1">
-         </action>
-      </editorContribution>
-   </extension>
-   <extension
-         point="org.eclipse.help.contexts">
-      <contexts
-            file="HelpContexts.xml">
-      </contexts>
-   </extension>
-   <extension
-         point="org.eclipse.ui.dropActions">
-      <action
-            class="org.eclipse.ui.examples.readmetool.ReadmeDropActionDelegate"
-            id="org_eclipse_ui_examples_readmetool_drop_actions">
-      </action>
-   </extension>
-   <extension
-         id="readmemarker"
-         name="%ReadmeMarker.name"
-         point="org.eclipse.core.resources.markers">
-      <super
-            type="org.eclipse.core.resources.taskmarker">
-      </super>
-      <super
-            type="org.eclipse.core.resources.textmarker">
-      </super>
-      <persistent
-            value="true">
-      </persistent>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.id">
-      </attribute>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.level">
-      </attribute>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.department">
-      </attribute>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.code">
-      </attribute>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.language">
-      </attribute>
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.markerHelp">
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example1_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.id"
-               value="1234">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example2_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.level"
-               value="7">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example3_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.level"
-               value="7">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.department"
-               value="infra">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example4_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.code"
-               value="red">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example5_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.language"
-               value="english">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example6_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.id"
-               value="1234">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.level"
-               value="7">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.department"
-               value="infra">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.code"
-               value="red">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.language"
-               value="english">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example7_context">
-      </markerHelp>
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.markerResolution">
-      <markerResolutionGenerator
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.id"
-               value="1234">
-         </attribute>
-      </markerResolutionGenerator>
-      <markerResolutionGenerator
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.level"
-               value="7">
-         </attribute>
-      </markerResolutionGenerator>
-      <markerResolutionGenerator
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.code"
-               value="red">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.language"
-               value="english">
-         </attribute>
-      </markerResolutionGenerator>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer class="org.eclipse.ui.examples.readmetool.ReadmePreferenceInitializer"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSetPartAssociations">
-      <actionSetPartAssociation targetID="org_eclipse_ui_examples_readmetool_actionSet">
-         <part id="org.eclipse.ui.examples.readmetool.ReadmeEditor"/>
-      </actionSetPartAssociation>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.undo/.classpath b/examples/org.eclipse.ui.examples.undo/.classpath
deleted file mode 100644
index a3734f5..0000000
--- a/examples/org.eclipse.ui.examples.undo/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples Undo"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.undo/.cvsignore b/examples/org.eclipse.ui.examples.undo/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.undo/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.undo/.project b/examples/org.eclipse.ui.examples.undo/.project
deleted file mode 100644
index bfd3d88..0000000
--- a/examples/org.eclipse.ui.examples.undo/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.undo</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b325f3b..0000000
--- a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Jan 15 21:20:44 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.4
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0cb7d76..0000000
--- a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Tue Oct 18 15:15:38 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index a26a239..0000000
--- a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Oct 18 16:45:19 EDT 2005
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/AddBoxOperation.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/AddBoxOperation.java
deleted file mode 100644
index 549f659..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/AddBoxOperation.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.widgets.Canvas;
-
-/**
- * An operation that adds a box.
- */
-public class AddBoxOperation extends BoxOperation {
-
-	/**
-	 * Create a box
-	 * @param label
-	 * @param context
-	 * @param boxes
-	 * @param box
-	 * @param canvas
-	 */
-	public AddBoxOperation(String label, IUndoContext context, Boxes boxes, Box box, Canvas canvas) {
-		super(label, context, boxes, box, canvas);
-	}
-
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info) {
-		boxes.add(box);
-		canvas.redraw(box.x1, box.y1, box.x2, box.y2, false);
-		return Status.OK_STATUS;
-	}
-	
-	public boolean canUndo() {
-		return boxes.contains(box);
-	}
-	
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info) {
-		boxes.remove(box);
-		canvas.redraw(box.x1, box.y1, box.x2, box.y2, false);
-		return Status.OK_STATUS;
-	}
-	
-	public boolean canRedo() {
-		return !boxes.contains(box);
-	}
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info) {
-		return execute(monitor, info);
-	}
-
-
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Box.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Box.java
deleted file mode 100644
index cff1a4d..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Box.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo;
-
-
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * 2D Box that can move itself, hit-test, and draw.
- */
-public class Box  {
-	
-	/*
-	 * The location of the box.
-	 */
-	public int x1, y1, x2, y2;
-	
-	/*
-	 * Constructs a box, defined by any two diametrically 
-	 * opposing corners.
-	 */
-	public Box(int x1, int y1, int x2, int y2) {
-		super();
-		set(x1, y1, x2, y2);
-	}
-	
-	/*
-	 * Move the box to a new origin.
-	 */
-	public void move(Point origin) {
-		set(origin.x, origin.y, origin.x + getWidth(), origin.y + getHeight());
-	}
-	
-	/*
-	 * Draw the box with the specified gc.
-	 */
-	public void draw(GC gc) {
-		gc.drawRectangle(x1, y1, x2-x1, y2-y1);
-	}
-	
-	/*
-	 * Set the position of the box
-	 */
-	private void set(int x1, int y1, int x2, int y2) {
-		this.x1 = Math.min(x1, x2);
-		this.y1 = Math.min(y1, y2);
-		this.x2 = Math.max(x1, x2);
-		this.y2 = Math.max(y1, y2);
-	}
-	
-	/*
-	 * Return true if this box contains the point specified by
-	 * the x and y.
-	 */
-	public boolean contains(int x, int y) {
-		return x >= x1 && 
-			x <= x2 && 
-			y >= y1 && 
-			y <= y2;
-	}
-	
-	/*
-	 * Answer the width of the box
-	 */
-	public int getWidth() {
-		return x2 - x1;
-	}
-	
-	/*
-	 * Answer the height of the box
-	 */
-	public int getHeight() {
-		return y2 - y1;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/BoxOperation.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/BoxOperation.java
deleted file mode 100644
index a0524eb..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/BoxOperation.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Canvas;
-
-/**
- * An undoable operation that represents a change to a box.
- */
-public abstract class BoxOperation extends AbstractOperation {
-	
-	/*
-	 * The box involved in the operation
-	 */
-	Box box;
-	
-	/*
-	 * The group of boxes involved in the operation
-	 */
-	Boxes boxes;
-	
-	/*
-	 * The canvas to update or draw on during an operation
-	 */
-	Canvas canvas;
-
-	public BoxOperation(String label, IUndoContext undoContext, Boxes boxes, Box box, Canvas canvas) {
-		super (label);
-		addContext(undoContext);
-		this.boxes = boxes;
-		this.box = box;
-		this.canvas = canvas;
-	}
-	
-	/*
-	 * Show the specified prompt in an info dialog.
-	 */
-	void showMessage(String message) {
-		MessageDialog.openInformation(canvas.getShell(),
-				UndoExampleMessages.BoxView_Title, message);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Boxes.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Boxes.java
deleted file mode 100644
index f299237..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Boxes.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.graphics.GC;
-
-/**
- * A collection of boxes
- */
-public class Boxes  {
-	
-	/*
-	 * The "model," a list of boxes
-	 */
-	private List boxes = new ArrayList();
-	
-	/*
-	 * Constructs a box collection
-	 */
-	public Boxes() {
-		super();
-	}
-	
-	/*
-	 * Add the specified box to the group of boxes.
-	 */
-	public void add(Box box) {
-		boxes.add(box);
-	}
-	
-	/*
-	 * Remove the specified box from the group of boxes.
-	 */
-	public void remove(Box box) {
-		boxes.remove(box);
-	}
-	
-	/*
-	 * Clear all the boxes from the list of boxes.
-	 */
-	public void clear() {
-		boxes = new ArrayList();
-	}
-	
-	/*
-	 * Return true if the group of boxes contains the specified box.
-	 */
-	public boolean contains(Box box) {
-		return boxes.contains(box);
-	}
-	
-	/*
-	 * Draw the boxes with the specified gc.
-	 */
-	public void draw(GC gc) {
-		for (int i = 0; i < boxes.size(); i++) {
-			((Box) boxes.get(i)).draw(gc);
-		}
-	}
-		
-	/*
-	 * Return the box containing the specified x and y, or null
-	 * if no box contains the point.
-	 */
-	public Box getBox(int x, int y) {
-		for (int i=0; i< boxes.size(); i++) {
-			Box box = (Box)boxes.get(i);
-			if (box.contains(x, y)) {
-				return box;
-			}
-		}
-		return null;
-	}
-	
-	/*
-	 * Return the list of boxes known by this group of boxes.
-	 */
-	public List getBoxes() {
-		return boxes;
-	}
-	
-	/*
-	 * Set the list of boxes known by this group of boxes.
-	 */
-	public void setBoxes(List boxes) {
-		this.boxes = boxes;
-	}
-	
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/ClearBoxesOperation.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/ClearBoxesOperation.java
deleted file mode 100644
index bd4d84e..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/ClearBoxesOperation.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.widgets.Canvas;
-
-/**
- * An operation that adds a box.
- */
-public class ClearBoxesOperation extends BoxOperation {
-
-	/*
-	 * The boxes that are saved after clearing
-	 */
-	private List savedBoxes = new ArrayList();
-	
-	public ClearBoxesOperation(String label, IUndoContext context, Boxes boxes, Canvas canvas) {
-		super(label, context, boxes, null, canvas);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info){
-		savedBoxes = boxes.getBoxes();
-		boxes.clear();
-		canvas.redraw();
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info) {
-		return execute(monitor, info);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info) {
-		boxes.setBoxes(savedBoxes);
-		canvas.redraw();
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java
deleted file mode 100644
index 714d380..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-
-/**
- * An operation that adds a box.
- */
-public class MoveBoxOperation extends BoxOperation {
-
-	/*
-	 * The point the box should move to/from.
-	 */
-	private Point origin;
-	private Point target;
-	
-	public MoveBoxOperation(String label, IUndoContext context, Box box, Canvas canvas, Point newOrigin) {
-		super(label, context, null, box, canvas);
-		origin = new Point(box.x1, box.y1);
-		target = new Point(newOrigin.x, newOrigin.y);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (box==null) {
-			throw new ExecutionException("box ix null");
-		}
-		box.move(target);
-		canvas.redraw();
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		return execute(monitor, info);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (box==null) {
-			throw new ExecutionException("box ix null");
-		}
-		box.move(origin);
-		canvas.redraw();
-		return Status.OK_STATUS;
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#getLabel()
-	 */
-	public String getLabel() {
-		final StringBuffer stringBuffer = new StringBuffer();
-		stringBuffer.append(super.getLabel());
-		stringBuffer.append("["); //$NON-NLS-1$
-		stringBuffer.append("("); //$NON-NLS-1$
-		stringBuffer.append(new Integer(origin.x).toString());
-		stringBuffer.append(", "); //$NON-NLS-1$
-		stringBuffer.append(new Integer(origin.y).toString());
-		stringBuffer.append(')');
-		stringBuffer.append(", "); //$NON-NLS-1$
-		stringBuffer.append("("); //$NON-NLS-1$
-		stringBuffer.append(new Integer(target.x).toString());
-		stringBuffer.append(", "); //$NON-NLS-1$
-		stringBuffer.append(new Integer(target.y).toString());
-		stringBuffer.append(')');
-		stringBuffer.append(']');
-		return stringBuffer.toString();
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/PromptingUserApprover.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/PromptingUserApprover.java
deleted file mode 100644
index 4cd9023..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/PromptingUserApprover.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo;
-
-import org.eclipse.core.commands.operations.IOperationApprover;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.examples.undo.preferences.PreferenceConstants;
-
-/**
- * An operation approver that prompts the user to see whether an undo or redo
- * should continue. An example preference is checked to determine if prompting
- * should occur.
- */
-public final class PromptingUserApprover implements IOperationApprover {
-
-	private IUndoContext context;
-
-	/*
-	 * Create the operation approver.
-	 */
-	public PromptingUserApprover(IUndoContext context) {
-		super();
-		this.context = context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover#proceedRedoing(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IOperationHistory,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus proceedRedoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable uiInfo) {
-
-		// return immediately if the operation is not relevant
-		if (!operation.hasContext(context))
-			return Status.OK_STATUS;
-
-		// allow the operation if we are not prompting
-		boolean prompt = UndoPlugin.getDefault().getPreferenceStore()
-				.getBoolean(PreferenceConstants.PREF_CONFIRMUNDO);
-		if (!prompt)
-			return Status.OK_STATUS;
-		return prompt(false, operation, uiInfo);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover#proceedUndoing(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IOperationHistory,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus proceedUndoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable uiInfo) {
-
-		// return immediately if the operation is not relevant
-		if (!operation.hasContext(context))
-			return Status.OK_STATUS;
-
-		// allow the operation if we are not prompting
-		boolean prompt = UndoPlugin.getDefault().getPreferenceStore()
-				.getBoolean(PreferenceConstants.PREF_CONFIRMUNDO);
-		if (!prompt)
-			return Status.OK_STATUS;
-		return prompt(true, operation, uiInfo);
-	}
-
-	/*
-	 * Prompt the user as to whether to continue the undo or redo, and return an
-	 * OK_STATUS if we should continue, or a CANCEL_STATUS if we should not.
-	 */
-	private IStatus prompt(boolean undoing, IUndoableOperation operation,
-			IAdaptable uiInfo) {
-		boolean createdShell = false;
-		Shell shell = getShell(uiInfo);
-		if (shell == null) {
-			if (shell == null) {
-				createdShell = true;
-				shell = new Shell();
-			}
-		}
-		String command = undoing ? UndoExampleMessages.BoxView_Undo
-				: UndoExampleMessages.BoxView_Redo;
-		String message = NLS.bind(UndoExampleMessages.BoxView_ConfirmUndo, command,
-				operation.getLabel());
-		MessageDialogWithToggle dialog = MessageDialogWithToggle
-				.openOkCancelConfirm(shell, UndoExampleMessages.BoxView_Title,
-						message, UndoExampleMessages.UndoPreferences_DoNotConfirm, false, null, null);
-		UndoPlugin.getDefault().getPreferenceStore().setValue(PreferenceConstants.PREF_CONFIRMUNDO, !dialog.getToggleState());
-
-		if (createdShell)
-			shell.dispose();
-		if (dialog.getReturnCode() == Window.OK)
-			return Status.OK_STATUS;
-		return Status.CANCEL_STATUS;
-	}
-
-	/*
-	 * Return the shell described by the supplied uiInfo, or null if no shell is
-	 * described.
-	 */
-	Shell getShell(IAdaptable uiInfo) {
-		if (uiInfo != null) {
-			Shell shell = (Shell) uiInfo.getAdapter(Shell.class);
-			if (shell != null)
-				return shell;
-		}
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoExampleMessages.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoExampleMessages.java
deleted file mode 100644
index 678524a..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoExampleMessages.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.examples.undo;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Message class for the undo example.
- *
- */
-public class UndoExampleMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.examples.undo.messages";//$NON-NLS-1$
-
-	public static String UndoPreferences_Description;
-	public static String UndoPreferences_HistoryLimit;
-	public static String UndoPreferences_ConfirmUndo;
-	public static String UndoPreferences_ShowDebug;
-	public static String UndoPreferences_DoNotConfirm;
-	
-	public static String UndoHistoryView_ContextFilterDialog;
-	public static String UndoHistoryView_ChooseContextMessage;
-	public static String UndoHistoryView_FilterText;
-	public static String UndoHistoryView_FilterToolTipText;
-	public static String UndoHistoryView_OperationInvalid;
-	public static String UndoHistoryView_OperationException;
-	public static String UndoHistoryView_UndoSelected;
-	public static String UndoHistoryView_UndoSelectedToolTipText;
-	public static String UndoHistoryView_RefreshList;
-	public static String UndoHistoryView_RefreshListToolTipText;
-	public static String UndoHistoryView_InfoDialogTitle;
-
-	public static String BoxView_Title;
-	public static String BoxView_ClearBoxes;
-	public static String BoxView_ClearBoxesToolTipText;
-	public static String BoxView_Move;
-	public static String BoxView_Add;
-	public static String BoxView_ConfirmUndo;
-	public static String BoxView_Undo;
-	public static String BoxView_Redo;
-	
-    static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, UndoExampleMessages.class);
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoPlugin.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoPlugin.java
deleted file mode 100644
index 8180980..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoPlugin.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UndoPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static UndoPlugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public UndoPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static UndoPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.examples.undo2", path);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/messages.properties b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/messages.properties
deleted file mode 100644
index 2c2dad1..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/messages.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-########### Undo Preferences ###########################
-UndoPreferences_Description = Undo Example Preferences
-UndoPreferences_HistoryLimit = Undo history limit
-UndoPreferences_ConfirmUndo = Confirm all undo operations
-UndoPreferences_ShowDebug = Show debug labels in undo history view
-UndoPreferences_DoNotConfirm = Do not prompt for undo or redo again
-
-########### Undo History View ##########################
-UndoHistoryView_ContextFilterDialog = Context Filter Dialog
-UndoHistoryView_ChooseContextMessage = Choose the Context for the view
-UndoHistoryView_FilterText = Filter on...
-UndoHistoryView_FilterToolTipText = Set the undo context used to filter the operation history
-UndoHistoryView_UndoSelected = Undo selected
-UndoHistoryView_UndoSelectedToolTipText = Undo the selected operation
-UndoHistoryView_RefreshList = Refresh list
-UndoHistoryView_RefreshListToolTipText = Refresh and redraw the list
-UndoHistoryView_OperationInvalid = The selected operation cannot be undone in its current state
-UndoHistoryView_OperationException = An error occurred while trying to undo this operation
-UndoHistoryView_InfoDialogTitle = Undo History Example Information
-
-########### Box View ##########################
-BoxView_Title = Box View
-BoxView_ClearBoxes = Delete all boxes
-BoxView_ClearBoxesToolTipText = Delete all of the boxes from the view
-BoxView_Move = Move Box
-BoxView_Add = Add Box
-BoxView_ConfirmUndo = Are you sure you want to {0} "{1}"?
-BoxView_Undo = Undo
-BoxView_Redo = Redo
-
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceConstants.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceConstants.java
deleted file mode 100644
index 209f680..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceConstants.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo.preferences;
-
-/**
- * Constant definitions for plug-in preferences
- */
-public class PreferenceConstants {
-
-	public static final String PREF_UNDOLIMIT = "prefUndoLimit";
-	public static final String PREF_SHOWDEBUG = "prefShowDebug";
-	public static final String PREF_CONFIRMUNDO = "prefConfirmUndo";
-	
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceInitializer.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceInitializer.java
deleted file mode 100644
index b706daf..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.ui.examples.undo.UndoPlugin;
-
-/**
- * Class used to initialize default preference values.
- */
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = UndoPlugin.getDefault()
-				.getPreferenceStore();
-		store.setDefault(PreferenceConstants.PREF_CONFIRMUNDO, true);
-		store.setDefault(PreferenceConstants.PREF_UNDOLIMIT,
-				25);
-		store.setDefault(PreferenceConstants.PREF_SHOWDEBUG, false);
-		
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/UndoPreferencePage.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/UndoPreferencePage.java
deleted file mode 100644
index df35f35..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/UndoPreferencePage.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo.preferences;
-
-import org.eclipse.jface.preference.*;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.examples.undo.UndoExampleMessages;
-import org.eclipse.ui.examples.undo.UndoPlugin;
-
-/**
- * This class is used to define preferences that control how
- * undo occurs.  It demonstrates the use of preferences to configure
- * the operation history in different ways.
- */
-
-public class UndoPreferencePage
-	extends FieldEditorPreferencePage
-	implements IWorkbenchPreferencePage {
-
-	public UndoPreferencePage() {
-		super(GRID);
-		setPreferenceStore(UndoPlugin.getDefault().getPreferenceStore());
-		setDescription(UndoExampleMessages.UndoPreferences_Description);
-	}
-	
-	/**
-	 * Creates the field editors. 
-	 */
-	public void createFieldEditors() {
-		
-		addField(
-				new IntegerFieldEditor(
-					PreferenceConstants.PREF_UNDOLIMIT,
-					UndoExampleMessages.UndoPreferences_HistoryLimit,
-					getFieldEditorParent()));
-
-		addField(
-				new BooleanFieldEditor(
-					PreferenceConstants.PREF_SHOWDEBUG,
-					UndoExampleMessages.UndoPreferences_ShowDebug,
-					getFieldEditorParent()));
-
-		addField(
-			new BooleanFieldEditor(
-				PreferenceConstants.PREF_CONFIRMUNDO,
-				UndoExampleMessages.UndoPreferences_ConfirmUndo,
-				getFieldEditorParent()));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-	
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/BoxView.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/BoxView.java
deleted file mode 100644
index 761bc9a..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/BoxView.java
+++ /dev/null
@@ -1,462 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo.views;
-
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.examples.undo.AddBoxOperation;
-import org.eclipse.ui.examples.undo.Box;
-import org.eclipse.ui.examples.undo.Boxes;
-import org.eclipse.ui.examples.undo.ClearBoxesOperation;
-import org.eclipse.ui.examples.undo.MoveBoxOperation;
-import org.eclipse.ui.examples.undo.PromptingUserApprover;
-import org.eclipse.ui.examples.undo.UndoExampleMessages;
-import org.eclipse.ui.examples.undo.UndoPlugin;
-import org.eclipse.ui.examples.undo.preferences.PreferenceConstants;
-import org.eclipse.ui.operations.RedoActionHandler;
-import org.eclipse.ui.operations.UndoActionHandler;
-import org.eclipse.ui.part.ViewPart;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IOperationApprover;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.ObjectUndoContext;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.SWT;
-
-public class BoxView extends ViewPart {
-	/*
-	 * The canvas to paint the boxes on.
-	 */
-	private Canvas paintCanvas;
-
-	/*
-	 * The gc used for drawing the rubber band.
-	 */
-	private GC gc;
-
-	/*
-	 * The model, a group of boxes
-	 */
-	private Boxes boxes = new Boxes();
-
-	/*
-	 * Undo and redo actions
-	 */
-	private UndoActionHandler undoAction;
-
-	private RedoActionHandler redoAction;
-
-	private IAction clearBoxesAction;
-
-	/*
-	 * Private undo context for box operations
-	 */
-	private IUndoContext undoContext;
-
-	/*
-	 * Operation approver for approving undo and redo
-	 */
-	private IOperationApprover operationApprover;
-
-	/*
-	 * Property change listener for the undo limit preference.
-	 */
-	private IPropertyChangeListener propertyChangeListener;
-
-	/*
-	 * True if a click-drag is in progress
-	 */
-	private boolean dragInProgress = false;
-
-	/*
-	 * True if a click-move is in progress
-	 */
-	private boolean moveInProgress = false;
-
-	/*
-	 * The box that is being moved.
-	 */
-	private Box movingBox;
-
-	/*
-	 * The diff between a moving box and the track position.
-	 */
-	int diffX, diffY;
-
-	/*
-	 * The position of the first click in a click-drag
-	 */
-	private Point anchorPosition = new Point(-1, -1);
-
-	/*
-	 * A temporary point in a drag or move operation
-	 */
-	private Point tempPosition = new Point(-1, -1);
-
-	/*
-	 * The rubber band position (the last recorded temp position)
-	 */
-	private Point rubberbandPosition = new Point(-1, -1);
-
-	/*
-	 * Construct a BoxView.
-	 */
-	public BoxView() {
-		super();
-		initializeOperationHistory();
-	}
-
-	/*
-	 * Create the canvas on which boxes are drawn and hook up all actions and
-	 * listeners.
-	 */
-	public void createPartControl(Composite parent) {
-		paintCanvas = new Canvas(parent, SWT.BORDER | SWT.V_SCROLL
-				| SWT.H_SCROLL | SWT.NO_REDRAW_RESIZE);
-
-		// set up a GC for drawing the tracking rectangle
-		gc = new GC(paintCanvas);
-		gc.setForeground(paintCanvas.getForeground());
-		gc.setLineStyle(SWT.LINE_SOLID);
-
-		// add listeners
-		addListeners();
-
-		// create actions and hook them up to the menus and toolbar
-		makeActions();
-		hookContextMenu();
-		createGlobalActionHandlers();
-		contributeToActionBars();
-	}
-
-	/*
-	 * Add listeners to the canvas.
-	 */
-	private void addListeners() {
-		paintCanvas.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent event) {
-				if (event.button != 1)
-					return;
-				if (dragInProgress || moveInProgress)
-					return; // spurious event
-
-				tempPosition.x = event.x;
-				tempPosition.y = event.y;
-				Box box = boxes.getBox(event.x, event.y);
-				if (box != null) {
-					moveInProgress = true;
-					movingBox = box;
-					anchorPosition.x = box.x1;
-					anchorPosition.y = box.y1;
-					diffX = event.x - box.x1;
-					diffY = event.y - box.y1;
-				} else {
-					dragInProgress = true;
-					anchorPosition.x = event.x;
-					anchorPosition.y = event.y;
-				}
-			}
-
-			public void mouseUp(MouseEvent event) {
-				if (event.button != 1) {
-					resetDrag(true); // abort if right or middle mouse button
-					// pressed
-					return;
-				}
-				if (anchorPosition.x == -1)
-					return; // spurious event
-
-				if (dragInProgress) {
-					Box box = new Box(anchorPosition.x, anchorPosition.y,
-							tempPosition.x, tempPosition.y);
-					if (box.getWidth() > 0 && box.getHeight() > 0) {
-						try {
-							getOperationHistory().execute(
-									new AddBoxOperation(
-											UndoExampleMessages.BoxView_Add,
-											undoContext, boxes, box, paintCanvas),
-									null, null);
-						} catch (ExecutionException e) {
-						}
-						dragInProgress = false;
-					}
-				} else if (moveInProgress) {
-					try {
-						getOperationHistory().execute(
-								new MoveBoxOperation(
-										UndoExampleMessages.BoxView_Move,
-										undoContext, movingBox, paintCanvas,
-										anchorPosition), null, null);
-					} catch (ExecutionException e) {
-					}
-					moveInProgress = false;
-					movingBox = null;
-				}
-				resetDrag(false);
-
-				// redraw everything to clean up the tracking rectangle
-				paintCanvas.redraw();
-			}
-
-			public void mouseDoubleClick(MouseEvent event) {
-			}
-		});
-		paintCanvas.addMouseMoveListener(new MouseMoveListener() {
-			public void mouseMove(MouseEvent event) {
-				if (dragInProgress) {
-					clearRubberBandSelection();
-					tempPosition.x = event.x;
-					tempPosition.y = event.y;
-					addRubberBandSelection();
-				} else if (moveInProgress) {
-					clearRubberBandSelection();
-					anchorPosition.x = event.x - diffX;
-					anchorPosition.y = event.y - diffY;
-					tempPosition.x = anchorPosition.x + movingBox.getWidth();
-					tempPosition.y = anchorPosition.y + movingBox.getHeight();
-					addRubberBandSelection();
-				}
-			}
-		});
-		paintCanvas.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				event.gc.setForeground(paintCanvas.getForeground());
-				boxes.draw(event.gc);
-			}
-		});
-
-		paintCanvas.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				// dispose the gc
-				gc.dispose();
-				// dispose listeners
-				removeListeners();
-			}
-		});
-
-		// listen for a change in the undo limit
-		propertyChangeListener = new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty() == PreferenceConstants.PREF_UNDOLIMIT) {
-					int limit = UndoPlugin.getDefault().getPreferenceStore()
-							.getInt(PreferenceConstants.PREF_UNDOLIMIT);
-					getOperationHistory().setLimit(undoContext, limit);
-				}
-			}
-		};
-		UndoPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(
-				propertyChangeListener);
-
-	}
-
-	/*
-	 * Remove listeners that were registered. Since the control is being
-	 * disposed, we are only removing non-control listeners.
-	 */
-	private void removeListeners() {
-		UndoPlugin.getDefault().getPreferenceStore()
-				.removePropertyChangeListener(propertyChangeListener);
-		getOperationHistory().removeOperationApprover(operationApprover);
-	}
-
-	/*
-	 * Hook a listener on the menu showing so we can fill the context menu with
-	 * our actions.
-	 */
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("#PopupMenu");
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				BoxView.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(paintCanvas);
-		paintCanvas.setMenu(menu);
-	}
-
-	/*
-	 * Add our actions to the action bars.
-	 */
-	private void contributeToActionBars() {
-		IActionBars bars = getViewSite().getActionBars();
-		fillLocalPullDown(bars.getMenuManager());
-		fillLocalToolBar(bars.getToolBarManager());
-	}
-
-	/*
-	 * Add our undo and redo actions to the local pulldown.
-	 */
-	private void fillLocalPullDown(IMenuManager manager) {
-		manager.add(undoAction);
-		manager.add(redoAction);
-		manager.add(new Separator());
-		manager.add(clearBoxesAction);
-	}
-
-	/*
-	 * Add our undo and redo actions to the context menu.
-	 */
-	private void fillContextMenu(IMenuManager manager) {
-		manager.add(undoAction);
-		manager.add(redoAction);
-		manager.add(new Separator());
-		manager.add(clearBoxesAction);
-		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	}
-
-	/*
-	 * Add actions to the local toolbar.
-	 */
-	private void fillLocalToolBar(IToolBarManager manager) {
-		manager.add(clearBoxesAction);
-	}
-
-	/*
-	 * Make any local actions used in the view.
-	 */
-	private void makeActions() {
-		clearBoxesAction = new Action() {
-			public void run() {
-				try {
-					getOperationHistory().execute(
-							new ClearBoxesOperation(
-									UndoExampleMessages.BoxView_ClearBoxes,
-									undoContext, boxes, paintCanvas), null,
-							null);
-				} catch (ExecutionException e) {
-				}
-			}
-		};
-		clearBoxesAction.setText(UndoExampleMessages.BoxView_ClearBoxes);
-		clearBoxesAction
-				.setToolTipText(UndoExampleMessages.BoxView_ClearBoxesToolTipText);
-		clearBoxesAction.setImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_TOOL_DELETE));
-	}
-
-	/*
-	 * Create the global undo and redo action handlers.
-	 */
-	private void createGlobalActionHandlers() {
-		// set up action handlers that operate on the current context
-		undoAction = new UndoActionHandler(this.getSite(), undoContext);
-		redoAction = new RedoActionHandler(this.getSite(), undoContext);
-		IActionBars actionBars = getViewSite().getActionBars();
-		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
-				undoAction);
-		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
-				redoAction);
-	}
-
-	/*
-	 * Set focus to the canvas.
-	 */
-	public void setFocus() {
-		paintCanvas.setFocus();
-	}
-
-	/*
-	 * Reset the drag operation.
-	 */
-	private void resetDrag(boolean clearRubberband) {
-		if (clearRubberband) {
-			clearRubberBandSelection();
-		}
-		dragInProgress = false;
-		moveInProgress = false;
-		movingBox = null;
-		anchorPosition.x = anchorPosition.y = tempPosition.x = tempPosition.y = rubberbandPosition.x = rubberbandPosition.y = -1;
-	}
-
-	/*
-	 * Clear the existing rubber band selection.
-	 */
-	private void clearRubberBandSelection() {
-		gc.setForeground(paintCanvas.getBackground());
-		gc.drawRectangle(anchorPosition.x, anchorPosition.y,
-				rubberbandPosition.x - anchorPosition.x, rubberbandPosition.y
-						- anchorPosition.y);
-		paintCanvas.redraw(anchorPosition.x, anchorPosition.y,
-				rubberbandPosition.x - anchorPosition.x, rubberbandPosition.y
-						- anchorPosition.y, false);
-		paintCanvas.update();
-		rubberbandPosition = new Point(-1, -1);
-		gc.setForeground(paintCanvas.getForeground());
-	}
-
-	/*
-	 * Show a rubber band selection.
-	 */
-	private void addRubberBandSelection() {
-		rubberbandPosition = tempPosition;
-		gc.drawRectangle(anchorPosition.x, anchorPosition.y,
-				rubberbandPosition.x - anchorPosition.x, rubberbandPosition.y
-						- anchorPosition.y);
-	}
-
-	/*
-	 * Initialize the workbench operation history for our undo context.
-	 */
-	private void initializeOperationHistory() {
-		// create a unique undo context to 
-		// represent this view's undo history
-		undoContext = new ObjectUndoContext(this);
-
-		// set the undo limit for this context based on the preference
-		int limit = UndoPlugin.getDefault().getPreferenceStore().getInt(
-				PreferenceConstants.PREF_UNDOLIMIT);
-		getOperationHistory().setLimit(undoContext, limit);
-
-		// Install an operation approver for this undo context that prompts
-		// according to a user preference.
-		operationApprover = new PromptingUserApprover(undoContext);
-		getOperationHistory().addOperationApprover(operationApprover);
-	}
-
-	/*
-	 * Get the operation history from the workbench.
-	 */
-	private IOperationHistory getOperationHistory() {
-		return PlatformUI.getWorkbench().getOperationSupport()
-				.getOperationHistory();
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java
deleted file mode 100644
index a952dac..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.undo.views;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
-import org.eclipse.ui.examples.undo.UndoExampleMessages;
-import org.eclipse.ui.examples.undo.UndoPlugin;
-import org.eclipse.ui.examples.undo.preferences.PreferenceConstants;
-import org.eclipse.ui.operations.RedoActionHandler;
-import org.eclipse.ui.operations.UndoActionHandler;
-import org.eclipse.ui.part.*;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.commands.operations.OperationHistoryFactory;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IOperationHistoryListener;
-import org.eclipse.core.commands.operations.OperationHistoryEvent;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.*;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.SWT;
-
-/**
- * This view shows what operations are being added to the operations history for
- * undo. The view can be filtered by any operation context. A null operation
- * context indicates that the view should not be filtered.
- * 
- * <p>
- * Selecting undo or redo from the context menu or the edit menu will perform a
- * linear undo in the current context of the view. Selecting "Undo selected"
- * allows experimentation with direct undo. Operations that are undoable may be
- * undone independently of their order in the history.
- */
-
-public class UndoHistoryView extends ViewPart implements
-		ISelectionChangedListener {
-	private TableViewer viewer;
-
-	private Action filterAction;
-
-	private Action doubleClickAction;
-
-	private Action selectiveUndoAction;
-
-	private Action refreshListAction;
-
-	private IOperationHistory history = OperationHistoryFactory
-			.getOperationHistory();
-
-	private IUndoContext fContext = IOperationHistory.GLOBAL_UNDO_CONTEXT;
-
-	private UndoActionHandler undoAction;
-
-	private RedoActionHandler redoAction;
-	
-	private boolean showDebug = UndoPlugin.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOWDEBUG);
-	private IPropertyChangeListener propertyChangeListener;
-
-	/*
-	 * The content provider shows the operations in the undo portion of the
-	 * operation history.  The histor is filtered by the currently selected
-	 * undo context.
-	 */
-
-	class ViewContentProvider implements IStructuredContentProvider,
-			IOperationHistoryListener {
-
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-			// we never change inputs, so we just use this as a place to add our
-			// listener.
-			history.addOperationHistoryListener(this);
-		}
-
-		public void dispose() {
-			history.removeOperationHistoryListener(this);
-		}
-
-		public Object[] getElements(Object input) {
-			// show the items in the operations history.
-			return history.getUndoHistory(fContext);
-		}
-
-		public void historyNotification(OperationHistoryEvent event) {
-			if (viewer.getTable().isDisposed())
-				return;
-			Display display = viewer.getTable().getDisplay();
-			switch (event.getEventType()) {
-			case OperationHistoryEvent.OPERATION_ADDED:
-			case OperationHistoryEvent.OPERATION_REMOVED:
-			case OperationHistoryEvent.UNDONE:
-			case OperationHistoryEvent.REDONE:
-				if (event.getOperation().hasContext(fContext)
-						&& display != null) {
-					display.syncExec(new Runnable() {
-						public void run() {
-							// refresh all labels in case any operation has
-							// changed dynamically
-							// without notifying the operation history.
-							if (!viewer.getTable().isDisposed())
-								viewer.refresh(true);
-						}
-					});
-				}
-				break;
-			}
-		}
-	}
-
-	/*
-	 * A simple label provider that uses a preference to determine
-	 * whether the simple label or the debugging label (toString()) 
-	 * for an operation is shown.
-	 */
-	class ViewLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-		public String getColumnText(Object obj, int index) {
-			return getText(obj);
-		}
-
-		public Image getColumnImage(Object obj, int index) {
-			return getImage(obj);
-		}
-
-		public String getText(Object obj) {
-			if (!showDebug && obj instanceof IUndoableOperation)
-				return ((IUndoableOperation)obj).getLabel();
-			return obj.toString();
-		}
-	}
-
-	/*
-	 * Create a table viewer to show the list of operations.
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL
-				| SWT.V_SCROLL);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(getViewSite());
-		makeActions();
-		hookContextMenu();
-		hookDoubleClickAction();
-		addListeners();
-		createGlobalActionHandlers();
-	}
-	
-	/*
-	 * Add any listeners needed by this view.
-	 */
-	private void addListeners() {
-		propertyChangeListener = new IPropertyChangeListener(){
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty() == PreferenceConstants.PREF_SHOWDEBUG) {
-					showDebug = UndoPlugin.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOWDEBUG);
-					viewer.refresh();
-				}
-			}
-		};
-		UndoPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(propertyChangeListener);
-		viewer.getControl().addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				removeListeners();
-			}
-		});
-	}
-	
-	/*
-	 * Remove listeners that were added to this view.
-	 */
-	private void removeListeners() {
-		UndoPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(propertyChangeListener);	
-	}
-
-
-	/*
-	 * Create global action handlers to control undo and redo. We use the action
-	 * handlers rather than the UndoRedoActionGroup because this view
-	 * dynamically sets the undo context of the handlers. Most views that simply
-	 * desire an undo and redo menu action for their undo context can use
-	 * UndoRedoActionGroup.
-	 */
-	private void createGlobalActionHandlers() {
-		// set up action handlers that operate on the current context
-		undoAction = new UndoActionHandler(this.getSite(), fContext);
-		redoAction = new RedoActionHandler(this.getSite(), fContext);
-		IActionBars actionBars = getViewSite().getActionBars();
-		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
-				undoAction);
-		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
-				redoAction);
-	}
-
-	/*
-	 * Put up a dialog that shows all of the available undo contexts and allow
-	 * the user to select one.
-	 */
-	private IUndoContext selectContext() {
-		// This would be better implemented as a view filter, but for now, we 
-		// will use a dialog that collects the available undo contexts.
-		List input = new ArrayList();
-		IUndoableOperation[] operations = history
-				.getUndoHistory(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		for (int i = 0; i < operations.length; i++) {
-			IUndoContext[] contexts = operations[i].getContexts();
-			for (int j = 0; j < contexts.length; j++) {
-				if (!input.contains(contexts[j])) {
-					input.add(contexts[j]);
-				}
-			}
-		}
-		input.add(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-
-		ILabelProvider labelProvider = new LabelProvider() {
-			public String getText(Object element) {
-				return ((IUndoContext) element).getLabel();
-			}
-		};
-
-		ElementListSelectionDialog dialog = new ElementListSelectionDialog(
-				getSite().getShell(), labelProvider);
-		dialog.setMultipleSelection(false);
-		dialog.setTitle(UndoExampleMessages.UndoHistoryView_ContextFilterDialog); 
-		dialog.setMessage(UndoExampleMessages.UndoHistoryView_ChooseContextMessage); 
-		dialog.setElements(input.toArray());
-		dialog.setInitialSelections(new Object[] { fContext });
-		if (dialog.open() == Window.OK) {
-			Object[] contexts = dialog.getResult();
-			if (contexts[0] instanceof IUndoContext)
-				return (IUndoContext) contexts[0];
-			return null;
-		}
-		return null;
-	}
-
-	/*
-	 * Reset the undo context on which the history is filtered.
-	 */
-	public void setContext(IUndoContext context) {
-		fContext = context;
-		// setting the context into the actions updates the menu labels, etc.
-		redoAction.setContext(context);
-		undoAction.setContext(context);
-		// need to refresh the viewer
-		viewer.refresh(false);
-	}
-
-	/*
-	 * Hook the context menu for the view
-	 */
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("#PopupMenu");
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				UndoHistoryView.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(menuMgr, viewer);
-	}
-
-	/*
-	 * Fill the context menu for the view.
-	 */
-	private void fillContextMenu(IMenuManager manager) {
-		// First add the global undo/redo actions
-		undoAction.update();
-		redoAction.update();
-		manager.add(undoAction);
-		manager.add(redoAction);
-		manager.add(new Separator());
-		
-		// Now add our specialized actions
-		manager.add(selectiveUndoAction);
-		manager.add(filterAction);
-		manager.add(refreshListAction);
-
-		ISelection selection = viewer.getSelection();
-		if (!selection.isEmpty()) {
-			IUndoableOperation operation = (IUndoableOperation) ((IStructuredSelection) selection)
-					.getFirstElement();
-			selectiveUndoAction.setEnabled(operation.canUndo());
-		} else {
-			selectiveUndoAction.setEnabled(false);
-		}
-
-		// Other plug-ins can contribute actions here
-		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	}
-
-	/*
-	 * Create the actions for the view.
-	 */
-	private void makeActions() {
-		filterAction = new Action() {
-			public void run() {
-				IUndoContext context = selectContext();
-				if (fContext != context && context != null) {
-					setContext(context);
-				}
-			}
-		};
-		filterAction.setText(UndoExampleMessages.UndoHistoryView_FilterText);
-		filterAction.setToolTipText(UndoExampleMessages.UndoHistoryView_FilterToolTipText);
-		filterAction.setImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_OBJS_INFO_TSK));
-
-		selectiveUndoAction = new Action() {
-			public void run() {
-				ISelection selection = viewer.getSelection();
-				IUndoableOperation operation = (IUndoableOperation) ((IStructuredSelection) selection)
-						.getFirstElement();
-				if (operation.canUndo()) {
-					try {
-						history.undoOperation(operation, null, undoAction);
-					} catch (ExecutionException e) {
-						showMessage(UndoExampleMessages.UndoHistoryView_OperationException);
-					}
-				} else {
-					showMessage(UndoExampleMessages.UndoHistoryView_OperationInvalid);
-				}
-			}
-		};
-		selectiveUndoAction.setText(UndoExampleMessages.UndoHistoryView_UndoSelected);
-		selectiveUndoAction.setToolTipText(UndoExampleMessages.UndoHistoryView_UndoSelectedToolTipText);
-		selectiveUndoAction.setImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_TOOL_UNDO));
-
-		refreshListAction = new Action() {
-			public void run() {
-				if (!viewer.getTable().isDisposed())
-					viewer.refresh(true);
-			}
-		};
-		refreshListAction.setText(UndoExampleMessages.UndoHistoryView_RefreshList);
-		refreshListAction.setToolTipText(UndoExampleMessages.UndoHistoryView_RefreshListToolTipText);
-
-		doubleClickAction = new Action() {
-			public void run() {
-				ISelection selection = viewer.getSelection();
-				IUndoableOperation operation = (IUndoableOperation) ((IStructuredSelection) selection)
-						.getFirstElement();
-				StringBuffer buf = new StringBuffer(operation.getLabel());
-				buf.append("\n");
-				buf.append("Enabled=");	//$NON-NLS-1$
-				buf.append(new Boolean(operation.canUndo()).toString());
-				buf.append("\n");
-				buf.append(operation.getClass().toString());
-				showMessage(buf.toString());
-
-			}
-		};
-	}
-
-	/*
-	 * Register a double click action with the double click event.
-	 */
-	private void hookDoubleClickAction() {
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				doubleClickAction.run();
-			}
-		});
-	}
-
-	/*
-	 * Show an info message
-	 */
-	private void showMessage(String message) {
-		MessageDialog.openInformation(viewer.getControl().getShell(),
-				UndoExampleMessages.UndoHistoryView_InfoDialogTitle, message);
-	}
-
-	/*
-	 * The selection has changed.
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		ISelection selection = viewer.getSelection();
-		boolean enabled = !selection.isEmpty();
-		selectiveUndoAction.setEnabled(enabled);
-	}
-
-	/*
-	 * Pass the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.undo/META-INF/MANIFEST.MF
deleted file mode 100644
index cf582ab..0000000
--- a/examples/org.eclipse.ui.examples.undo/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.undo; singleton:=true
-Bundle-Version: 3.2.100.qualifier
-Bundle-Activator: org.eclipse.ui.examples.undo.UndoPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.jface.text
-Bundle-Vendor: %Plugin.providerName
-Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.ui.examples.undo/about.html b/examples/org.eclipse.ui.examples.undo/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.undo/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.undo/build.properties b/examples/org.eclipse.ui.examples.undo/build.properties
deleted file mode 100644
index dae444f..0000000
--- a/examples/org.eclipse.ui.examples.undo/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = Eclipse UI Examples Undo/
-
-bin.includes = doc-html/,\
-               icons/,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               .,\
-               META-INF/
-
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.undo/doc-html/ui_undo_ex.html b/examples/org.eclipse.ui.examples.undo/doc-html/ui_undo_ex.html
deleted file mode 100644
index f24f028..0000000
--- a/examples/org.eclipse.ui.examples.undo/doc-html/ui_undo_ex.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Undo Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Undo</b></h2>
-
-<h3>Introduction</h3>
-<p>
-The Undo Example adds two views to the workbench.  The <b>Box View</b> is a rudimentary
-view that allows the user to create boxes by clicking into empty space and dragging the mouse
-to form a box.  Boxes can be moved by selecting a box and dragging it around.  The user
-may undo and redo any operations performed in the box view.  The <b>Undo History
-View</b> shows the undo history maintained by the workbench operations history.
-</p>
-<h3>Features demonstrated in the example</h3>
-<ul>
-<li>Creating an <tt>IUndoableOperation</tt> inside an action (Delete all boxes) to perform the action's
-work .</li>
-<li>Creating an <tt>IUndoableOperation</tt> based on an operation implied by a gesture (Adding
-and moving boxes).</li>
-<li>Using a local <tt>IUndoContext</tt> to keep undo operations local to a particular view.</li>
-<li>Using the platform undo and redo action handlers to provide undo and redo in a view.</li>
-<li>Providing a user preference for setting the undo limit for a particular undo context.</li>
-<li>Using an <tt>IOperationApprover</tt> to install additional policy (Prompt before undo) in
-the operation history.</li>
-<li>Using <tt>IOperationHistory</tt> protocol to show undo history for different
-undo contexts (Undo History View).</li>
-</ul>
-<h3>Features not demonstrated</h3>
-<ul>
-<li>Since the example is focused on simple undo, the BoxView code is kept
-to a minimum.  Therefore, it does not provide the expected graphical editor features such as
-selection, resize and selection handles, color and line style attributes, etc.  For the same
-reason, advanced features in the undo framework are not shown.</li>
-<li>There is no example of assigning multiple undo contexts in order to share operations between
-views or editors.</li>
-<li>There is no example of using composite undo operations.</li>
-</ul>
-<h3>Running the example</h3>
-<p>
-From Eclipse's <strong>Window</strong> menu select <strong>Show View</strong> &gt; <strong>Other...</strong>.  
-In the <strong>Show View</strong> dialog, expand <strong>Undo Examples</strong> and select
-the view named <strong>Box View</strong>. The box view will appear.
-</p>
-<p>
-Likewise, from the <strong>Window</strong> menu select <strong>Show View</strong> &gt; <strong>Other...</strong>.  
-In the <strong>Show View</strong> dialog, expand <strong>Undo Examples</strong> and select
-the view named <strong>Undo History View</strong>. A view containing the undo history will appear.
-This view can be used alongside the Box View to watch the undo history as boxes are added or moved.  It
-can also be used independently of the Box View to follow the undo history for any view or editor that
-uses the workbench operations history to track undoable operations.
-</p>
-<h3>Details</h3>
-<h4>Box View</h4>
-<p>Click in the box view and drag the mouse to create a box that follows the mouse.  Clicking inside an
-existing box and dragging the mouse will move the box to a new location.  Note the operations that appear
-in the <strong>Undo</strong> and <strong>Redo</strong> menus as boxes are added and moved.  The box view
-can be cleared by selecting <strong>Delete all boxes</strong> from the context menu or the view's local
-menu and toolbar.  This operation can also be undone.
-</p>
-<h4>Undo History View</h4>
-<p>The Undo History View shows the operations available for undo in all undo contexts.  To view the history
-in a particular undo context, select <strong>Filter on...</strong> from the view's context menu.
-This will filter the undo history on a particular undo context.  The view can be used to view the undo history
-for the Box View, for SDK text editors, and for undoable operations that affect the workspace, such as
-refactoring operations.  Undo and redo can be performed from the Undo History View's menus.  <b>Undo selected</b>
-will attempt to undo the selected operation in the undo history, regardless of its position in the operation history.
-Depending on the operation in question, this may or may not be allowed.  For example, the Box View allows all add and
-move operations to be undone or redone even if they aren't the most recently performed operation.  Text editors
-will prompt if an attempt is made to undo a typing operation that is not the most recent.
-</p>
-<h4>Example Preferences</h4>
-<p>Preferences are provided that affect the operation of both views.  
-From Eclipse's <strong>Window</strong> menu select <strong>Preferences</strong> &gt; <strong>Undo Preferences</strong>.  
-<ul>
-<li><strong>Undo history limit</strong> controls how many undoable operations are kept in the history for the Box View.</li>
-<li><strong>Show debug labels in undo history view</strong> controls whether the simple label shown in the undo menu is
-used for displaying operations, or a debug label that includes information such as the assigned undo context(s).</li>
-<li><strong>Confirm all undo operations</strong> controls whether prompting occurs before undoing or redoing an operation.
-This preference is used by the operation approver installed by the example.</li>
-</ul>
-</p>
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.undo/icons/sample.gif b/examples/org.eclipse.ui.examples.undo/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.undo/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.undo/plugin.properties b/examples/org.eclipse.ui.examples.undo/plugin.properties
deleted file mode 100644
index 651f78e..0000000
--- a/examples/org.eclipse.ui.examples.undo/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Undo Example
-Plugin.providerName = Eclipse.org
-Views.historyView = Undo History View
-Views.boxView = Box View
-Views.Category = Undo Examples
-Preferences.Undo = Undo Preferences
diff --git a/examples/org.eclipse.ui.examples.undo/plugin.xml b/examples/org.eclipse.ui.examples.undo/plugin.xml
deleted file mode 100644
index 37f1aa5..0000000
--- a/examples/org.eclipse.ui.examples.undo/plugin.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%Preferences.Undo"
-            class="org.eclipse.ui.examples.undo.preferences.UndoPreferencePage"
-            id="org.eclipse.ui.examples.undo.preferences.UndoPreferencePage">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.ui.examples.undo.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.Category"
-            id="org.eclipse.ui.examples.undo">
-      </category>
-      <view
-            name="%Views.boxView"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.examples.undo"
-            class="org.eclipse.ui.examples.undo.views.BoxView"
-            id="org.eclipse.ui.examples.undo.views.BoxView">
-      </view>
-   </extension>
-   
-         <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.Category"
-            id="org.eclipse.ui.examples.undo"/>
-      <view
-            class="org.eclipse.ui.examples.undo.views.UndoHistoryView"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.examples.undo"
-            name="%Views.historyView"
-            id="org.eclipse.ui.examples.undo.views.UndoHistoryView"/>
-   </extension>
-   
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.classpath b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.cvsignore b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.project b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.project
deleted file mode 100644
index 7626b41..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.views.properties.tabbed.article</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 682f531..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:18:08 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index cbc1d39..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:18:08 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e5fd2a4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Jan 10 16:54:24 EST 2006
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/META-INF/MANIFEST.MF
deleted file mode 100644
index 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 751c8f2..0000000
--- a/examples/org.eclipse.ui.forms.examples/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.forms.examples/.cvsignore b/examples/org.eclipse.ui.forms.examples/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.forms.examples/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.forms.examples/.project b/examples/org.eclipse.ui.forms.examples/.project
deleted file mode 100644
index 0039091..0000000
--- a/examples/org.eclipse.ui.forms.examples/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.forms.examples</name>
-	<comment></comment>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5709915..0000000
--- a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,48 +0,0 @@
-#Mon May 16 16:39:49 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 817d509..0000000
--- a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon May 16 16:39:49 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index b4438da..0000000
--- a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Mon May 16 16:39:49 EDT 2005
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.forms.examples/about.html b/examples/org.eclipse.ui.forms.examples/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/examples/org.eclipse.ui.forms.examples/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.forms.examples/build.properties b/examples/org.eclipse.ui.forms.examples/build.properties
deleted file mode 100644
index ce0f7dd..0000000
--- a/examples/org.eclipse.ui.forms.examples/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.examples.jar = src/
-bin.includes = plugin.xml,\
-               *.jar,\
-               examples.jar,\
-               icons/,\
-               about.html
-output.examples.jar = bin/
diff --git a/examples/org.eclipse.ui.forms.examples/icons/clear.gif b/examples/org.eclipse.ui.forms.examples/icons/clear.gif
deleted file mode 100644
index 6bc10f9..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/clear.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/close_view.gif b/examples/org.eclipse.ui.forms.examples/icons/close_view.gif
deleted file mode 100644
index 1aca259..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/close_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/container_obj.gif b/examples/org.eclipse.ui.forms.examples/icons/container_obj.gif
deleted file mode 100644
index f32c28d..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/container_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/e_search_menu.gif b/examples/org.eclipse.ui.forms.examples/icons/e_search_menu.gif
deleted file mode 100644
index f0f5d83..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/e_search_menu.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/file_obj.gif b/examples/org.eclipse.ui.forms.examples/icons/file_obj.gif
deleted file mode 100644
index 6b86d07..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/file_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/form_banner.gif b/examples/org.eclipse.ui.forms.examples/icons/form_banner.gif
deleted file mode 100644
index aebc0b2..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/form_banner.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/help.gif b/examples/org.eclipse.ui.forms.examples/icons/help.gif
deleted file mode 100644
index 9d70301..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/help.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/help_topic.gif b/examples/org.eclipse.ui.forms.examples/icons/help_topic.gif
deleted file mode 100644
index 9bdd516..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/help_topic.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/large_image.gif b/examples/org.eclipse.ui.forms.examples/icons/large_image.gif
deleted file mode 100644
index c5c94ee..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/large_image.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/linkto_help.gif b/examples/org.eclipse.ui.forms.examples/icons/linkto_help.gif
deleted file mode 100644
index 86550fe..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/linkto_help.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/newprj_wiz.gif b/examples/org.eclipse.ui.forms.examples/icons/newprj_wiz.gif
deleted file mode 100644
index dc7d3a7..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/newprj_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/nw.gif b/examples/org.eclipse.ui.forms.examples/icons/nw.gif
deleted file mode 100644
index d0952a8..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/nw.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/progress.gif b/examples/org.eclipse.ui.forms.examples/icons/progress.gif
deleted file mode 100644
index f6a200f..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/progress.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/sample.gif b/examples/org.eclipse.ui.forms.examples/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/th_horizontal.gif b/examples/org.eclipse.ui.forms.examples/icons/th_horizontal.gif
deleted file mode 100644
index f4c14a4..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/th_horizontal.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/th_vertical.gif b/examples/org.eclipse.ui.forms.examples/icons/th_vertical.gif
deleted file mode 100644
index f685839..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/th_vertical.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/toc_closed.gif b/examples/org.eclipse.ui.forms.examples/icons/toc_closed.gif
deleted file mode 100644
index 504acb2..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/toc_closed.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/toc_open.gif b/examples/org.eclipse.ui.forms.examples/icons/toc_open.gif
deleted file mode 100644
index 9e665d5..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/toc_open.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/topic_small.gif b/examples/org.eclipse.ui.forms.examples/icons/topic_small.gif
deleted file mode 100644
index 17d8b2e..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/topic_small.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/plugin.properties b/examples/org.eclipse.ui.forms.examples/plugin.properties
deleted file mode 100644
index 94ed361..0000000
--- a/examples/org.eclipse.ui.forms.examples/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Examples of Eclipse Forms
-baseEditor = Simple Form (RCP) Editor
-singleHeaderEditor = Single Header Editor
diff --git a/examples/org.eclipse.ui.forms.examples/plugin.xml b/examples/org.eclipse.ui.forms.examples/plugin.xml
deleted file mode 100644
index c8eb601..0000000
--- a/examples/org.eclipse.ui.forms.examples/plugin.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.ui.forms.examples"
-   name="%pluginName"
-   version="3.1.0"
-   provider-name="Eclipse.org"
-   class="org.eclipse.ui.forms.examples.internal.ExamplesPlugin">
-
-   <runtime>
-      <library name="examples.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.ui.forms"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.ui.ide"/>
-   </requires>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            id="org.eclipse.ui.forms.examples.category"
-            name="Eclipse Forms Examples">
-      </category>
-      <command
-            categoryId="org.eclipse.ui.forms.examples.category"
-            defaultHandler="org.eclipse.ui.forms.examples.internal.rcp.OpenSimpleFormEditorAction"
-            id="org.eclipse.ui.forms.examples.simple"
-            name="Simple Form Editor">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.forms.examples.category"
-            defaultHandler="org.eclipse.ui.forms.examples.internal.rcp.OpenSingleHeaderEditorAction"
-            id="org.eclipse.ui.forms.examples.singleHeader"
-            name="Single Header Editor">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.forms.examples.category"
-            defaultHandler="org.eclipse.ui.forms.examples.internal.dialogs.OpenFormDialog"
-            id="org.eclipse.ui.forms.examples.openDialog"
-            name="Open Form Dialog...">
-      </command>
-   </extension>
-
-
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%baseEditor"
-            default="true"
-            icon="icons/file_obj.gif"
-            class="org.eclipse.ui.forms.examples.internal.rcp.SimpleFormEditor"
-            id="org.eclipse.ui.forms.examples.base-editor">
-      </editor>
-      <editor
-            name="%singleHeaderEditor"
-            default="true"
-            icon="icons/file_obj.gif"
-            class="org.eclipse.ui.forms.examples.internal.rcp.SingleHeaderEditor"
-            id="org.eclipse.ui.forms.examples.single-header-editor">
-      </editor>      
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               label="Form Editors">
-            <command
-                  commandId="org.eclipse.ui.forms.examples.simple"
-                  style="push">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.forms.examples.singleHeader"
-                  style="push">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.forms.examples.openDialog"
-                  style="push">
-            </command>
-         </menu>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.eclipse.ui.resourcePerspective">
-         <view
-               ratio="0.5"
-               relative="org.eclipse.ui.views.TaskList"
-               relationship="right"
-               id="org.eclipse.ui.forms.examples.views.FormView">
-         </view>
-      </perspectiveExtension>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="Eclipse Forms Examples"
-            id="org.eclipse.ui.forms.examples">
-      </category>
-      <view
-            name="Eclipse Form"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.forms.examples"
-            class="org.eclipse.ui.forms.examples.views.FormView"
-            id="org.eclipse.ui.forms.examples.views.FormView">
-      </view>
-   </extension>
-</plugin>
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
deleted file mode 100644
index 269726d..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal;
-import java.net.URL;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-/**
- * The main plugin class to be used in the desktop.
- */
-public class ExamplesPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static ExamplesPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	private FormColors formColors;
-	public static final String IMG_FORM_BG = "formBg";
-	public static final String IMG_LARGE = "large";
-	public static final String IMG_HORIZONTAL = "horizontal";
-	public static final String IMG_VERTICAL = "vertical";
-	public static final String IMG_SAMPLE = "sample";
-	public static final String IMG_WIZBAN = "wizban";
-	public static final String IMG_LINKTO_HELP = "linkto_help";
-	public static final String IMG_HELP_TOPIC = "help_topic";
-	public static final String IMG_CLOSE = "close";
-	public static final String IMG_HELP_CONTAINER = "container_obj";
-	public static final String IMG_HELP_TOC_OPEN = "toc_open";
-	public static final String IMG_HELP_TOC_CLOSED = "toc_closed";
-	public static final String IMG_HELP_SEARCH = "e_search_menu";
-	public static final String IMG_CLEAR = "clear";
-	public static final String IMG_NW = "nw";
-
-	/**
-	 * The constructor.
-	 */
-	public ExamplesPlugin() {
-		plugin = this;
-		try {
-			resourceBundle = ResourceBundle
-					.getBundle("org.eclipse.ui.forms.examples.internal.ExamplesPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	protected void initializeImageRegistry(ImageRegistry registry) {
-		registerImage(registry, IMG_FORM_BG, "form_banner.gif");
-		registerImage(registry, IMG_LARGE, "large_image.gif");
-		registerImage(registry, IMG_HORIZONTAL, "th_horizontal.gif");
-		registerImage(registry, IMG_VERTICAL, "th_vertical.gif");
-		registerImage(registry, IMG_SAMPLE, "sample.gif");
-		registerImage(registry, IMG_WIZBAN, "newprj_wiz.gif");
-		registerImage(registry, IMG_LINKTO_HELP, "linkto_help.gif");
-		registerImage(registry, IMG_HELP_TOPIC, "topic.gif");
-		registerImage(registry, IMG_HELP_CONTAINER, "container_obj.gif");
-		registerImage(registry, IMG_HELP_TOC_CLOSED, "toc_closed.gif");
-		registerImage(registry, IMG_HELP_TOC_OPEN, "toc_open.gif");
-		registerImage(registry, IMG_CLOSE, "close_view.gif");
-		registerImage(registry, IMG_HELP_SEARCH, "e_search_menu.gif");
-		registerImage(registry, IMG_CLEAR, "clear.gif");
-		registerImage(registry, IMG_NW, "nw.gif");
-	}
-
-	private void registerImage(ImageRegistry registry, String key,
-			String fileName) {
-		try {
-			IPath path = new Path("icons/" + fileName);
-			URL url = FileLocator.find(getBundle(), path, null);
-			if (url!=null) {
-				ImageDescriptor desc = ImageDescriptor.createFromURL(url);
-				registry.put(key, desc);
-			}
-		} catch (Exception e) {
-		}
-	}
-
-	public FormColors getFormColors(Display display) {
-		if (formColors == null) {
-			formColors = new FormColors(display);
-			formColors.markShared();
-		}
-		return formColors;
-	}
-	/**
-	 * Returns the shared instance.
-	 */
-	public static ExamplesPlugin getDefault() {
-		return plugin;
-	}
-	/**
-	 * Returns the workspace instance.
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-	/**
-	 * Returns the string from the plugin's resource bundle, or 'key' if not
-	 * found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = ExamplesPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null ? bundle.getString(key) : key);
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-	public void stop(BundleContext context) throws Exception {
-		try {
-			if (formColors != null) {
-				formColors.dispose();
-				formColors = null;
-			}
-		} finally {
-			super.stop(context);
-		}
-	}
-	public Image getImage(String key) {
-		return getImageRegistry().get(key);
-	}
-	public ImageDescriptor getImageDescriptor(String key) {
-		return getImageRegistry().getDescriptor(key);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPluginResources.properties b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPluginResources.properties
deleted file mode 100644
index 339810c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPluginResources.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/FormEditorInput.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/FormEditorInput.java
deleted file mode 100644
index 5d7dbc5..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/FormEditorInput.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.*;
-
-public class FormEditorInput implements IEditorInput {
-	private String name;
-	public FormEditorInput(String name) {
-		this.name = name;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return true;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
-				ISharedImages.IMG_OBJ_ELEMENT);
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return getName();
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java
deleted file mode 100644
index 02cd146..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-public abstract class OpenFormEditorAction extends AbstractHandler {
-
-	protected Object openEditor(String inputName, String editorId, IWorkbenchWindow window) {
-		return openEditor(new FormEditorInput(inputName), editorId, window);
-	}
-	
-	protected Object openEditor(IEditorInput input, String editorId, IWorkbenchWindow window) {
-		IWorkbenchPage page = window.getActivePage();
-		try {
-			page.openEditor(input, editorId);
-		} catch (PartInitException e) {
-			System.out.println(e);
-		}
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java
deleted file mode 100644
index 5b3df3d..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.dialogs;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class OpenFormDialog extends AbstractHandler {
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
-		SampleFormDialog dialog = new SampleFormDialog(window.getShell());
-		dialog.create();
-		dialog.getShell().setText("Sample Form Dialog");
-		dialog.getShell().setSize(500,500);
-		dialog.getShell().setLocation(100, 300);
-		dialog.open();
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java
deleted file mode 100644
index 5ff3c25..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.forms.examples.internal.dialogs;
-
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.FormDialog;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.examples.internal.rcp.FreeFormPage;
-
-public class SampleFormDialog extends FormDialog {
-
-	public SampleFormDialog(Shell shell) {
-		super(shell);
-	}
-
-	public SampleFormDialog(IShellProvider parentShell) {
-		super(parentShell);
-	}
-
-	protected void createFormContent(IManagedForm mform) {
-		mform.getForm().setText("An example of a simple form dialog");
-		FreeFormPage.createSharedFormContent(mform);
-		mform.getForm().setBackgroundImage(null);
-		mform.getToolkit().decorateFormHeading(mform.getForm().getForm());
-		mform.getForm().setImage(
-				PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_OBJ_ELEMENT));
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ErrorMessagesPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ErrorMessagesPage.java
deleted file mode 100644
index 74ef0fa..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ErrorMessagesPage.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.IMessageManager;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-/**
- * This page shows how to use the message manager to handle errors in a form
- * page.
- * 
- * @since 3.3
- */
-public class ErrorMessagesPage extends FormPage {
-
-	/*
-	private RichMessageToolTipManager richToolTipMessageManager;
-	class RichToolTip extends ToolTip {
-		private IManagedForm mform;
-		private FormText text;
-		private String content;
-
-		public RichToolTip(IManagedForm mform, Control control) {
-			super(control);
-			this.mform = mform;
-			setShift(new Point(10, 10));
-		}
-
-		protected Composite createToolTipContentArea(Event event,
-				Composite parent) {
-			this.text = mform.getToolkit().createFormText(parent, true);
-			configureFormText(mform.getForm().getForm(), text);
-			update();
-			return text;
-		}
-
-		public void update(String content) {
-			if (content == null) {
-				// hide
-				deactivate();
-			} else {
-				activate();
-				this.content = content;
-				update();
-			}
-		}
-
-		private void update() {
-			if (text != null && text.isDisposed())
-				text = null;
-			if (text != null) {
-				if (content != null)
-					text.setText(content, true, false);
-				else
-					text.setText("", false, false);
-			}
-		}
-	}
-
-	class RichMessageToolTipManager implements IMessageToolTipManager {
-		private ArrayList toolTips = new ArrayList();
-		private IManagedForm mform;
-
-		public RichMessageToolTipManager(IManagedForm mform) {
-			this.mform = mform;
-		}
-
-		public void createToolTip(Control control, boolean imageLabel) {
-			ToolTip toolTip = new RichToolTip(mform, control);
-			toolTips.add(toolTip);
-		}
-
-		public void setActive(boolean active) {
-			for (int i = 0; i < toolTips.size(); i++) {
-				RichToolTip toolTip = (RichToolTip) toolTips.get(i);
-				if (active)
-					toolTip.activate();
-				else
-					toolTip.deactivate();
-			}
-		}
-
-		public void update() {
-			IMessage[] messages = mform.getForm().getForm()
-					.getChildrenMessages();
-			String content = mform.getForm().getMessage() == null ? null
-					: createFormTextContent(messages);
-			for (int i = 0; i < toolTips.size(); i++) {
-				RichToolTip toolTip = (RichToolTip) toolTips.get(i);
-				toolTip.update(content);
-			}
-		}
-	}
-	
-	*/
-
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public ErrorMessagesPage(FormEditor editor) {
-		super(editor, "messageManager", "Message Manager");
-	}
-
-	protected void createFormContent(final IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		final FormToolkit toolkit = managedForm.getToolkit();
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
-				HyperlinkSettings.UNDERLINE_HOVER);
-		form.setText("Example with message handling");
-		toolkit.decorateFormHeading(form.getForm());
-		form.getForm().addMessageHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				String title = e.getLabel();
-				// String details = title;
-				Object href = e.getHref();
-				if (href instanceof IMessage[]) {
-					// details =
-					// managedForm.getMessageManager().createSummary((IMessage[])href);
-				}
-				// int type = form.getForm().getMessageType();
-				/*
-				 * switch (type) { case IMessageProvider.NONE: case
-				 * IMessageProvider.INFORMATION:
-				 * MessageDialog.openInformation(form.getShell(), title,
-				 * details); break; case IMessageProvider.WARNING:
-				 * MessageDialog.openWarning(form.getShell(), title, details);
-				 * break; case IMessageProvider.ERROR:
-				 * MessageDialog.openError(form.getShell(), title, details);
-				 * break; }
-				 */
-				Point hl = ((Control) e.widget).toDisplay(0, 0);
-				hl.x += 10;
-				hl.y += 10;
-				Shell shell = new Shell(form.getShell(), SWT.ON_TOP | SWT.TOOL);
-				shell.setImage(getImage(form.getMessageType()));
-				shell.setText(title);
-				shell.setLayout(new FillLayout());
-				// ScrolledFormText stext = new ScrolledFormText(shell, false);
-				// stext.setBackground(toolkit.getColors().getBackground());
-				FormText text = toolkit.createFormText(shell, true);
-				configureFormText(form.getForm(), text);
-				// stext.setFormText(text);
-				if (href instanceof IMessage[])
-					text.setText(createFormTextContent((IMessage[]) href),
-							true, false);
-				shell.setLocation(hl);
-				// Point size = shell.computeSize(400, SWT.DEFAULT);
-				/*
-				richToolTipMessageManager.setActive(false);
-				shell.addDisposeListener(new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						richToolTipMessageManager.setActive(true);
-					}
-				});
-				*/
-				shell.pack();
-				shell.open();
-			}
-		});
-
-		//richToolTipMessageManager = new RichMessageToolTipManager(managedForm);
-		//form.getForm().setMessageToolTipManager(richToolTipMessageManager);
-
-		final IMessageManager mmng = managedForm.getMessageManager();
-
-		TableWrapLayout layout = new TableWrapLayout();
-		form.getBody().setLayout(layout);
-		Section section = toolkit.createSection(form.getBody(),
-				Section.TITLE_BAR);
-		section.setText("Local field messages");
-		Composite sbody = toolkit.createComposite(section);
-		section.setClient(sbody);
-		GridLayout glayout = new GridLayout();
-		glayout.horizontalSpacing = 10;
-		glayout.numColumns = 2;
-		sbody.setLayout(glayout);
-		toolkit.paintBordersFor(sbody);
-		createDecoratedTextField("Field1", toolkit, sbody, mmng);
-		createDecoratedTextField("Field2", toolkit, sbody, mmng);
-		createDecoratedTextField("Field3", toolkit, sbody, mmng);
-		final Button button1 = toolkit.createButton(form.getBody(),
-				"Add general error", SWT.CHECK);
-		button1.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (button1.getSelection()) {
-					mmng.addMessage("saveError", "Save Error", null,
-							IMessageProvider.ERROR);
-				} else {
-					mmng.removeMessage("saveError");
-				}
-			}
-		});
-		final Button button2 = toolkit.createButton(form.getBody(),
-				"Add static message", SWT.CHECK);
-		button2.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (button2.getSelection()) {
-					mmng.addMessage("info", "Secondary info", null,
-							IMessageProvider.NONE);
-				} else {
-					mmng.removeMessage("info");
-				}
-			}
-		});
-	}
-
-	private Image getImage(int type) {
-		switch (type) {
-		case IMessageProvider.ERROR:
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_ERROR_TSK);
-		case IMessageProvider.WARNING:
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_WARN_TSK);
-		case IMessageProvider.INFORMATION:
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_INFO_TSK);
-		}
-		return null;
-	}
-
-	private void configureFormText(final Form form, FormText text) {
-		text.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				String is = (String)e.getHref();
-				try {
-					int index = Integer.parseInt(is);
-					IMessage [] messages = form.getChildrenMessages();
-					IMessage message =messages[index];
-					Control c = message.getControl();
-					((FormText)e.widget).getShell().dispose();
-					if (c!=null)
-						c.setFocus();
-				}
-				catch (NumberFormatException ex) {
-				}
-			}
-		});
-		text.setImage("error", getImage(IMessageProvider.ERROR));
-		text.setImage("warning", getImage(IMessageProvider.WARNING));
-		text.setImage("info", getImage(IMessageProvider.INFORMATION));
-	}
-
-	String createFormTextContent(IMessage[] messages) {
-		StringWriter sw = new StringWriter();
-		PrintWriter pw = new PrintWriter(sw);
-		pw.println("<form>");
-		for (int i = 0; i < messages.length; i++) {
-			IMessage message = messages[i];
-			pw
-					.print("<li vspace=\"false\" style=\"image\" indent=\"16\" value=\"");
-			switch (message.getMessageType()) {
-			case IMessageProvider.ERROR:
-				pw.print("error");
-				break;
-			case IMessageProvider.WARNING:
-				pw.print("warning");
-				break;
-			case IMessageProvider.INFORMATION:
-				pw.print("info");
-				break;
-			}
-			pw.print("\"> <a href=\"");
-			pw.print(i+"");
-			pw.print("\">");
-			if (message.getPrefix() != null)
-				pw.print(message.getPrefix());
-			pw.print(message.getMessage());
-			pw.println("</a></li>");
-		}
-		pw.println("</form>");
-		pw.flush();
-		return sw.toString();
-	}
-
-	private void createDecoratedTextField(String label, FormToolkit toolkit,
-			Composite parent, final IMessageManager mmng) {
-		toolkit.createLabel(parent, label);
-		final Text text = toolkit.createText(parent, "");
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 150;
-		text.setLayoutData(gd);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				String s = text.getText();
-				// flag length
-				if (s.length() > 0 && s.length() <= 5) {
-					mmng.addMessage("textLength",
-							"Text is longer than 0 characters", null,
-							IMessageProvider.INFORMATION, text);
-				} else if (s.length() > 5 && s.length() <= 10) {
-					mmng.addMessage("textLength",
-							"Text is longer than 5 characters", null,
-							IMessageProvider.WARNING, text);
-				} else if (s.length() > 10) {
-					mmng.addMessage("textLength",
-							"Text is longer than 10 characters", null,
-							IMessageProvider.ERROR, text);
-				} else {
-					mmng.removeMessage("textLength", text);
-				}
-				// flag type
-				boolean badType = false;
-				for (int i = 0; i < s.length(); i++) {
-					if (!Character.isLetter(s.charAt(i))) {
-						badType = true;
-						break;
-					}
-				}
-				if (badType) {
-					mmng.addMessage("textType",
-							"Text must only contain letters", null,
-							IMessageProvider.ERROR, text);
-				} else {
-					mmng.removeMessage("textType", text);
-				}
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/FreeFormPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/FreeFormPage.java
deleted file mode 100644
index 1fb63d9..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/FreeFormPage.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-import java.io.*;
-import java.io.InputStream;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class FreeFormPage extends FormPage {
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public FreeFormPage(FormEditor editor) {
-		super(editor, "first", "First Page");
-	}
-	public static final void createSharedFormContent(IManagedForm managedForm) {
-		ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER);
-		form.setText("Free-form text with links");
-		form.setBackgroundImage(ExamplesPlugin.getDefault().getImage(ExamplesPlugin.IMG_FORM_BG));
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.leftMargin = 10;
-		layout.rightMargin = 10;
-		form.getBody().setLayout(layout);
-		TableWrapData td;
-		Hyperlink link = toolkit.createHyperlink(form.getBody(),
-				"Sample hyperlink with longer text.", SWT.WRAP);
-		link.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				try {
-					Thread.sleep(1000);
-				} catch (InterruptedException ex) {
-				}
-			}
-		});
-		td = new TableWrapData();
-		td.align = TableWrapData.LEFT;
-		link.setLayoutData(td);
-		createExpandable(form, toolkit);
-		createFormTextSection(form, toolkit);
-	}
-	
-	protected void createFormContent(IManagedForm managedForm) {
-		createSharedFormContent(managedForm);
-	}
-	private static void createExpandable(final ScrolledForm form, final FormToolkit toolkit) {
-		final ExpandableComposite exp = toolkit.createExpandableComposite(form
-				.getBody(), ExpandableComposite.TREE_NODE
-		//	ExpandableComposite.NONE
-				);
-		exp.setActiveToggleColor(toolkit.getHyperlinkGroup()
-				.getActiveForeground());
-		exp.setToggleColor(toolkit.getColors().getColor(IFormColors.SEPARATOR));
-		Composite client = toolkit.createComposite(exp);
-		exp.setClient(client);
-		TableWrapLayout elayout = new TableWrapLayout();
-		client.setLayout(elayout);
-		elayout.leftMargin = elayout.rightMargin = 0;
-		final Button button = toolkit.createButton(client, "Button", SWT.PUSH);
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				//openFormWizard(button.getShell(), toolkit.getColors());
-			}
-		});
-		exp.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(true);
-			}
-		});
-		exp.setText("Expandable Section with a longer title");
-		TableWrapData td = new TableWrapData();
-		//td.colspan = 2;
-		td.align = TableWrapData.LEFT;
-		//td.align = TableWrapData.FILL;
-		exp.setLayoutData(td);
-	}
-	
-	private static void createFormTextSection(final ScrolledForm form, FormToolkit toolkit) {
-		Section section =
-			toolkit.createSection(
-				form.getBody(),
-				Section.TWISTIE | Section.DESCRIPTION);
-		section.setActiveToggleColor(
-			toolkit.getHyperlinkGroup().getActiveForeground());
-		section.setToggleColor(
-			toolkit.getColors().getColor(IFormColors.SEPARATOR));
-		toolkit.createCompositeSeparator(section);
-		FormText rtext = toolkit.createFormText(section, false);
-		section.setClient(rtext);
-		loadFormText(rtext, toolkit);
-
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(false);
-			}
-		});
-
-		section.setText("Section title");
-		section.setDescription(
-		"This is a section description that should be rendered below the separator.");
-		TableWrapData td = new TableWrapData();
-		td.align = TableWrapData.FILL;
-		td.grabHorizontal = true;
-		section.setLayoutData(td);
-	}
-
-	private static void loadFormText(final FormText rtext, FormToolkit toolkit) {
-		rtext.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				MessageDialog.openInformation(rtext.getShell(), "Eclipse Forms", 
-				"Link activated: href=" + e.getHref());
-			}
-		});
-		rtext.setHyperlinkSettings(toolkit.getHyperlinkGroup());
-		rtext.setImage("image1", ExamplesPlugin.getDefault().getImage(ExamplesPlugin.IMG_LARGE));
-		createCompositeControl(rtext, toolkit);
-		createControl(rtext, toolkit);
-		Menu menu = new Menu(rtext);
-		final MenuItem item = new MenuItem(menu, SWT.PUSH);
-		item.setText("&Copy");
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				rtext.copy();
-			}
-		});
-		//rtext.setMenu(menu);
-		item.setEnabled(false);
-		rtext.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				item.setEnabled(rtext.canCopy());
-			}
-		});
-		InputStream is = FreeFormPage.class.getResourceAsStream("index.xml");
-		if (is!=null) {
-			rtext.setContents(is, true);
-			try {
-				is.close();
-			}
-			catch (IOException e) {
-			}
-		}
-	}
-	private static void createControl(FormText ftext, FormToolkit toolkit) {
-		TreeNode node = new TreeNode(ftext, SWT.NULL);
-		toolkit.adapt(node, true, true);
-		ftext.setControl("node", node);
-	}
-	private static void createCompositeControl(FormText ftext, FormToolkit toolkit) {
-		Composite comp = toolkit.createComposite(ftext);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		comp.setLayout(layout);
-		toolkit.createLabel(comp, "Sample text:");
-		Text text = toolkit.createText(comp, "");
-		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		toolkit.createButton(comp, "Browse...", SWT.PUSH);
-		ftext.setControl("control1", comp);
-		toolkit.paintBordersFor(comp);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/HeadlessPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/HeadlessPage.java
deleted file mode 100644
index 20814f1..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/HeadlessPage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class HeadlessPage extends FormPage {
-	private int count;
-
-	public HeadlessPage(FormEditor editor, int count) {
-		super(editor, "page"+count, "Page "+count);
-		this.count = count;
-	}
-	
-	protected void createFormContent(IManagedForm managedForm) {
-		FormToolkit toolkit = managedForm.getToolkit();
-		Composite body = managedForm.getForm().getBody();
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 4;
-		body.setLayout(layout);
-		Label label = toolkit.createLabel(body, "The content of the headless page #"+count);
-		GridData gd = new GridData();
-		gd.horizontalSpan = 4;
-		label.setLayoutData(gd);
-		for (int i=0; i<80; i++) {
-			toolkit.createLabel(body, "Field "+i);
-			Text text = toolkit.createText(body, null);
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-			text.setLayoutData(gd);
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/IModelListener.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/IModelListener.java
deleted file mode 100644
index 8b432f4..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/IModelListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public interface IModelListener {
-	String ADDED="__added";
-	String REMOVED="__removed";
-	String CHANGED = "__changed";
-	void modelChanged(Object[] objects, String type, String property);
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NamedObject.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NamedObject.java
deleted file mode 100644
index d62aa84..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NamedObject.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-/**
- *
- */
-public	class NamedObject {
-	private String name;
-	protected SimpleModel model;
-	
-	public NamedObject(String name) {
-		this.name = name;
-	}
-	public void setModel(SimpleModel model) {
-		this.model = model;
-	}
-	public String getName() {
-		return name;
-	}
-	public String toString() {
-		return getName();
-	}
-	public void setName(String name) {
-		this.name = name;
-		model.fireModelChanged(new Object [] {this}, IModelListener.CHANGED, "");
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java
deleted file mode 100644
index 9de269c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java
+++ /dev/null
@@ -1,504 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ControlContribution;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTargetAdapter;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class NewStylePage extends FormPage {
-	private static final String SHORT_TITLE = "Short Title";
-	private static final String LONG_TITLE = "This title is somewhat longer";
-	private static final String SHORT_MESSAGE = "A short {0} message";
-	private static final String LONG_MESSAGE = "This {0} message is longer and will also compete with other header regions";
-	private static final String[] MESSAGE_NAMES = { "text", "info", "warning",
-			"error" };
-
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public NewStylePage(FormEditor editor) {
-		super(editor, "newStyle", "New Style");
-	}
-
-	protected void createFormContent(IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		final FormToolkit toolkit = managedForm.getToolkit();
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
-				HyperlinkSettings.UNDERLINE_HOVER);
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = 10;
-		layout.marginWidth = 6;
-		layout.horizontalSpacing = 20;
-		form.getBody().setLayout(layout);
-
-		Section section = toolkit.createSection(form.getBody(),
-				ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE
-						| ExpandableComposite.EXPANDED);
-		Composite client = toolkit.createComposite(section);
-		section.setClient(client);
-		section.setText("Header features");
-		section
-				.setDescription("Use the switches below to control basic heading parameters.");
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(gd);
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		client.setLayout(layout);
-		final Button tbutton = toolkit.createButton(client, "Add title",
-				SWT.CHECK);
-		final Button sbutton = toolkit.createButton(client, "Short title",
-				SWT.RADIO);
-		sbutton.setSelection(true);
-		sbutton.setEnabled(false);
-		gd = new GridData();
-		gd.horizontalIndent = 10;
-		sbutton.setLayoutData(gd);
-		final Button lbutton = toolkit.createButton(client, "Long title",
-				SWT.RADIO);
-		gd = new GridData();
-		gd.horizontalIndent = 10;
-		lbutton.setLayoutData(gd);
-		lbutton.setEnabled(false);
-		tbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateTitle(form, tbutton.getSelection(), sbutton
-						.getSelection());
-				sbutton.setEnabled(tbutton.getSelection());
-				lbutton.setEnabled(tbutton.getSelection());
-			}
-		});
-		sbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateTitle(form, tbutton.getSelection(), sbutton
-						.getSelection());
-			}
-		});
-		lbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateTitle(form, tbutton.getSelection(), sbutton
-						.getSelection());
-			}
-		});
-		final Button ibutton = toolkit.createButton(client, "Add image",
-				SWT.CHECK);
-		ibutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateImage(form, ibutton.getSelection());
-			}
-		});
-
-		final Button tbbutton = toolkit.createButton(client, "Add tool bar",
-				SWT.CHECK);
-		
-		final Button albutton = toolkit.createButton(client, "Set tool bar allignment to SWT.BOTTOM",
-				SWT.CHECK);
-		albutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.getForm().setToolBarVerticalAlignment(albutton.getSelection()?SWT.BOTTOM:SWT.TOP);
-				form.reflow(true);
-			}
-		});
-		gd = new GridData();
-		gd.horizontalIndent = 10;
-		albutton.setLayoutData(gd);
-		albutton.setEnabled(false);
-		tbbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addToolBar(toolkit, form, tbbutton.getSelection());
-				albutton.setEnabled(tbbutton.getSelection());
-			}
-		});
-
-		final Button gbutton = toolkit.createButton(client,
-				"Paint background gradient", SWT.CHECK);
-		gbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addHeadingGradient(toolkit, form, gbutton.getSelection());
-			}
-		});
-
-		final Button clbutton = toolkit.createButton(client, "Add head client",
-				SWT.CHECK);
-		clbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addHeadClient(toolkit, form, clbutton.getSelection());
-			}
-		});
-
-		final Button mbutton = toolkit.createButton(client,
-				"Add drop-down menu", SWT.CHECK);
-		mbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addMenu(toolkit, form, mbutton.getSelection());
-			}
-		});
-
-		final Button dbutton = toolkit.createButton(client, "Add drag support",
-				SWT.CHECK);
-		dbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (dbutton.getSelection()) {
-					addDragSupport(form);
-					dbutton.setEnabled(false);
-				}
-			}
-		});
-
-		section = toolkit.createSection(form.getBody(),
-				ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE
-						| ExpandableComposite.EXPANDED);
-		client = toolkit.createComposite(section);
-		section.setClient(client);
-		section.setText("Messages and active state");
-		section
-				.setDescription("Use the buttons below to control messages and active state.");
-		gd = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(gd);
-
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 4;
-		client.setLayout(layout);
-
-		final Button shortMessage = toolkit.createButton(client,
-				"Short message", SWT.RADIO);
-		shortMessage.setSelection(true);
-		gd = new GridData();
-		gd.horizontalSpan = 4;
-		shortMessage.setLayoutData(gd);
-		final Button longMessage = toolkit.createButton(client, "Long message",
-				SWT.RADIO);
-		gd = new GridData();
-		gd.horizontalSpan = 4;
-		longMessage.setLayoutData(gd);
-
-		final IHyperlinkListener listener = new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				String title = e.getLabel();
-				String details = (String)e.getHref();
-				if (details==null) {
-					details = title;
-					title = null;
-				}
-				switch (form.getForm().getMessageType()) {
-				case IMessageProvider.NONE:
-				case IMessageProvider.INFORMATION:
-					if (title==null)
-						title = "Forms Information";
-					MessageDialog.openInformation(form.getShell(), title, details);
-					break;
-				case IMessageProvider.WARNING:
-					if (title==null)
-						title = "Forms Warning";
-					MessageDialog.openWarning(form.getShell(), title, details);
-					break;
-				case IMessageProvider.ERROR:
-					if (title==null)
-						title = "Forms Error";
-					MessageDialog.openError(form.getShell(), title, details);
-					break;
-				}
-			}
-		};
-
-		final Button hyperMessage = toolkit.createButton(client,
-				"Message as hyperlink", SWT.CHECK);
-		gd = new GridData();
-		gd.horizontalSpan = 4;
-		hyperMessage.setLayoutData(gd);
-		hyperMessage.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (hyperMessage.getSelection())
-					form.getForm().addMessageHyperlinkListener(listener);
-				else
-					form.getForm().removeMessageHyperlinkListener(listener);
-			}
-		});
-
-		shortMessage.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(form.getMessageType(),
-						longMessage.getSelection()), form.getMessageType());
-			}
-		});
-		longMessage.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(form.getMessageType(),
-						longMessage.getSelection()), form.getMessageType());
-			}
-		});
-
-		Button error = toolkit.createButton(client, "Error", SWT.PUSH);
-		error.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(IMessageProvider.ERROR,
-						longMessage.getSelection()), IMessageProvider.ERROR);
-
-			}
-		});
-		Button warning = toolkit.createButton(client, "Warning", SWT.PUSH);
-		warning.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(IMessageProvider.WARNING,
-						longMessage.getSelection()), IMessageProvider.WARNING);
-			}
-		});
-		Button info = toolkit.createButton(client, "Info", SWT.PUSH);
-		info.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(IMessageProvider.INFORMATION,
-						longMessage.getSelection()),
-						IMessageProvider.INFORMATION);
-			}
-		});
-		Button cancel = toolkit.createButton(client, "Cancel", SWT.PUSH);
-		cancel.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(null, 0);
-			}
-		});
-
-		final Button busy = toolkit.createButton(client, "Start Progress",
-				SWT.PUSH);
-		busy.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				// IWorkbenchSiteProgressService service =
-				// (IWorkbenchSiteProgressService)getSite().getAdapter(IWorkbenchSiteProgressService.class);
-
-				if (form.getForm().isBusy()) {
-					form.getForm().setBusy(false);
-					busy.setText("Start Progress");
-				} else {
-					form.getForm().setBusy(true);
-					busy.setText("Stop Progress");
-				}
-			}
-		});
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		busy.setLayoutData(gd);
-	}
-
-	private void addHeadingGradient(FormToolkit toolkit, ScrolledForm form,
-			boolean add) {
-		FormColors colors = toolkit.getColors();
-		Color top = colors.getColor(IFormColors.H_GRADIENT_END);
-		Color bot = colors.getColor(IFormColors.H_GRADIENT_START);
-		if (add)
-			form.getForm().setTextBackground(new Color[] { top, bot },
-					new int[] { 100 }, true);
-		else {
-			form.getForm().setTextBackground(null, null, false);
-			form.getForm().setBackground(colors.getBackground());
-		}
-		form.getForm().setHeadColor(IFormColors.H_BOTTOM_KEYLINE1,
-				add ? colors.getColor(IFormColors.H_BOTTOM_KEYLINE1) : null);
-		form.getForm().setHeadColor(IFormColors.H_BOTTOM_KEYLINE2,
-				add ? colors.getColor(IFormColors.H_BOTTOM_KEYLINE2) : null);
-		form.getForm().setHeadColor(IFormColors.H_HOVER_LIGHT,
-				add ? colors.getColor(IFormColors.H_HOVER_LIGHT) : null);
-		form.getForm().setHeadColor(IFormColors.H_HOVER_FULL,
-				add ? colors.getColor(IFormColors.H_HOVER_FULL) : null);
-		form.getForm().setHeadColor(IFormColors.TB_TOGGLE,
-				add ? colors.getColor(IFormColors.TB_TOGGLE) : null);
-		form.getForm().setHeadColor(IFormColors.TB_TOGGLE_HOVER,
-				add ? colors.getColor(IFormColors.TB_TOGGLE_HOVER) : null);
-		form.getForm().setSeparatorVisible(add);
-		form.reflow(true);
-		form.redraw();
-	}
-
-	private String getErrorMessage(int type, boolean longMessage) {
-		String name = MESSAGE_NAMES[type];
-		if (longMessage)
-			return MessageFormat.format(LONG_MESSAGE, new Object[] { name });
-		else
-			return MessageFormat.format(SHORT_MESSAGE, new Object[] { name });
-	}
-
-	private void updateTitle(ScrolledForm form, boolean addTitle,
-			boolean shortTitle) {
-		if (addTitle) {
-			String text = shortTitle ? SHORT_TITLE : LONG_TITLE;
-			form.setText(text);
-		} else {
-			form.setText(null);
-		}
-	}
-
-	private void updateImage(ScrolledForm form, boolean addImage) {
-		if (addImage)
-			form.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_DEF_VIEW));
-		else
-			form.setImage(null);
-	}
-
-	private void addToolBar(FormToolkit toolkit, ScrolledForm form, boolean add) {
-		if (add) {
-			Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
-				public void run() {
-				}
-			};
-			haction.setChecked(true);
-			haction.setToolTipText("Horizontal orientation");
-			haction.setImageDescriptor(ExamplesPlugin.getDefault()
-					.getImageRegistry().getDescriptor(
-							ExamplesPlugin.IMG_HORIZONTAL));
-			Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
-				public void run() {
-				}
-			};
-			vaction.setChecked(false);
-			vaction.setToolTipText("Vertical orientation");
-			vaction.setImageDescriptor(ExamplesPlugin.getDefault()
-					.getImageRegistry().getDescriptor(
-							ExamplesPlugin.IMG_VERTICAL));
-			ControlContribution save = new ControlContribution("save") {
-				protected Control createControl(Composite parent) {
-					Button saveButton = new Button(parent, SWT.PUSH);
-					saveButton.setText("Save");
-					return saveButton;
-				}
-			};
-			form.getToolBarManager().add(haction);
-			form.getToolBarManager().add(vaction);
-			form.getToolBarManager().add(save);
-			form.getToolBarManager().update(true);
-		} else {
-			form.getToolBarManager().removeAll();
-		}
-		form.reflow(true);
-	}
-
-	private void addMenu(FormToolkit toolkit, ScrolledForm form, boolean add) {
-		if (add) {
-			Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
-				public void run() {
-				}
-			};
-			haction.setChecked(true);
-			haction.setText("Horizontal");
-			haction.setToolTipText("Horizontal orientation");
-			haction.setImageDescriptor(ExamplesPlugin.getDefault()
-					.getImageRegistry().getDescriptor(
-							ExamplesPlugin.IMG_HORIZONTAL));
-			Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
-				public void run() {
-				}
-			};
-			vaction.setChecked(false);
-			vaction.setText("Vertical");
-			vaction.setToolTipText("Vertical orientation");
-			vaction.setImageDescriptor(ExamplesPlugin.getDefault()
-					.getImageRegistry().getDescriptor(
-							ExamplesPlugin.IMG_VERTICAL));
-			form.getForm().getMenuManager().add(haction);
-			form.getForm().getMenuManager().add(vaction);
-		} else {
-			form.getForm().getMenuManager().removeAll();
-		}
-		form.reflow(true);
-	}
-
-	private void addHeadClient(FormToolkit toolkit, ScrolledForm form,
-			boolean add) {
-		if (add) {
-			Composite headClient = new Composite(form.getForm().getHead(),
-					SWT.NULL);
-			GridLayout glayout = new GridLayout();
-			glayout.marginWidth = glayout.marginHeight = 0;
-			glayout.numColumns = 3;
-			headClient.setLayout(glayout);
-			Text t = new Text(headClient, toolkit.getBorderStyle());
-			t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			new Combo(headClient, SWT.NULL);
-			new Combo(headClient, SWT.NULL);
-			toolkit.paintBordersFor(headClient);
-			form.setHeadClient(headClient);
-		} else {
-			Control client = form.getForm().getHeadClient();
-			if (client != null) {
-				client.dispose();
-				form.setHeadClient(null);
-			}
-		}
-	}
-
-	private void addDragSupport(final ScrolledForm form) {
-		int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
-		Transfer[] transferTypes = { TextTransfer.getInstance() };
-		form.getForm().addTitleDragSupport(operations, transferTypes,
-				new DragSourceListener() {
-					public void dragFinished(DragSourceEvent event) {
-					}
-
-					public void dragSetData(DragSourceEvent event) {
-						event.data = form.getForm().getText();
-					}
-
-					public void dragStart(DragSourceEvent event) {
-						event.doit = true;
-					}
-				});
-		form.getForm().addTitleDropSupport(operations, transferTypes,
-				new DropTargetAdapter() {
-				});
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java
deleted file mode 100644
index 91af481..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.forms.examples.internal.OpenFormEditorAction;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class OpenSimpleFormEditorAction extends OpenFormEditorAction {
-	
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
-		return openEditor(new SimpleFormEditorInput("Simple Editor"), "org.eclipse.ui.forms.examples.base-editor", window);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSingleHeaderEditorAction.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSingleHeaderEditorAction.java
deleted file mode 100644
index 27d3c8b..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSingleHeaderEditorAction.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.forms.examples.internal.OpenFormEditorAction;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class OpenSingleHeaderEditorAction extends OpenFormEditorAction {
-	
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
-		return openEditor(new SimpleFormEditorInput("Single Header Editor"),
-				"org.eclipse.ui.forms.examples.single-header-editor", window);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/PageWithSubPages.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/PageWithSubPages.java
deleted file mode 100644
index 7aa310b..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/PageWithSubPages.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-/**
- *
- */
-public class PageWithSubPages extends FormPage {
-	private CTabFolder tabFolder;
-	private Text text;
-	
-	class TextSection {
-		String text;
-		public TextSection(String text) {this.text = text;}
-	}
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public PageWithSubPages(FormEditor editor) {
-		super(editor, "composite", "Composite Page");
-	}
-	protected void createFormContent(IManagedForm managedForm) {
-		ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		form.setText("Form with subpages");
-		form.setBackgroundImage(ExamplesPlugin.getDefault().getImage(
-				ExamplesPlugin.IMG_FORM_BG));
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 10;
-		form.getBody().setLayout(layout);
-		tabFolder = new CTabFolder(form.getBody(), SWT.FLAT|SWT.TOP);
-		toolkit.adapt(tabFolder, true, true);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint = 0;
-		tabFolder.setLayoutData(gd);
-		Color selectedColor = toolkit.getColors().getColor(IFormColors.SEPARATOR);
-		tabFolder.setSelectionBackground(new Color[] {selectedColor, toolkit.getColors().getBackground()}, new int[] {50});
-		//tabFolder.setCursor(FormsResources.getHandCursor());
-
-		toolkit.paintBordersFor(tabFolder);
-		createTabs(toolkit);
-		createText(toolkit, form.getBody());
-		tabFolder.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateSelection();
-			}
-		});
-		tabFolder.setSelection(0);
-		updateSelection();		
-	}
-	private void createTabs(FormToolkit toolkit) {
-		createTab(toolkit, "Copyright", "Copyright 2004 IBM and others.");
-		createTab(toolkit, "License Agreement", "LICENSE AGREEMENT\n\nUse this feature any way you want.");
-		createTab(toolkit, "Description", "A simple description of the feature");
-	}
-	private void createText(FormToolkit toolkit, Composite parent) {
-		Composite tabContent = toolkit.createComposite(parent);
-		tabContent.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout();
-		tabContent.setLayout(layout);
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		GridData gd;
-		text = toolkit.createText(tabContent, "", SWT.MULTI|SWT.WRAP);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.verticalSpan = 2;
-		text.setLayoutData(gd);
-		Button apply = toolkit.createButton(tabContent, "Apply", SWT.PUSH);
-		apply.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL|GridData.VERTICAL_ALIGN_BEGINNING));
-		Button reset = toolkit.createButton(tabContent, "Reset", SWT.PUSH);
-		reset.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL|GridData.VERTICAL_ALIGN_BEGINNING));
-	}
-	private void updateSelection() {
-		CTabItem item = tabFolder.getSelection();
-		TextSection section = (TextSection)item.getData();
-		text.setText(section.text);
-	}
-	private void createTab(FormToolkit toolkit, String title, String content) {
-		CTabItem item = new CTabItem(tabFolder, SWT.NULL);
-		TextSection section = new TextSection(content);
-		item.setText(title);
-		item.setData(section);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesBlock.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesBlock.java
deleted file mode 100644
index f25a613..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesBlock.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-/**
- *
- */
-public class ScrolledPropertiesBlock extends MasterDetailsBlock {
-	private FormPage page;
-	public ScrolledPropertiesBlock(FormPage page) {
-		this.page = page;
-	}
-	/**
-	 * @param id
-	 * @param title
-	 */
-	class MasterContentProvider implements IStructuredContentProvider {
-		public Object[] getElements(Object inputElement) {
-			if (inputElement instanceof SimpleFormEditorInput) {
-				SimpleFormEditorInput input = (SimpleFormEditorInput) page
-						.getEditor().getEditorInput();
-				return input.getModel().getContents();
-			}
-			return new Object[0];
-		}
-		public void dispose() {
-		}
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-	class MasterLabelProvider extends LabelProvider
-			implements
-				ITableLabelProvider {
-		public String getColumnText(Object obj, int index) {
-			return obj.toString();
-		}
-		public Image getColumnImage(Object obj, int index) {
-			if (obj instanceof TypeOne) {
-				return PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_OBJ_ELEMENT);
-			}
-			if (obj instanceof TypeTwo) {
-				return PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_OBJ_FILE);
-			}
-			return null;
-		}
-	}
-	protected void createMasterPart(final IManagedForm managedForm,
-			Composite parent) {
-		//final ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		Section section = toolkit.createSection(parent, Section.DESCRIPTION);
-		section.setText("Model Objects");
-		section
-				.setDescription("The list contains objects from the model whose details are editable on the right");
-		section.marginWidth = 10;
-		section.marginHeight = 5;
-		toolkit.createCompositeSeparator(section);
-		Composite client = toolkit.createComposite(section, SWT.WRAP);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 2;
-		layout.marginHeight = 2;
-		client.setLayout(layout);
-		Table t = toolkit.createTable(client, SWT.NULL);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.heightHint = 20;
-		gd.widthHint = 100;
-		t.setLayoutData(gd);
-		toolkit.paintBordersFor(client);
-		Button b = toolkit.createButton(client, "Add...", SWT.PUSH);
-		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		b.setLayoutData(gd);
-		section.setClient(client);
-		final SectionPart spart = new SectionPart(section);
-		managedForm.addPart(spart);
-		TableViewer viewer = new TableViewer(t);
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				managedForm.fireSelectionChanged(spart, event.getSelection());
-			}
-		});
-		viewer.setContentProvider(new MasterContentProvider());
-		viewer.setLabelProvider(new MasterLabelProvider());
-		viewer.setInput(page.getEditor().getEditorInput());
-	}
-	protected void createToolBarActions(IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
-			public void run() {
-				sashForm.setOrientation(SWT.HORIZONTAL);
-				form.reflow(true);
-			}
-		};
-		haction.setChecked(true);
-		haction.setToolTipText("Horizontal orientation");
-		haction.setImageDescriptor(ExamplesPlugin.getDefault()
-				.getImageRegistry()
-				.getDescriptor(ExamplesPlugin.IMG_HORIZONTAL));
-		Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
-			public void run() {
-				sashForm.setOrientation(SWT.VERTICAL);
-				form.reflow(true);
-			}
-		};
-		vaction.setChecked(false);
-		vaction.setToolTipText("Vertical orientation");
-		vaction.setImageDescriptor(ExamplesPlugin.getDefault()
-				.getImageRegistry().getDescriptor(ExamplesPlugin.IMG_VERTICAL));
-		form.getToolBarManager().add(haction);
-		form.getToolBarManager().add(vaction);
-	}
-	protected void registerPages(DetailsPart detailsPart) {
-		detailsPart.registerPage(TypeOne.class, new TypeOneDetailsPage());
-		detailsPart.registerPage(TypeTwo.class, new TypeTwoDetailsPage());
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesPage.java
deleted file mode 100644
index e8f0239..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesPage.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class ScrolledPropertiesPage extends FormPage {
-	private ScrolledPropertiesBlock block;
-	public ScrolledPropertiesPage(FormEditor editor) {
-		super(editor, "fourth", "Master Details");
-		block = new ScrolledPropertiesBlock(this);
-	}
-	protected void createFormContent(final IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		//FormToolkit toolkit = managedForm.getToolkit();
-		form.setText("Form with scrolled sections");
-		form.setBackgroundImage(ExamplesPlugin.getDefault().getImage(
-				ExamplesPlugin.IMG_FORM_BG));
-		block.createContent(managedForm);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java
deleted file mode 100644
index 199bcfb..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class SecondPage extends FormPage {
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public SecondPage(FormEditor editor) {
-		super(editor, "second", "Section Page");
-	}
-
-	protected void createFormContent(IManagedForm managedForm) {
-		ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		form.setText("Title for the second page");
-		form.setBackgroundImage(ExamplesPlugin.getDefault().getImage(
-				ExamplesPlugin.IMG_FORM_BG));
-		GridLayout layout = new GridLayout();
-		layout.makeColumnsEqualWidth = true;
-		layout.numColumns = 2;
-		form.getBody().setLayout(layout);
-		//This call is needed because the section will compute
-		// the bold version based on the parent.
-		Dialog.applyDialogFont(form.getBody());
-		Section s1 = createTableSection(form, toolkit, "First Table Section", true);
-		Section s2 = createTableSection(form, toolkit, "Second Table Section", false);
-		// This call is needed for all the children
-		Dialog.applyDialogFont(form.getBody());
-		s2.descriptionVerticalSpacing = s1.getTextClientHeightDifference();
-		form.reflow(true);
-	}
-
-	private Section createTableSection(final ScrolledForm form,
-			FormToolkit toolkit, String title, boolean addTextClient) {
-		Section section = toolkit.createSection(form.getBody(), Section.TWISTIE
-				| Section.TITLE_BAR);
-		section.setActiveToggleColor(toolkit.getHyperlinkGroup()
-				.getActiveForeground());
-		section.setToggleColor(toolkit.getColors().getColor(
-				IFormColors.SEPARATOR));
-		if (addTextClient) {
-			ToolBar tbar = new ToolBar(section, SWT.FLAT | SWT.HORIZONTAL);
-			ToolItem titem = new ToolItem(tbar, SWT.NULL);
-			titem.setImage(PlatformUI.getWorkbench().getSharedImages()
-					.getImage(ISharedImages.IMG_TOOL_CUT));
-			titem = new ToolItem(tbar, SWT.PUSH);
-			titem.setImage(PlatformUI.getWorkbench().getSharedImages()
-					.getImage(ISharedImages.IMG_TOOL_COPY));
-			titem = new ToolItem(tbar, SWT.SEPARATOR);
-			titem = new ToolItem(tbar, SWT.PUSH);
-			titem.setImage(PlatformUI.getWorkbench().getSharedImages()
-					.getImage(ISharedImages.IMG_TOOL_DELETE));
-			section.setTextClient(tbar);
-		}
-		FormText description = toolkit.createFormText(section, false);
-		description
-				.setText(
-						"<form><p>This description uses FormText widget and as a result can have <b>bold</b> text.</p></form>",
-						true, false);
-		section.setDescriptionControl(description);
-
-		Composite client = toolkit.createComposite(section, SWT.WRAP);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-
-		client.setLayout(layout);
-		Table t = toolkit.createTable(client, SWT.NULL);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.heightHint = 200;
-		gd.widthHint = 100;
-		t.setLayoutData(gd);
-		toolkit.paintBordersFor(client);
-		Button b = toolkit.createButton(client, "Add...", SWT.PUSH);
-		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		b.setLayoutData(gd);
-		section.setText(title);
-		section
-				.setDescription("<form><p>This section has a <b>tree</b> and a button. It also has <a>a link</a> in the description.</p></form>");
-		section.setClient(client);
-		section.setExpanded(true);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(false);
-			}
-		});
-		gd = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(gd);
-		return section;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java
deleted file mode 100644
index 94c95e7..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-/**
- * A simple multi-page form editor that uses Eclipse Forms support.
- * Example plug-in is configured to create one instance of
- * form colors that is shared between multiple editor instances.
- */
-public class SimpleFormEditor extends FormEditor {
-	/**
-	 *  
-	 */
-	public SimpleFormEditor() {
-	}
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.ui.forms.editor.FormEditor#createToolkit(org.eclipse.swt.widgets.Display)
-	 */
-	protected FormToolkit createToolkit(Display display) {
-		// Create a toolkit that shares colors between editors.
-		return new FormToolkit(ExamplesPlugin.getDefault().getFormColors(
-				display));
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
-	 */
-	protected void addPages() {
-		try {
-		addPage(new NewStylePage(this));
-		addPage(new ErrorMessagesPage(this));
-		addPage(new FreeFormPage(this));
-		addPage(new SecondPage(this));
-		int index = addPage(new Composite(getContainer(), SWT.NULL));
-		setPageText(index, "Composite");
-		addPage(new ThirdPage(this));
-		addPage(new ScrolledPropertiesPage(this));
-		addPage(new PageWithSubPages(this));
-		}
-		catch (PartInitException e) {
-			//
-		}
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditorInput.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditorInput.java
deleted file mode 100644
index b2fd6af..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditorInput.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-import org.eclipse.ui.forms.examples.internal.FormEditorInput;
-
-public class SimpleFormEditorInput extends FormEditorInput {
-	private SimpleModel model;
-	
-	public SimpleFormEditorInput(String name) {
-		super(name);
-		model = new SimpleModel();
-	}
-	
-	public SimpleModel getModel() {
-		return model;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleModel.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleModel.java
deleted file mode 100644
index ba1ceab..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleModel.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-import java.util.ArrayList;
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class SimpleModel {
-	private ArrayList modelListeners;
-	private ArrayList objects;
-	public SimpleModel() {
-		modelListeners = new ArrayList();
-		initialize();
-	}
-	public void addModelListener(IModelListener listener) {
-		if (!modelListeners.contains(listener))
-			modelListeners.add(listener);
-	}
-	public void removeModelListener(IModelListener listener) {
-		modelListeners.remove(listener);
-	}
-	public void fireModelChanged(Object[] objects, String type, String property) {
-		for (int i = 0; i < modelListeners.size(); i++) {
-			((IModelListener) modelListeners.get(i)).modelChanged(objects,
-					type, property);
-		}
-	}
-	public Object[] getContents() {
-		return objects.toArray();
-	}
-	private void initialize() {
-		objects = new ArrayList();
-		NamedObject[] objects = {
-				new TypeOne("TypeOne instance 1", 2, true, "Some text"),
-				new TypeOne("TypeOne instance 2", 1, false, "Different text"),
-				new TypeOne("TypeOne instance 3", 3, true, "Text"),
-				new TypeOne("TypeOne instance 4", 0, false, "Longer text"),
-				new TypeOne("TypeOne instance 5", 1, true, "Sample"),
-				new TypeTwo("TypeTwo instance 1", false, true),
-				new TypeTwo("TypeTwo instance 2", true, false)};
-		add(objects, false);
-	}
-	public void add(NamedObject[] objs, boolean notify) {
-		for (int i = 0; i < objs.length; i++) {
-			objects.add(objs[i]);
-			objs[i].setModel(this);
-		}
-		if (notify)
-			fireModelChanged(objs, IModelListener.ADDED, "");
-	}
-	public void remove(NamedObject[] objs, boolean notify) {
-		for (int i = 0; i < objs.length; i++) {
-			objects.remove(objs[i]);
-			objs[i].setModel(null);
-		}
-		if (notify)
-			fireModelChanged(objs, IModelListener.REMOVED, "");
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java
deleted file mode 100644
index 7245743..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ControlContribution;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.SharedHeaderFormEditor;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * A form editor that has several pages but only one stable header.
- */
-public class SingleHeaderEditor extends SharedHeaderFormEditor {
-	/**
-	 * 
-	 */
-	public SingleHeaderEditor() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#createToolkit(org.eclipse.swt.widgets.Display)
-	 */
-	protected FormToolkit createToolkit(Display display) {
-		// Create a toolkit that shares colors between editors.
-		return new FormToolkit(ExamplesPlugin.getDefault().getFormColors(
-				display));
-	}
-
-	protected void createHeaderContents(IManagedForm headerForm) {
-		final ScrolledForm sform = headerForm.getForm();
-		//sform.setText("Shared header for all the pages");
-		getToolkit().decorateFormHeading(sform.getForm());
-		addToolBar(sform.getForm());
-		sform.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-				ISharedImages.IMG_OBJ_FILE));
-		headerForm.getForm().getDisplay().timerExec(5000, new Runnable() {
-			public void run() {
-				sform.setText("<Another text>");
-			}
-		});
-		//sform.setMessage("Static text", 0);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
-	 */
-	protected void addPages() {
-		try {
-			addPage(new HeadlessPage(this, 1));
-			addPage(new HeadlessPage(this, 2));
-			addPage(new HeadlessPage(this, 3));
-		} catch (PartInitException e) {
-			//
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	private void addToolBar(Form form) {
-		Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
-			public void run() {
-			}
-		};
-		haction.setChecked(true);
-		haction.setToolTipText("Horizontal orientation");
-		haction.setImageDescriptor(ExamplesPlugin.getDefault()
-				.getImageRegistry()
-				.getDescriptor(ExamplesPlugin.IMG_HORIZONTAL));
-		Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
-			public void run() {
-			}
-		};
-		vaction.setChecked(false);
-		vaction.setToolTipText("Vertical orientation");
-		vaction.setImageDescriptor(ExamplesPlugin.getDefault()
-				.getImageRegistry().getDescriptor(ExamplesPlugin.IMG_VERTICAL));
-		ControlContribution save = new ControlContribution("save") {
-			protected Control createControl(Composite parent) {
-				Button saveButton = new Button(parent, SWT.PUSH);
-				saveButton.setText("Save");
-				return saveButton;
-			}
-		};
-		form.getToolBarManager().add(haction);
-		form.getToolBarManager().add(vaction);
-		form.getToolBarManager().add(save);
-		form.getToolBarManager().update(true);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ThirdPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ThirdPage.java
deleted file mode 100644
index c48b28c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ThirdPage.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.widgets.*;
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class ThirdPage extends FormPage {
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public ThirdPage(FormEditor editor) {
-		super(editor, "third", "Flow Page");
-	}
-	protected void createFormContent(IManagedForm managedForm) {
-		ScrolledForm form = managedForm.getForm();
-		//FormToolkit toolkit = managedForm.getToolkit();
-		form.setText("Form with wrapped controls");
-		ColumnLayout layout = new ColumnLayout();
-		layout.topMargin = 0;
-		layout.bottomMargin = 5;
-		layout.leftMargin = 10;
-		layout.rightMargin = 10;
-		layout.horizontalSpacing = 10;
-		layout.verticalSpacing = 10;
-		layout.maxNumColumns = 4;
-		layout.minNumColumns = 1;
-		form.getBody().setLayout(layout);
-		//form.getBody().setBackground(
-		//		form.getBody().getDisplay().getSystemColor(SWT.COLOR_GREEN));
-		createSectionWithLinks(managedForm, "Link Section",
-				"An example of a section with links", 2);
-		createSectionWithLinks(managedForm, "Link Section",
-				"An example of a section with links", 2);
-		createMixedSection(managedForm, "Mixed Section",
-				"An example of a section with both links and form controls");
-		createSectionWithLinks(managedForm, "Link Section",
-				"An example of a section with links", 4);
-		createSectionWithControls(managedForm, "Control Section",
-				"An example of a section with form controls");
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 3);
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 5);
-		createMixedSection(managedForm, "Mixed Section",
-				"An example of a section with both links and form controls");
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 2);
-		createSectionWithControls(managedForm, "Control Section",
-				"An example of a section with links");
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 4);
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 2);
-		createMixedSection(managedForm, "Mixed Section",
-				"An example of a section with both links and form controls");
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 2);
-		createSectionWithControls(managedForm, "Control Section",
-				"An example of a section with form controls");
-	}
-	private void createSectionWithLinks(IManagedForm mform, String title,
-			String desc, int nlinks) {
-		Composite client = createSection(mform, title, desc, 1);
-		FormToolkit toolkit = mform.getToolkit();
-		for (int i = 1; i <= nlinks; i++)
-			toolkit.createHyperlink(client, "Hyperlink text " + i, SWT.WRAP);
-	}
-	private void createSectionWithControls(IManagedForm mform, String title,
-			String desc) {
-		Composite client = createSection(mform, title, desc, 1);
-		FormToolkit toolkit = mform.getToolkit();
-		toolkit.createButton(client, "A radio button 1", SWT.RADIO);
-		toolkit.createButton(client, "A radio button 2", SWT.RADIO);
-		toolkit.createButton(client, "A radio button with a longer text",
-				SWT.RADIO);
-		toolkit.createButton(client, "A checkbox button", SWT.CHECK);
-	}
-	private void createMixedSection(IManagedForm mform, String title, String desc) {
-		Composite client = createSection(mform, title, desc, 2);
-		FormToolkit toolkit = mform.getToolkit();
-		Hyperlink link = toolkit.createHyperlink(client,
-				"A longer hyperlink text example", SWT.WRAP);
-		GridData gd = new GridData();
-		gd.horizontalSpan = 2;
-		link.setLayoutData(gd);
-		link = toolkit.createHyperlink(client, "Another hyperlink text",
-				SWT.WRAP);
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		link.setLayoutData(gd);
-		toolkit.createLabel(client, "A text label:");
-		Text text = toolkit.createText(client, "", SWT.SINGLE);
-		text.setText("Sample text");
-		text.setEnabled(false);
-		gd = new GridData();
-		gd.widthHint = 150;
-		text.setLayoutData(gd);
-		toolkit.paintBordersFor(client);
-	}
-	private Composite createSection(IManagedForm mform, String title,
-			String desc, int numColumns) {
-		final ScrolledForm form = mform.getForm();
-		FormToolkit toolkit = mform.getToolkit();
-		Section section = toolkit.createSection(form.getBody(), Section.TWISTIE
-				| Section.SHORT_TITLE_BAR | Section.DESCRIPTION | Section.EXPANDED);
-		section.setText(title);
-		section.setDescription(desc);
-		Composite client = toolkit.createComposite(section);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = layout.marginHeight = 0;
-		layout.numColumns = numColumns;
-		client.setLayout(layout);
-		section.setClient(client);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(false);
-			}
-		});
-		return client;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOne.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOne.java
deleted file mode 100644
index 45dc98c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOne.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class TypeOne extends NamedObject {
-	public static final String P_CHOICE="choice";
-	public static final String P_FLAG="flag";
-	public static final String P_TEXT="text";
-	public static final String [] CHOICES = {
-			"Choice 1", "Choice 2", "Choice 3", "Choice 4" };
-	private int choice=0;
-	private String text;
-	private boolean flag;
-
-	/**
-	 * @param name
-	 */
-	public TypeOne(String name, int choice, boolean flag, String text) {
-		super(name);
-		this.flag = flag;
-		this.text = text;
-		this.choice = choice;
-	}
-	public int getChoice() {
-		return choice;
-	}
-	public void setChoice(int choice) {
-		this.choice = choice;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_CHOICE);
-	}
-	public boolean getFlag() {
-		return flag;
-	}
-	public void setFlag(boolean flag) {
-		this.flag = flag;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_FLAG);
-	}
-	public String getText() {
-		return text;
-	}
-	public void setText(String text) {
-		this.text = text;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_TEXT);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOneDetailsPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOneDetailsPage.java
deleted file mode 100644
index 94f1681..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOneDetailsPage.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.widgets.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class TypeOneDetailsPage implements IDetailsPage {
-	private IManagedForm mform;
-	private TypeOne input;
-	private Button [] choices;
-	private Button flag;
-	private Text text;
-	private static final String RTEXT_DATA =
-			"<form><p>An example of a free-form text that should be "+
-			"wrapped below the section with widgets.</p>"+
-			"<p>It can contain simple tags like <a>links</a> and <b>bold text</b>.</p></form>";
-	
-	public TypeOneDetailsPage() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#initialize(org.eclipse.ui.forms.IManagedForm)
-	 */
-	public void initialize(IManagedForm mform) {
-		this.mform = mform;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createContents(Composite parent) {
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.topMargin = 5;
-		layout.leftMargin = 5;
-		layout.rightMargin = 2;
-		layout.bottomMargin = 2;
-		parent.setLayout(layout);
-
-		FormToolkit toolkit = mform.getToolkit();
-		Section s1 = toolkit.createSection(parent, Section.DESCRIPTION);
-		s1.marginWidth = 10;
-		s1.setText("Type One Details");
-		s1.setDescription("Set the properties of the selected TypeOne object.");
-		TableWrapData td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
-		td.grabHorizontal = true;
-		s1.setLayoutData(td);
-		toolkit.createCompositeSeparator(s1);
-		Composite client = toolkit.createComposite(s1);
-		GridLayout glayout = new GridLayout();
-		glayout.marginWidth = glayout.marginHeight = toolkit.getBorderStyle()==SWT.BORDER?0:2;
-		glayout.numColumns = 2;
-		client.setLayout(glayout);
-		//client.setBackground(client.getDisplay().getSystemColor(SWT.COLOR_CYAN));
-		
-		SelectionListener choiceListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				Integer value = (Integer)e.widget.getData();
-				if (input!=null) {
-					input.setChoice(value.intValue());
-				}
-			}
-		};
-		GridData gd;
-		choices = new Button[TypeOne.CHOICES.length];
-		for (int i=0; i<TypeOne.CHOICES.length; i++) {
-			choices[i] = toolkit.createButton(client, TypeOne.CHOICES[i], SWT.RADIO);
-			choices[i].setData(new Integer(i));
-			choices[i].addSelectionListener(choiceListener);
-			gd = new GridData();
-			gd.horizontalSpan = 2;
-			choices[i].setLayoutData(gd);
-		}
-		createSpacer(toolkit, client, 2);
-		flag = toolkit.createButton(client, "Value of the flag property", SWT.CHECK);
-		flag.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (input!=null)
-					input.setFlag(flag.getSelection());
-			}
-		});
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		flag.setLayoutData(gd);
-		createSpacer(toolkit, client, 2);
-		
-		toolkit.createLabel(client, "Text property:");
-		text = toolkit.createText(client, "", SWT.SINGLE);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (input!=null)
-					input.setText(text.getText());
-			}
-		});
-		gd = new GridData(GridData.FILL_HORIZONTAL|GridData.VERTICAL_ALIGN_BEGINNING);
-		gd.widthHint = 10;
-		text.setLayoutData(gd);
-		
-		createSpacer(toolkit, client, 2);
-		
-		FormText rtext = toolkit.createFormText(parent, false);
-		rtext.setText(RTEXT_DATA, true, false);
-		td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
-		td.grabHorizontal = true;
-		rtext.setLayoutData(td);
-		
-		toolkit.paintBordersFor(client);
-		s1.setClient(client);
-	}
-	private void createSpacer(FormToolkit toolkit, Composite parent, int span) {
-		Label spacer = toolkit.createLabel(parent, "");
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		spacer.setLayoutData(gd);
-	}
-	private void update() {
-		for (int i=0; i<TypeOne.CHOICES.length; i++) {
-			choices[i].setSelection(input!=null && input.getChoice()==i);
-		}
-		flag.setSelection(input!=null && input.getFlag());
-		text.setText(input!=null && input.getText()!=null?input.getText():"");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#inputChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IFormPart part, ISelection selection) {
-		IStructuredSelection ssel = (IStructuredSelection)selection;
-		if (ssel.size()==1) {
-			input = (TypeOne)ssel.getFirstElement();
-		}
-		else
-			input = null;
-		update();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#commit()
-	 */
-	public void commit(boolean onSave) {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#setFocus()
-	 */
-	public void setFocus() {
-		choices[0].setFocus();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#dispose()
-	 */
-	public void dispose() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#isDirty()
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-	public boolean isStale() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#refresh()
-	 */
-	public void refresh() {
-		update();
-	}
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwo.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwo.java
deleted file mode 100644
index c1093c0..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwo.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class TypeTwo extends NamedObject {
-	public static final String P_FLAG1="flag1";
-	public static final String P_FLAG2="flag2";
-	private boolean flag1;
-	private boolean flag2;
-
-	/**
-	 * @param name
-	 */
-	public TypeTwo(String name, boolean flag1, boolean flag2) {
-		super(name);
-		this.flag1 = flag1;
-		this.flag2 = flag2;
-	}
-	public boolean getFlag1() {
-		return flag1;
-	}
-	public boolean getFlag2() {
-		return flag2;
-	}
-	public void setFlag1(boolean flag1) {
-		this.flag1 = flag1;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_FLAG1);
-	}
-	public void setFlag2(boolean flag2) {
-		this.flag2 = flag2;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_FLAG2);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwoDetailsPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwoDetailsPage.java
deleted file mode 100644
index 2988e28..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwoDetailsPage.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal.rcp;
-
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.widgets.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class TypeTwoDetailsPage implements IDetailsPage {
-	private IManagedForm mform;
-	private TypeTwo input;
-	private Button flag1;
-	private Button flag2;
-	
-	public TypeTwoDetailsPage() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#initialize(org.eclipse.ui.forms.IManagedForm)
-	 */
-	public void initialize(IManagedForm mform) {
-		this.mform = mform;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createContents(Composite parent) {
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.topMargin = 5;
-		layout.leftMargin = 5;
-		layout.rightMargin = 2;
-		//layout.bottomMargin = 2;
-		parent.setLayout(layout);
-
-		FormToolkit toolkit = mform.getToolkit();
-		Section s1 = toolkit.createSection(parent, Section.DESCRIPTION);
-		s1.marginWidth = 10;
-		s1.setText("Type Two Details");
-		s1.setDescription("Set the properties of the selected TypeTwo object.");
-		TableWrapData td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
-		td.grabHorizontal = true;
-		s1.setLayoutData(td);
-		toolkit.createCompositeSeparator(s1);
-		Composite client = toolkit.createComposite(s1);
-		//client.setBackground(client.getDisplay().getSystemColor(SWT.COLOR_MAGENTA));
-		GridLayout glayout = new GridLayout();
-		glayout.marginWidth = glayout.marginHeight = 0;
-		client.setLayout(glayout);
-		
-		flag1 = toolkit.createButton(client, "Value of the flag1 property", SWT.CHECK);
-		flag1.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (input!=null)
-					input.setFlag1(flag1.getSelection());
-			}
-		});
-		
-		flag2 = toolkit.createButton(client, "Value of the flag2 property", SWT.CHECK);
-		flag2.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (input!=null)
-					input.setFlag2(flag2.getSelection());
-			}
-		});
-		s1.setClient(client);
-	}
-	private void update() {
-		flag1.setSelection(input!=null && input.getFlag1());
-		flag2.setSelection(input!=null && input.getFlag2());
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#inputChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IFormPart part, ISelection selection) {
-		IStructuredSelection ssel = (IStructuredSelection)selection;
-		if (ssel.size()==1) {
-			input = (TypeTwo)ssel.getFirstElement();
-		}
-		else
-			input = null;
-		update();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#commit()
-	 */
-	public void commit(boolean onSave) {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#setFocus()
-	 */
-	public void setFocus() {
-		flag1.setFocus();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#dispose()
-	 */
-	public void dispose() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#isDirty()
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-	
-	public boolean isStale() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#refresh()
-	 */
-	public void refresh() {
-		update();
-	}
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/index.xml b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/index.xml
deleted file mode 100644
index ed6aa1c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/index.xml
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<form>
-<p><control href="node"/></p>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>New addition: controls in the text</p>
-<p><control href="control1" width="300"/></p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-</form>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java
deleted file mode 100644
index df7bf12..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.views;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.part.ViewPart;
-
-public class FormView extends ViewPart {
-	private FormToolkit toolkit;
-	private ScrolledForm form;
-	/**
-	 * The constructor.
-	 */
-	public FormView() {
-	}
-	/**
-	 * This is a callback that will allow us to create the viewer and
-	 * initialize it.
-	 */
-	public void createPartControl(Composite parent) {
-		toolkit = new FormToolkit(parent.getDisplay());
-		form = toolkit.createScrolledForm(parent);
-		form.setText("Hello, Eclipse Forms");
-		TableWrapLayout layout = new TableWrapLayout();
-		form.getBody().setLayout(layout);
-		
-		Hyperlink link = toolkit.createHyperlink(form.getBody(), "Click here.",
-				SWT.WRAP);
-		link.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				System.out.println("Link activated!");
-			}
-		});
-		link.setText("This is an example of a form that is much longer and will need to wrap.");
-		layout.numColumns = 2;
-		TableWrapData td = new TableWrapData();
-		td.colspan = 2;
-		link.setLayoutData(td);
-		toolkit.createLabel(form.getBody(), "Text field label:");
-		Text text = toolkit.createText(form.getBody(), "");
-		td = new TableWrapData(TableWrapData.FILL_GRAB);
-		text.setLayoutData(td);
-		Button button = toolkit.createButton(form.getBody(),
-				"An example of a checkbox in a form", SWT.CHECK);
-		td = new TableWrapData();
-		td.colspan = 2;
-		button.setLayoutData(td);
-		
-		ImageHyperlink ih = toolkit.createImageHyperlink(form.getBody(), SWT.NULL);
-		ih.setText("Image link with no image");
-		ih = toolkit.createImageHyperlink(form.getBody(), SWT.NULL);
-		ih.setImage(ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		ih.setText("Link with image and text");
-		
-		ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE|ExpandableComposite.CLIENT_INDENT);
-		ImageHyperlink eci = toolkit.createImageHyperlink(ec, SWT.NULL);
-		eci.setImage(ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		ec.setTextClient(eci);
-		ec.setText("Expandable Composite title");
-		String ctext = "We will now create a somewhat long text so that "+
-		"we can use it as content for the expandable composite. "+
-		"Expandable composite is used to hide or show the text using the "+
-		"toggle control";
-		Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);
-		ec.setClient(client);
-		td = new TableWrapData();
-		td.colspan = 2;
-		ec.setLayoutData(td);
-		ec.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(true);
-			}
-		});
-		Section section = toolkit.createSection(form.getBody(), Section.DESCRIPTION|Section.TWISTIE|Section.EXPANDED);
-		td = new TableWrapData(TableWrapData.FILL);
-		td.colspan = 2;
-		section.setLayoutData(td);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(true);
-			}
-		});
-		section.setText("Section title");
-		toolkit.createCompositeSeparator(section);
-		section.setDescription("This is the description that goes below the title");
-		Composite sectionClient = toolkit.createComposite(section);
-		sectionClient.setLayout(new GridLayout());
-		button = toolkit.createButton(sectionClient, "Radio 1", SWT.RADIO);
-		button = toolkit.createButton(sectionClient, "Radio 2", SWT.RADIO);
-		section.setClient(sectionClient);
-
-		StringBuffer buf = new StringBuffer();
-		buf.append("<form>");
-		buf.append("<p>");
-		buf.append("Here is some plain text for the text to render; ");
-		buf.append("this text is at <a href=\"http://www.eclipse.org\" nowrap=\"true\">http://www.eclipse.org</a> web site.");
-		buf.append("</p>");
-		buf.append("<p>");
-		buf.append("<span color=\"header\" font=\"header\">This text is in header font and color.</span>");
-		buf.append("</p>");
-		buf.append("<p>This line will contain some <b>bold</b> and some <span font=\"code\">source</span> text. ");
-		buf.append("We can also add <img href=\"image\"/> an image. ");
-		buf.append("</p>");
-		buf.append("<li>A default (bulleted) list item.</li>");
-		buf.append("<li>Another bullet list item.</li>");
-		buf.append("<li style=\"text\" value=\"1.\">A list item with text.</li>");
-		buf.append("<li style=\"text\" value=\"2.\">Another list item with text</li>");
-		buf.append("<li style=\"image\" value=\"image\">List item with an image bullet</li>");
-		buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"3.\">A list item with text.</li>");
-		buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"4.\">A list item with text.</li>");
-		buf.append("<p>     leading blanks;      more white \n\n new lines   <br/><br/><br/> \n more <b>   bb   </b>  white  . </p>");
-		buf.append("</form>");
-		FormText rtext = toolkit.createFormText(form.getBody(), false);
-		//rtext.setWhitespaceNormalized(false);
-		td = new TableWrapData(TableWrapData.FILL);
-		td.colspan = 2;
-		rtext.setLayoutData(td);
-		rtext.setImage("image", ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		rtext.setColor("header", toolkit.getColors().getColor(IFormColors.TITLE));
-		rtext.setFont("header", JFaceResources.getHeaderFont());
-		rtext.setFont("code", JFaceResources.getTextFont());
-		rtext.setText(buf.toString(), true, false);
-		rtext.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				System.out.println("Link active: "+e.getHref());
-			}
-		});
-/*		layout.numColumns = 3;
-		Label label;
-		TableWrapData td;
-		
-		label = toolkit.createLabel(form.getBody(), "Some text to put in the first column", SWT.WRAP);
-		label = toolkit.createLabel(form.getBody() ,"Some text to put in the second column and make it a bit longer so that we can see what happens with column distribution. This text must be the longest so that it can get more space allocated to the columns it belongs to.", SWT.WRAP);
-		td = new TableWrapData();
-		td.colspan = 2;
-		label.setLayoutData(td);
-		label = toolkit.createLabel(form.getBody(), "This text will span two rows and should not grow the column.", SWT.WRAP);
-		td = new TableWrapData();
-		td.rowspan = 2;
-		label.setLayoutData(td);
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 2 and consumes only one cell", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 3 and consumes only one cell too", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 2 and consumes only one cell", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 3 and consumes only one cell too", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		form.getBody().setBackground(form.getBody().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));*/
-		
-		toolkit.paintBordersFor(form.getBody());
-	}
-	/**
-	 * Passing the focus request to the form.
-	 */
-	public void setFocus() {
-		Control focusControl = form.getDisplay().getFocusControl();
-		if (focusControl!=null) {
-			Composite parent = focusControl.getParent();
-			while (parent!=null) {
-				if (parent==form) {
-					// already have focus
-					return;
-				}
-				parent = parent.getParent();
-			}
-		}
-		form.setFocus();
-	}
-	/**
-	 * Disposes the toolkit
-	 */
-	public void dispose() {
-		toolkit.dispose();
-		super.dispose();
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java
deleted file mode 100644
index 2484a37..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.forms.examples.views;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.*;
-
-/**
- * @author dejan
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-public class ShowHelpAction implements IWorkbenchWindowActionDelegate {
-	private IWorkbenchWindow window;
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		try {
-			window.getActivePage().showView("org.eclipse.ui.forms.examples.helpView");
-		}
-		catch (PartInitException e) {
-			System.out.println(e);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/.classpath b/tests/org.eclipse.jface.tests.databinding.conformance/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/.project b/tests/org.eclipse.jface.tests.databinding.conformance/.project
deleted file mode 100644
index 3094c2c..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jface.tests.databinding.conformance</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 383af26..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,355 +0,0 @@
-#Mon Dec 03 13:56:42 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=80
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8ee15567..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,116 +0,0 @@
-#Mon Dec 03 13:56:42 EST 2007
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=false
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.2\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12a7331..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Mon Dec 03 13:56:42 EST 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/META-INF/MANIFEST.MF b/tests/org.eclipse.jface.tests.databinding.conformance/META-INF/MANIFEST.MF
deleted file mode 100644
index 6482947..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface.tests.databinding.conformance
-Bundle-Version: 1.0.0
-Require-Bundle: org.junit,
- org.eclipse.core.databinding,
- org.eclipse.jface.databinding,
- org.eclipse.swt,
- org.eclipse.core.runtime
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jface.databinding.conformance;uses:="org.eclipse.core.databinding.observable,org.eclipse.jface.databinding.conformance.delegate,junit.framework",
- org.eclipse.jface.databinding.conformance.delegate,
- org.eclipse.jface.databinding.conformance.swt,
- org.eclipse.jface.databinding.conformance.util;
-  uses:="org.eclipse.core.databinding.observable.map,
-   org.eclipse.jface.databinding.conformance.delegate,
-   org.eclipse.core.databinding.observable,
-   org.eclipse.core.databinding.observable.list,
-   org.eclipse.core.databinding.observable.value,
-   junit.framework,
-   org.eclipse.core.databinding.observable.set"
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/about.html b/tests/org.eclipse.jface.tests.databinding.conformance/about.html
deleted file mode 100644
index d42b3ce..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/build.properties b/tests/org.eclipse.jface.tests.databinding.conformance/build.properties
deleted file mode 100644
index cc15552..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.databinding.jar = bin/
-src.includes = about.html
-source.. = src/
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/plugin.properties b/tests/org.eclipse.jface.tests.databinding.conformance/plugin.properties
deleted file mode 100644
index 4e17d68..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = JFace Data Binding Conformance Tests
-providerName = Eclipse.org
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableCollectionContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableCollectionContractTest.java
deleted file mode 100644
index ba34da5..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableCollectionContractTest.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bugs 208858, 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.Arrays;
-import java.util.Collections;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Mutability tests for IObservableCollection.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class MutableObservableCollectionContractTest extends ObservableDelegateTest {
-	private IObservableCollectionContractDelegate delegate;
-
-	private IObservableCollection collection;
-
-	public MutableObservableCollectionContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;
-	}
-
-	public MutableObservableCollectionContractTest(String name,
-			IObservableCollectionContractDelegate delegate) {
-		super(name, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		collection = (IObservableCollection) super.getObservable();
-	}
-
-	public void testAdd_ChangeEvent() throws Exception {
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.add(delegate.createElement(collection));
-			}
-		}, "Collection.add(Object)", collection);
-	}
-	
-	public void testAdd_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.add(delegate.createElement(collection));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testAdd_ChangeEventFiredAfterElementIsAdded() throws Exception {
-		final Object element = delegate.createElement(collection);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.add(element);
-			}
-		}, "Collection.add(Object)", collection, element);
-	}
-
-	public void testAddAll_ChangeEvent() throws Exception {
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.addAll(Arrays.asList(new Object[] { delegate
-						.createElement(collection) }));
-			}
-		}, "Collection.addAll(Collection)", collection);
-	}
-	
-	public void testAddAll_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.addAll(Arrays.asList(new Object[] { delegate
-						.createElement(collection) }));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testAddAll_ChangeEventFiredAfterElementsAreAdded()
-			throws Exception {
-		final Object element = delegate.createElement(collection);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.addAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Collection.addAll(Collection)", collection, element);
-	}
-
-	public void testRemove_ChangeEvent() throws Exception {
-		final Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.remove(element);
-			}
-		}, "Collection.remove(Object)", collection);
-	}
-	
-	public void testRemove_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.remove(delegate.createElement(collection));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testRemove_ChangeEventFiredAfterElementIsRemoved()
-			throws Exception {
-		final Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertDoesNotContainDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.remove(element);
-			}
-		}, "Collection.remove(Object)", collection, element);
-	}
-
-	public void testRemoveAll_ChangeEvent() throws Exception {
-		final Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Collection.removeAll(Collection)", collection);
-	}
-	
-	public void testRemoveAll_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.removeAll(Arrays.asList(new Object[] { delegate.createElement(collection) }));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testRemoveAll_ChangeEventFiredAfterElementsAreRemoved()
-			throws Exception {
-		final Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertDoesNotContainDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Collection.removeAll(Collection)", collection, element);
-	}
-
-	public void testRemoveAll_NoChange() throws Exception {
-		ChangeEventTracker tracker = ChangeEventTracker.observe(collection);
-		collection.removeAll(Collections.EMPTY_LIST);
-		assertEquals(
-				"List.removeAll on an empty list should not fire a list change event",
-				0, tracker.count);
-	}
-
-	public void testRetainAll_ChangeEvent() throws Exception {
-		final Object element1 = delegate.createElement(collection);
-		collection.add(element1);
-		Object element2 = delegate.createElement(collection);
-		collection.add(element2);
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.retainAll(Arrays.asList(new Object[] { element1 }));
-			}
-
-		}, "Collection.retainAll(Collection)", collection);
-	}
-	
-	public void testRetainAll_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.retainAll(Collections.EMPTY_LIST);
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testRetainAll_ChangeEventFiredAfterElementsAreRetained()
-			throws Exception {
-		Object element1 = delegate.createElement(collection);
-		collection.add(element1);
-		Object element2 = delegate.createElement(collection);
-		collection.add(element2);
-
-		// precondition
-		assertTrue(collection.contains(element1));
-		assertTrue(collection.contains(element2));
-
-		ContainsListener listener1 = new ContainsListener(collection, element1)
-				.init();
-		ContainsListener listener2 = new ContainsListener(collection, element2)
-				.init();
-
-		// set contains the the opposite of the expected outcome to ensure they
-		// get set
-		listener1.contains = false;
-		listener2.contains = true;
-
-		collection.retainAll(Arrays.asList(new Object[] { element1 }));
-		assertTrue(
-				formatFail("When Collection.retainAll(...) fires the change event the element should have been retained in the Collection."),
-				listener1.contains);
-		assertFalse(
-				formatFail("When Collection.retainAll(...) fires the change event the element should have been removed from the Collection."),
-				listener2.contains);
-	}
-	
-	public void testRetainAll_NoChangeFiresNoChangeEvent() throws Exception {
-		ChangeEventTracker tracker = ChangeEventTracker.observe(collection);
-		collection.retainAll(Collections.EMPTY_LIST);
-		assertEquals("List.retainAll should not have fired a change event:",
-				0, tracker.count);
-	}
-	
-	public void testClear_ChangeEvent() throws Exception {
-		collection.add(delegate.createElement(collection));
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.clear();
-			}
-		}, "List.clear()", collection);
-	}
-
-	public void testClear_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.clear();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testClear_ChangeEventFiredAfterElementIsRemoved()
-			throws Exception {
-		Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertDoesNotContainDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.clear();
-			}
-		}, "List.clear()", collection, element);
-	}
-
-	/**
-	 * Asserts that a ChangeEvent is fired once when the provided
-	 * <code>runnable</code> is invoked and the source is the provided
-	 * <code>collection</code>.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param collection
-	 */
-	/* package */void assertChangeEventFired(Runnable runnable,
-			String methodName, IObservableCollection collection) {
-		
-		ChangeEventTracker listener = ChangeEventTracker.observe(collection);
-		runnable.run();
-
-		assertEquals(formatFail(methodName + " should fire one ChangeEvent."), 1,
-				listener.count);
-		assertEquals(
-				formatFail(methodName
-						+ "'s change event observable should be the created Collection."),
-				collection, listener.event.getObservable());
-	}
-
-	/**
-	 * Asserts that when the change event is fired for the action contained in
-	 * the <code>runnable</code> the change will have been applied to the
-	 * <code>collection</code>.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param collection
-	 * @param elementNotContained
-	 */
-	/* package */void assertDoesNotContainDuringChangeEvent(Runnable runnable,
-			String methodName, IObservableCollection collection,
-			Object elementNotContained) {
-
-		// precondition
-		assertTrue(collection.contains(elementNotContained));
-
-		ContainsListener listener = new ContainsListener(collection,
-				elementNotContained).init();
-		listener.contains = true;
-		collection.remove(elementNotContained);
-		assertFalse(
-				formatFail(new StringBuffer("When ")
-						.append(methodName)
-						.append(
-								" fires a change event the element should have been removed from the Collection.")
-						.toString()), listener.contains);
-	}
-
-	/**
-	 * Asserts that when the change event is fired for the action contained in
-	 * the <code>runnable</code> the change will have been applied to the
-	 * <code>collection</code>.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param collection
-	 * @param elementContained
-	 */
-	/* package */void assertContainsDuringChangeEvent(Runnable runnable,
-			String methodName, IObservableCollection collection,
-			Object elementContained) {
-		ContainsListener listener = new ContainsListener(collection,
-				elementContained).init();
-
-		// precondition
-		assertFalse(collection.contains(elementContained));
-		runnable.run();
-
-		assertTrue(
-				formatFail(new StringBuffer("When ")
-						.append(methodName)
-						.append(
-								" fires a change event the element should have been added to the Collection.")
-						.toString()), listener.contains);
-	}
-
-	/* package */static class ContainsListener implements IChangeListener {
-		boolean contains;
-
-		final private Object element;
-
-		final private IObservableCollection collection;
-
-		ContainsListener(IObservableCollection collection, Object element) {
-			this.element = element;
-			this.collection = collection;
-		}
-
-		ContainsListener init() {
-			collection.addChangeListener(this);
-			return this;
-		}
-
-		public void handleChange(ChangeEvent event) {
-			contains = collection.contains(element);
-		}
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				MutableObservableCollectionContractTest.class, delegate)
-				.addObservableContractTest(
-						ObservableCollectionContractTest.class, delegate)
-				.build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableListContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableListContractTest.java
deleted file mode 100644
index ab8bd0b..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableListContractTest.java
+++ /dev/null
@@ -1,614 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bugs 208858, 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.ListChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-
-/**
- * Mutability tests for IObservableList.
- * 
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class MutableObservableListContractTest extends
-		MutableObservableCollectionContractTest {
-	private IObservableCollectionContractDelegate delegate;
-
-	private IObservableList list;
-
-	/**
-	 * @param delegate
-	 */
-	public MutableObservableListContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;
-	}
-
-	public MutableObservableListContractTest(String testName,
-			IObservableCollectionContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		list = (IObservableList) getObservable();
-	}
-
-	public void testAdd_ListChangeEvent() throws Exception {
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.add(delegate.createElement(list));
-			}
-		}, "List.add(Object)", list);
-	}
-
-	public void testAdd_ListDiffEntry() throws Exception {
-		list.add(delegate.createElement(list));
-		final Object element = delegate.createElement(list);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				list.add(element);
-			}
-		}, "List.add(Object)", list, element, 1);
-	}
-
-	public void testAddAtIndex_ChangeEvent() throws Exception {
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.add(0, delegate.createElement(list));
-			}
-		}, "List.add(int, Object)", list);
-	}
-
-	public void testAddAtIndex_ListChangeEvent() throws Exception {
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.add(0, delegate.createElement(list));
-			}
-		}, "List.add(int, Object)", list);
-	}
-
-	public void testAddAtIndex_ChangeEventFiredAfterElementIsAdded()
-			throws Exception {
-		final Object element = delegate.createElement(list);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				list.add(0, element);
-			}
-		}, "List.add(int, Collection)", list, element);
-	}
-
-	public void testAddAtIndex_ListDiffEntry() throws Exception {
-		list.add(delegate.createElement(list));
-		final Object element = delegate.createElement(list);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				list.add(1, element);
-			}
-		}, "List.add(int, Object)", list, element, 1);
-	}
-
-	public void testAddAll_ListChangeEvent() throws Exception {
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(Arrays.asList(new Object[] { delegate
-						.createElement(list) }));
-			}
-		}, "List.addAll(Collection", list);
-	}
-
-	public void testAddAll_ListDiffEntry() throws Exception {
-		final Object element = delegate.createElement(list);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				list.addAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "List.addAll(Collection)", list, element, 0);
-	}
-
-	public void testAddAll_ListDiffEntry2() throws Exception {
-		list.add(delegate.createElement(list));
-		final Object element = delegate.createElement(list);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				list.addAll(Collections.singletonList(element));
-			}
-		}, "List.addAll(Collection)", list, element, 1);
-	}
-
-	public void testAddAllAtIndex_ChangeEvent() throws Exception {
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(0, Arrays.asList(new Object[] { delegate
-						.createElement(list) }));
-			}
-		}, "List.addAll(int, Collection)", list);
-	}
-
-	public void testAddAllAtIndex_ListChangeEvent() throws Exception {
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(0, Arrays.asList(new Object[] { delegate
-						.createElement(list) }));
-			}
-		}, "List.addAll(int, Collection)", list);
-	}
-
-	public void testAddAllAtIndex_ChangeEventFiredAfterElementIsAdded()
-			throws Exception {
-		final Object element = delegate.createElement(list);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				list.addAll(0, Arrays.asList(new Object[] { element }));
-			}
-		}, "List.addAll(int, Collection)", list, element);
-	}
-
-	public void testAddAllAtIndex_ListDiffEntry() throws Exception {
-		list.add(delegate.createElement(list));
-		final Object element = delegate.createElement(list);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				list.addAll(1, Arrays.asList(new Object[] { element }));
-			}
-		}, "List.addAll(int, Collection)", list, element, 1);
-	}
-
-	public void testSet_ChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.set(0, delegate.createElement(list));
-			}
-		}, "List.set(int, Object)", list);
-	}
-
-	public void testSet_ListChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.set(0, delegate.createElement(list));
-			}
-		}, "List.set(int, Object)", list);
-	}
-
-	public void testSet_ChangeEventFiredAfterElementIsSet() throws Exception {
-		Object element1 = delegate.createElement(list);
-		list.add(element1);
-		final Object element2 = delegate.createElement(list);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				list.set(0, element2);
-			}
-		}, "List.set(int, Object)", list, element2);
-	}
-
-	public void testSet_ListDiffEntry() throws Exception {
-		list.add(delegate.createElement(list));
-		Object oldElement = delegate.createElement(list);
-		list.add(oldElement);
-
-		ListChangeEventTracker listener = ListChangeEventTracker.observe(list);
-
-		Object newElement = delegate.createElement(list);
-		list.set(1, newElement);
-
-		ListDiffEntry[] entries = listener.event.diff.getDifferences();
-		assertEquals(
-				"List.set(int, Object) should result in 2 list diff entries.",
-				2, entries.length);
-
-		ListDiffEntry remove = entries[0];
-		assertFalse(remove.isAddition());
-		assertEquals(
-				"List.set(int, Object) removed element should be the old element.",
-				oldElement, remove.getElement());
-		assertEquals(
-				"List.set(int, Object) removed index should be the index the new element was set at.",
-				1, remove.getPosition());
-
-		ListDiffEntry add = entries[1];
-		assertTrue(add.isAddition());
-		assertEquals(
-				"List.set(int, Object) added element should be the set element.",
-				newElement, add.getElement());
-		assertEquals(
-				"List.set(int, Object) add index should be the index the new element was set at.",
-				1, add.getPosition());
-	}
-
-	public void testMove_ChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-		list.add(delegate.createElement(list));
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.move(0, 1);
-			}
-		}, "IObservableList.move(int, int)", list);
-	}
-
-	public void testMove_NoChangeEventAtSameIndex() throws Exception {
-		Object element = delegate.createElement(list);
-		list.add(element);
-
-		ListChangeEventTracker tracker = ListChangeEventTracker.observe(list);
-
-		final Object movedElement = list.move(0, 0);
-
-		assertEquals(
-				formatFail("IObservableList.move(int,int) should return the moved element"),
-				element, movedElement);
-		assertEquals(
-				formatFail("IObservableLIst.move(int,int) should not fire a change event"
-						+ "when the old and new indices are the same"), 0,
-				tracker.count);
-	}
-
-	public void testMove_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				Object movedElement = list.move(0, 1);
-				assertEquals(element, movedElement);
-			}
-		}, "IObservableList.move(int, int)", list);
-	}
-
-	public void testMove_ChangeEventFiredAfterElementIsMoved() throws Exception {
-		Object element0 = delegate.createElement(list);
-		Object element1 = delegate.createElement(list);
-		list.add(element0);
-		list.add(element1);
-
-		assertSame(element0, list.get(0));
-		assertSame(element1, list.get(1));
-
-		list.move(0, 1);
-
-		assertSame(element1, list.get(0));
-		assertSame(element0, list.get(1));
-	}
-
-	public void testMove_ListDiffEntry() {
-		Object element = delegate.createElement(list);
-		list.add(element);
-		list.add(delegate.createElement(list));
-
-		ListChangeEventTracker listener = ListChangeEventTracker.observe(list);
-
-		list.move(0, 1);
-
-		ListDiffEntry[] entries = listener.event.diff.getDifferences();
-		assertEquals(
-				"List.set(int, Object) should result in 2 list diff entries.",
-				2, entries.length);
-
-		ListDiffEntry remove = entries[0];
-		ListDiffEntry add = entries[1];
-		assertFalse(
-				"IObservableList.move(int, int) removed element should be first in list diff",
-				remove.isAddition());
-		assertTrue(
-				"IObservableList.move(int, int) added element should be second in list diff",
-				add.isAddition());
-
-		assertEquals(
-				"IObservableList.move(int, int) remove entry contains incorrect element",
-				element, remove.getElement());
-		assertEquals(
-				"IObservableList.move(int, int) add entry contains incorrect element",
-				element, add.getElement());
-
-		assertEquals(
-				"IObservableList.move(int, int) remove entry should be the old element index",
-				0, remove.getPosition());
-		assertEquals(
-				"IObservableList.move(int, int) add entry should be the new element index",
-				1, add.getPosition());
-	}
-
-	public void testRemove_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.remove(element);
-			}
-		}, "List.remove(Object)", list);
-	}
-
-	public void testRemove_ListDiffEntry() throws Exception {
-		list.add(delegate.createElement(list));
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				list.remove(element);
-			}
-		}, "List.remove(Object)", list, element, 1);
-	}
-
-	public void testRemoveAtIndex_ChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.remove(0);
-			}
-		}, "List.remove(int)", list);
-	}
-
-	public void testRemoveAtIndex_ListChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.remove(0);
-			}
-		}, "List.remove(int)", list);
-	}
-
-	public void testRemoveAtIndex_ChangeEventFiredAfterElementIsRemoved()
-			throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertDoesNotContainDuringChangeEvent(new Runnable() {
-			public void run() {
-				list.remove(0);
-			}
-		}, "List.remove(int)", list, element);
-	}
-
-	public void testRemoveAtIndex_ListDiffEntry() throws Exception {
-		list.add(delegate.createElement(list));
-		Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				list.remove(1);
-			}
-		}, "List.remove(int)", list, element, 1);
-	}
-
-	public void testRemoveAll_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "List.removeAll(Collection)", list);
-	}
-
-	public void testRemoveAll_ListDiffEntry() throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				list.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "List.removeAll(Collection)", list, element, 0);
-	}
-
-	public void testRemoveAll_ListDiffEntry2() throws Exception {
-		list.add(delegate.createElement(list));
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				list.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "List.removeAll(Collection)", list, element, 1);
-	}
-
-	public void testRetainAll_ListChangeEvent() throws Exception {
-		final Object element1 = delegate.createElement(list);
-		list.add(element1);
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.retainAll(Arrays.asList(new Object[] { element1 }));
-			}
-		}, "List.retainAll(Collection", list);
-	}
-
-	public void testRetainAll_ListDiffEntry() throws Exception {
-		final Object element1 = delegate.createElement(list);
-		list.add(element1);
-		Object element2 = delegate.createElement(list);
-		list.add(element2);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				list.retainAll(Arrays.asList(new Object[] { element1 }));
-			}
-		}, "List.retainAll(Collection)", list, element2, 1);
-	}
-
-	public void testClear_ListChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.clear();
-			}
-		}, "List.clear()", list);
-	}
-
-	public void testClear_ListDiffEntry() throws Exception {
-		Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				list.clear();
-			}
-		}, "List.clear()", list, element, 0);
-	}
-
-	/**
-	 * Asserts standard behaviors of firing list change events.
-	 * <ul>
-	 * <li>Event fires once.</li>
-	 * <li>Source of the event is the provided <code>list</code>.
-	 * <li>The list change event is fired after the change event.</li>
-	 * </ul>
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param list
-	 */
-	private void assertListChangeEventFired(Runnable runnable,
-			String methodName, IObservableList list) {
-		List queue = new ArrayList();
-		ListChangeEventTracker listListener = new ListChangeEventTracker(queue);
-		ChangeEventTracker changeListener = new ChangeEventTracker(queue);
-
-		list.addListChangeListener(listListener);
-		list.addChangeListener(changeListener);
-
-		runnable.run();
-
-		assertEquals(formatFail(methodName + " should fire one ListChangeEvent."), 1,
-				listListener.count);
-		assertEquals(formatFail(methodName
-				+ "'s change event observable should be the created List."),
-				list, listListener.event.getObservable());
-
-		assertEquals(formatFail("Two notifications should have been received."), 2, queue
-				.size());
-		assertEquals("ChangeEvent of " + methodName
-				+ " should have fired before the ListChangeEvent.",
-				changeListener, queue.get(0));
-		assertEquals("ListChangeEvent of " + methodName
-				+ " should have fired after the ChangeEvent.", listListener,
-				queue.get(1));
-	}
-
-	/**
-	 * Asserts the list diff entry for a remove operation.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param list
-	 * @param element
-	 * @param index
-	 */
-	private void assertRemoveDiffEntry(Runnable runnable, String methodName,
-			IObservableList list, Object element, int index) {
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		runnable.run();
-
-		ListDiffEntry[] entries = listener.event.diff.getDifferences();
-		assertEquals(methodName + " should result in one diff entry.", 1,
-				entries.length);
-
-		ListDiffEntry entry = entries[0];
-		assertFalse(methodName
-				+ " should result in a diff entry that is an removal.", entry
-				.isAddition());
-		assertEquals(methodName
-				+ " remove diff entry should have removed the element.",
-				element, entry.getElement());
-		assertEquals(
-				methodName
-						+ " remove diff entry should have removed the element from the provided index.",
-				index, entry.getPosition());
-	}
-
-	/**
-	 * Asserts the list diff entry for an add operation.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param list
-	 * @param element
-	 * @param index
-	 */
-	private void assertAddDiffEntry(Runnable runnable, String methodName,
-			IObservableList list, Object element, int index) {
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		runnable.run();
-
-		ListDiffEntry[] entries = listener.event.diff.getDifferences();
-		assertEquals(methodName + " should result in one diff entry.", 1,
-				entries.length);
-
-		ListDiffEntry entry = entries[0];
-		assertTrue(methodName
-				+ " should result in a diff entry that is an addition.", entry
-				.isAddition());
-		assertEquals(methodName
-				+ " add diff entry should have added the element.", element,
-				entry.getElement());
-		assertEquals(
-				methodName
-						+ "add diff entry should have added the element at the provided index.",
-				index, entry.getPosition());
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				MutableObservableListContractTest.class, delegate)
-				.addObservableContractTest(ObservableListContractTest.class,
-						delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableSetContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableSetContractTest.java
deleted file mode 100644
index 8ff8cdb..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableSetContractTest.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 215531, 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.SetChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- */
-public class MutableObservableSetContractTest extends
-		MutableObservableCollectionContractTest {
-	private IObservableCollectionContractDelegate delegate;
-
-	private IObservableSet set;
-
-	public MutableObservableSetContractTest(String testName,
-			IObservableCollectionContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	/**
-	 * @param delegate
-	 */
-	public MutableObservableSetContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		set = (IObservableSet) getObservable();
-	}
-
-	public void testAdd_SetChangeEvent() throws Exception {
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.add(delegate.createElement(set));
-			}
-		}, "Set.add(Object)", set);
-	}
-
-	public void testAdd_SetDiffEntry() throws Exception {
-		set.add(delegate.createElement(set));
-		final Object element = delegate.createElement(set);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				set.add(element);
-			}
-		}, "Set.add(Object)", set, element);
-	}
-
-	public void testAdd_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.add(delegate.createElement(set));
-			}
-		}, "Set.add(Object)", set);
-	}
-
-	public void testAddAll_SetChangeEvent() throws Exception {
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.addAll(Arrays.asList(new Object[] { delegate
-						.createElement(set) }));
-			}
-		}, "Set.addAll(Collection", set);
-	}
-
-	public void testAddAll_SetDiffEntry() throws Exception {
-		final Object element = delegate.createElement(set);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				set.addAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Set.addAll(Collection)", set, element);
-	}
-
-	public void testAddAll_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.addAll(Collections.singleton(delegate.createElement(set)));
-			}
-		}, "Set.addAll(Collection)", set);
-	}
-
-	public void testRemove_SetChangeEvent() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.remove(element);
-			}
-		}, "Set.remove(Object)", set);
-	}
-
-	public void testRemove_SetDiffEntry() throws Exception {
-		set.add(delegate.createElement(set));
-		final Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				set.remove(element);
-			}
-		}, "Set.remove(Object)", set, element);
-	}
-
-	public void testRemove_GetterCalled() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.remove(element);
-			}
-		}, "Set.remove(Object)", set);
-	}
-
-	public void testRemoveAll_SetChangeEvent() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Set.removeAll(Collection)", set);
-	}
-
-	public void testRemoveAll_SetDiffEntry() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				set.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Set.removeAll(Collection)", set, element);
-	}
-
-	public void testRemoveAll_GetterCalled() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.removeAll(Collections.singleton(element));
-			}
-		}, "Set.removeAll(Collection)", set);
-	}
-
-	public void testRetainAll_SetChangeEvent() throws Exception {
-		final Object element1 = delegate.createElement(set);
-		set.add(element1);
-		set.add(delegate.createElement(set));
-
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.retainAll(Arrays.asList(new Object[] { element1 }));
-			}
-		}, "Set.retainAll(Collection", set);
-	}
-
-	public void testRetainAll_SetDiffEntry() throws Exception {
-		final Object element1 = delegate.createElement(set);
-		set.add(element1);
-		Object element2 = delegate.createElement(set);
-		set.add(element2);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				set.retainAll(Arrays.asList(new Object[] { element1 }));
-			}
-		}, "Set.retainAll(Collection)", set, element2);
-	}
-
-	public void testRetainAll_GetterCalled() throws Exception {
-		set.add(delegate.createElement(set));
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.retainAll(Collections.EMPTY_SET);
-			}
-		}, "Set.retainAll(Collection)", set);
-	}
-
-	public void testClear_SetChangeEvent() throws Exception {
-		set.add(delegate.createElement(set));
-
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.clear();
-			}
-		}, "Set.clear()", set);
-	}
-
-	public void testClear_SetDiffEntry() throws Exception {
-		Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				set.clear();
-			}
-		}, "Set.clear()", set, element);
-	}
-
-	public void testClear_GetterCalled() throws Exception {
-		set.add(delegate.createElement(set));
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.clear();
-			}
-		}, "Set.clear()", set);
-	}
-
-	/**
-	 * Asserts standard behaviors of firing set change events.
-	 * <ul>
-	 * <li>Event fires once.</li>
-	 * <li>Source of the event is the provided <code>set</code>.
-	 * <li>The set change event is fired after the change event.</li>
-	 * </ul>
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param set
-	 */
-	private void assertSetChangeEventFired(Runnable runnable,
-			String methodName, IObservableSet set) {
-		List queue = new ArrayList();
-		SetChangeEventTracker setListener = new SetChangeEventTracker(queue);
-		ChangeEventTracker changeListener = new ChangeEventTracker(queue);
-
-		set.addSetChangeListener(setListener);
-		set.addChangeListener(changeListener);
-
-		runnable.run();
-
-		assertEquals(formatFail(methodName + " should fire one SetChangeEvent."), 1,
-				setListener.count);
-		assertEquals(formatFail(methodName
-				+ "'s change event observable should be the created Set."), set,
-				setListener.event.getObservable());
-
-		assertEquals(formatFail("Two notifications should have been received."), 2, queue
-				.size());
-		assertEquals(formatFail("ChangeEvent of " + methodName
-				+ " should have fired before the SetChangeEvent."),
-				changeListener, queue.get(0));
-		assertEquals(formatFail("SetChangeEvent of " + methodName
-				+ " should have fired after the ChangeEvent."), setListener,
-				queue.get(1));
-	}
-
-	/**
-	 * Asserts the set diff entry for an add operation.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param set
-	 * @param element
-	 */
-	private void assertAddDiffEntry(Runnable runnable, String methodName,
-			IObservableSet set, Object element) {
-		SetChangeEventTracker listener = new SetChangeEventTracker();
-		set.addSetChangeListener(listener);
-
-		runnable.run();
-
-		Set entries = listener.event.diff.getAdditions();
-		assertEquals(formatFail(methodName + " should result in one diff entry."), 1,
-				entries.size());
-
-		assertTrue(formatFail(methodName
-				+ " should result in a diff entry that is an addition."),
-				entries.contains(element));
-	}
-
-	/**
-	 * Asserts the set diff entry for a remove operation.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param set
-	 * @param element
-	 */
-	private void assertRemoveDiffEntry(Runnable runnable, String methodName,
-			IObservableSet set, Object element) {
-		SetChangeEventTracker listener = new SetChangeEventTracker();
-		set.addSetChangeListener(listener);
-
-		runnable.run();
-
-		Set entries = listener.event.diff.getRemovals();
-		assertEquals(formatFail(methodName + " should result in one diff entry."), 1,
-				entries.size());
-
-		assertTrue(formatFail(methodName
-				+ " should result in a diff entry that is a removal."),
-				entries.contains(element));
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				MutableObservableSetContractTest.class, delegate)
-				.addObservableContractTest(
-						ObservableCollectionContractTest.class, delegate)
-				.build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableValueContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableValueContractTest.java
deleted file mode 100644
index e03b0aa..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableValueContractTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-
-/**
- * Mutability tests for IObservableValue.
- * 
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class MutableObservableValueContractTest extends
-		ObservableDelegateTest {
-	private IObservableValueContractDelegate delegate;
-
-	private IObservableValue observable;
-
-	/**
-	 * @param delegate
-	 */
-	public MutableObservableValueContractTest(
-			IObservableValueContractDelegate delegate) {
-		this(null, delegate);
-	}
-
-	public MutableObservableValueContractTest(String testName,
-			IObservableValueContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		this.observable = (IObservableValue) getObservable();
-	}
-
-	public void testSetValue_SetsValue() throws Exception {
-		Object value = delegate.createValue(observable);
-		
-		observable.setValue(value);
-		assertEquals(formatFail("IObservableValue.setValue(Object) should set the value of the observable."), value, observable.getValue());
-	}
-	
-	public void testSetValue_ChangeEvent() throws Exception {
-		ChangeEventTracker listener = ChangeEventTracker.observe(observable);
-		
-		observable.setValue(delegate.createValue(observable));
-		
-		assertEquals(formatFail("Change event listeners were not notified"), 1, listener.count);
-		assertEquals(formatFail("IObservableValue.setValue(Object) should fire one ChangeEvent."), 1,
-				listener.count);
-		assertEquals(
-				formatFail("IObservableValue.setValue(Object)'s change event observable should be the created observable."),
-				observable, listener.event.getObservable());
-	}
-	
-	public void testSetValue_SameValue() throws Exception {
-		// invoke change to ensure observable has a value
-		delegate.change(observable);
-
-		ValueChangeEventTracker valueChangeListener = ValueChangeEventTracker.observe(observable);
-		ChangeEventTracker changeListener = ChangeEventTracker.observe(observable);
-		Object value = observable.getValue();
-		observable.setValue(value);
-
-		assertEquals(
-				formatFail("IObservableValue.setValue() should not fire a value change event when the value has not change."),
-				0, valueChangeListener.count);
-		assertEquals(
-				formatFail("IObservableValue.setValue() should not fire a change event when the value has not change."),
-				0, changeListener.count);
-	}
-	
-	public void testSetValue_RealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				observable.setValue(delegate.createValue(observable));
-			}
-		}, (CurrentRealm) observable.getRealm());
-	}
-
-	public static Test suite(IObservableValueContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				MutableObservableValueContractTest.class, delegate)
-				.addObservableContractTest(ObservableValueContractTest.class,
-						delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableCollectionContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableCollectionContractTest.java
deleted file mode 100644
index 23985ac..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableCollectionContractTest.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.Arrays;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Tests for IObservableCollection that don't mutate the collection.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class ObservableCollectionContractTest extends ObservableContractTest {
-	private IObservableCollectionContractDelegate delegate;
-
-	private IObservableCollection collection;
-
-	public ObservableCollectionContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;
-	}
-
-	public ObservableCollectionContractTest(String testName,
-			IObservableCollectionContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		collection = (IObservableCollection) getObservable();
-	}
-
-	public void testIterator_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.iterator();
-			}
-		}, "Collection.iterator()", collection);
-	}
-	
-	public void testIterator_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.iterator();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testSize_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.size();
-			}
-		}, "Collection.size()", collection);
-	}
-	
-	public void testSize_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.size();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testIsEmpty_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.isEmpty();
-			}
-		}, "Collection.isEmpty()", collection);
-	}
-	
-	public void testIsEmpty_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.isEmpty();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testContains_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.contains(delegate.createElement(collection));
-			}
-		}, "Collection.contains(...)", collection);
-	}
-	
-	public void testContains_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.contains(delegate.createElement(collection));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testContainsAll_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.containsAll(Arrays.asList(new Object[] { delegate
-						.createElement(collection) }));
-			}
-		}, "Collection.containsAll(Collection)", collection);
-	}
-
-	public void testContainsAll_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.containsAll(Arrays.asList(new Object[] { delegate
-						.createElement(collection) }));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-	
-	public void testToArray_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.toArray();
-			}
-		}, "Collection.toArray()", collection);
-	}
-	
-	public void testToArray_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.toArray();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testToArrayWithObjectArray_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.toArray(new Object[collection.size()]);
-			}
-		}, "Collection.toArray(Object[])", collection);
-	}
-	
-	public void testToArrayWithObjectArray_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.toArray(new Object[collection.size()]);
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testEquals_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.equals(collection);
-			}
-		}, "Collection.equals(Object)", collection);
-	}
-	
-	public void testEquals_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.equals(collection);
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testHashCode_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.hashCode();
-			}
-		}, "Collection.hashCode()", collection);
-	}
-	
-	public void testHashCode_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.hashCode();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testGetElementType_ReturnsType() throws Exception {
-		assertEquals(
-				"Element type of the collection should be returned from IObservableCollection.getElementType()",
-				delegate.getElementType(collection), collection
-						.getElementType());
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableCollectionContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableContractTest.java
deleted file mode 100644
index ff013f5..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableContractTest.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 208322
- *     Matthew Hall - bug 221351
- *     Matthew Hall - bug 208858
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Tests for IObservable that don't require mutating the observable.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class ObservableContractTest extends ObservableDelegateTest {
-	private IObservable observable;
-
-	private IObservableContractDelegate delegate;
-
-	public ObservableContractTest(IObservableContractDelegate delegate) {
-		this(null, delegate);
-	}
-
-	public ObservableContractTest(String testName,
-			IObservableContractDelegate delegate) {
-		super(testName, delegate);
-		
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		observable = getObservable();
-	}
-
-	public void testGetRealm_NotNull() throws Exception {
-		assertNotNull(formatFail("The observable's realm should not be null."), observable
-				.getRealm());
-	}
-
-	public void testChange_ChangeEvent() throws Exception {
-		ChangeListener listener = new ChangeListener();
-
-		observable.addChangeListener(listener);
-		delegate.change(observable);
-
-		assertEquals(
-				formatFail("A change in the observable should notify change listeners."),
-				1, listener.count);
-	}
-
-	public void testChange_EventObservable() throws Exception {
-		ChangeListener listener = new ChangeListener();
-
-		observable.addChangeListener(listener);
-		delegate.change(observable);
-
-		ChangeEvent event = listener.event;
-		assertNotNull(formatFail("change event was null"), event);
-
-		assertSame(
-				formatFail("In the change event the source of the change should be the observable."),
-				observable, event.getObservable());
-	}
-
-	public void testChange_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				delegate.change(observable);
-			}			
-		}, (CurrentRealm) observable.getRealm());
-	}
-	
-	public void testChange_ObservableRealmIsTheCurrentRealm() throws Exception {
-		ChangeListener listener = new ChangeListener();
-		observable.addChangeListener(listener);
-
-		delegate.change(observable);
-		assertTrue(
-				formatFail("On change the current realm should be the realm of the observable."),
-				listener.isCurrentRealm);
-	}
-
-	public void testRemoveChangeListener_RemovesListener() throws Exception {
-		ChangeListener listener = new ChangeListener();
-
-		observable.addChangeListener(listener);
-		delegate.change(observable);
-
-		// precondition check
-		assertEquals(formatFail("change did not notify listeners"), 1, listener.count);
-
-		observable.removeChangeListener(listener);
-		delegate.change(observable);
-
-		assertEquals(
-				formatFail("When a change listener is removed it should not still receive change events."),
-				1, listener.count);
-	}
-
-	public void testIsStale_NotStale() throws Exception {
-		delegate.setStale(observable, false);
-		assertFalse(
-				formatFail("When an observable is not stale isStale() should return false."),
-				observable.isStale());
-	}
-	
-	public void testIsStale_RealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				observable.isStale();
-			}
-		}, (CurrentRealm) observable.getRealm());
-	}
-
-	public void testIsStale_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				observable.isStale();
-			}
-		}, "isStale", observable);
-	}
-
-	public void testDispose_RemovesListeners() throws Exception {
-		ChangeListener disposedObservableListener = new ChangeListener();
-		Realm realm = observable.getRealm();
-		
-		observable.addChangeListener(disposedObservableListener);
-		observable.dispose();
-		
-		//create a new observable to fire a change from
-		observable = delegate.createObservable(realm);
-		delegate.change(observable);
-		
-		assertEquals(
-				formatFail("After being disposed listeners should not receive change events."),
-				0, disposedObservableListener.count);
-	}
-
-	/* package */static class ChangeListener implements IChangeListener {
-		int count;
-
-		ChangeEvent event;
-
-		boolean isCurrentRealm;
-
-		public void handleChange(ChangeEvent event) {
-			count++;
-			this.event = event;
-			this.isCurrentRealm = event.getObservable().getRealm().isCurrent();
-		}
-	}
-
-	public static Test suite(IObservableContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableDelegateTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableDelegateTest.java
deleted file mode 100644
index f740539..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableDelegateTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 221351
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * TestCase that provides the standard behavior expected for delegating test cases.
- * 
- * @since 3.2
- */
-public class ObservableDelegateTest extends TestCase {
-	private IObservableContractDelegate delegate;
-
-	private Realm previousRealm;
-
-	private IObservable observable;
-	private String debugInfo;
-
-	public ObservableDelegateTest(IObservableContractDelegate delegate) {
-		this(null, delegate);
-	}
-	
-	public ObservableDelegateTest(String testName, IObservableContractDelegate delegate) {
-		super(testName);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		previousRealm = Realm.getDefault();
-
-		delegate.setUp();
-		observable = doCreateObservable();
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		delegate.tearDown();
-		observable.dispose();
-		observable = null;
-		
-		RealmTester.setDefault(previousRealm);
-
-		observable = null;
-		previousRealm = null;
-	}
-	
-	/**
-	 * Creates a new observable with a default realm. Invoked from
-	 * {@link #setUp()}. Override to customize the creation of observables
-	 * (e.g. specifying a different Realm).
-	 * 
-	 * @return observable
-	 */
-	protected IObservable doCreateObservable() {
-		return delegate.createObservable(new CurrentRealm(true));
-	}
-
-	/**
-	 * Returns the created observable. The observable is created in
-	 * {@link #setUp()}. If invoked before {@link #setUp()} will be
-	 * <code>null</code>.
-	 * 
-	 * @return observable
-	 */
-	protected IObservable getObservable() {
-		return observable;
-	}	
-	
-	/**
-	 * Returns the delegate in use.
-	 * 
-	 * @return delegate
-	 */
-	protected IObservableContractDelegate getObservableContractDelegate() {
-		return delegate;
-	}
-	
-	protected String formatFail(String message) {
-		return message + getDebugString();
-	}
-	
-	private String getDebugString() {
-		if (debugInfo == null) {
-			debugInfo = "(Test: " + this.getClass().getName() + ", Delegate: " + delegate.getClass().getName() + ")";
-		}
-		
-		return debugInfo;
-	}
-
-	/**
-	 * Asserts that ObservableTracker.getterCalled(...) is invoked when the
-	 * provided <code>runnable</code> is invoked.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 *            method name to display when displaying a message
-	 * @param observable
-	 *            observable that should be collected by ObservableTracker
-	 */
-	protected void assertGetterCalled(Runnable runnable, String methodName, IObservable observable) {
-		IObservable[] observables = ObservableTracker.runAndMonitor(runnable,
-				null, null);
-	
-		int count = 0;
-		for (int i = 0; i < observables.length; i++) {
-			if (observables[i] == observable) {
-				count++;
-			}
-		}
-		
-		assertEquals(formatFail(methodName
-				+ " should invoke ObservableTracker.getterCalled() once."), 1,
-				count);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableListContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableListContractTest.java
deleted file mode 100644
index a0e48c1..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableListContractTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Tests for IObservableList that don't require mutating the collection.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class ObservableListContractTest extends
-		ObservableCollectionContractTest {
-	private IObservableList list;
-
-	private IObservableCollectionContractDelegate delegate;
-
-	/**
-	 * @param delegate
-	 */
-	public ObservableListContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;
-	}
-
-	public ObservableListContractTest(String testName,
-			IObservableCollectionContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		list = (IObservableList) getObservable();
-	}
-
-	public void testListIterator_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.listIterator();
-			}
-		}, "List.listIterator()", list);
-	}
-
-	public void testGet_GetterCalled() throws Exception {
-		list = (IObservableList) delegate.createObservableCollection(new CurrentRealm(true), 1);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.get(0);
-			}
-		}, "List.get(int)", list);
-	}
-
-	public void testIndexOf_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.indexOf(delegate.createElement(list));
-			}
-		}, "List.indexOf(int)", list);
-	}
-
-	public void testLastIndexOf_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.lastIndexOf(delegate.createElement(list));
-			}
-		}, "List.lastIndexOf(Object)", list);
-	}
-
-	public void testListIteratorAtIndex_GetterCalled() throws Exception {
-		// Create a new list instead of adding an item because the list might
-		// not be mutable
-		list = (IObservableList) delegate.createObservableCollection(new CurrentRealm(true), 1);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.listIterator(0);
-			}
-		}, "List.listIterator(int)", list);
-	}
-
-	public void testSubList_GetterCalled() throws Exception {
-		list = (IObservableList) delegate.createObservableCollection(new CurrentRealm(true), 1);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.subList(0, 1);
-			}
-		}, "List.subList(int, int)", list);
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableListContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableStaleContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableStaleContractTest.java
deleted file mode 100644
index 9c754aa..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableStaleContractTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * @since 3.3
- */
-public class ObservableStaleContractTest extends ObservableDelegateTest {
-	private IObservableContractDelegate delegate;
-	private IObservable observable;
-	
-	public ObservableStaleContractTest(IObservableContractDelegate delegate) {
-		this(null, delegate);
-	}
-	
-	public ObservableStaleContractTest(String testName, IObservableContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		observable = getObservable();
-	}
-	
-	public void testIsStale_TrueWhenStale() throws Exception {
-		delegate.setStale(observable, true);
-		assertTrue(formatFail("When stale isStale() should return true."), observable.isStale());
-	}
-	
-	public void testIsStale_FalseWhenNotStale() throws Exception {
-		delegate.setStale(observable, false);
-		assertFalse(formatFail("When not stale isStale() should return false."), observable.isStale());
-	}
-
-	public void testBecomingStaleFiresStaleEvent() throws Exception {
-		StaleListener listener = new StaleListener();
-
-		// precondition
-		ensureStale(observable, false);
-
-		observable.addStaleListener(listener);
-		delegate.setStale(observable, true);
-
-		assertEquals(formatFail("When becoming stale listeners should be notified."), 1, listener.count);
-	}
-
-	public void testStaleEventObservable() throws Exception {
-		StaleListener listener = new StaleListener();
-
-		// precondition
-		ensureStale(observable, false);
-
-		observable.addStaleListener(listener);
-		delegate.setStale(observable, true);
-
-		StaleEvent event = listener.event;
-		assertNotNull(formatFail("stale event was null"), event);
-		assertEquals(formatFail("When notifying listeners of becoming stale the observable should be the source of the event."), observable,
-				event.getObservable());
-	}
-
-	public void testRemoveStaleListener_RemovesListener() throws Exception {
-		StaleListener listener = new StaleListener();
-
-		observable.addStaleListener(listener);
-		ensureStale(observable, false);
-		delegate.setStale(observable, true);
-
-		// precondition check
-		assertEquals(formatFail("set stale did not notify listeners"), 1, listener.count);
-
-		observable.removeStaleListener(listener);
-		ensureStale(observable, false);
-		delegate.setStale(observable, true);
-
-		assertEquals(formatFail("Once removed stale listeners should not be notified of becoming stale."), 1,
-				listener.count);
-	}
-
-	public void testStaleListenersAreNotNotifiedWhenObservableIsNoLongerStale()
-			throws Exception {
-		ensureStale(observable, true);
-
-		StaleListener listener = new StaleListener();
-		observable.addStaleListener(listener);
-		delegate.setStale(observable, false);
-
-		assertEquals(formatFail("Stale listeners should not be notified when the stale state changes from true to false."), 0,
-				listener.count);
-	}
-
-	public void testObservableRealmIsCurrentOnStale() throws Exception {
-		ensureStale(observable, false);
-
-		StaleListener listener = new StaleListener();
-		observable.addStaleListener(listener);
-		delegate.setStale(observable, true);
-
-		assertTrue(formatFail("When notifying listeners of becoming stale the observable's realm should be the current realm."),
-				listener.isCurrentRealm);
-	}
-	
-	/**
-	 * Ensures that stale is set to the provided state. Will throw an
-	 * AssertionFailedError if setting of the state is unsuccessful.
-	 * 
-	 * @param observable
-	 * @param stale
-	 */
-	private void ensureStale(IObservable observable, boolean stale) {
-		if (observable.isStale() != stale) {
-			delegate.setStale(observable, stale);
-		}
-
-		assertEquals(stale, observable.isStale());
-	}
-	
-	/* package */static class StaleListener implements IStaleListener {
-		int count;
-
-		StaleEvent event;
-
-		boolean isCurrentRealm;
-
-		public void handleStale(StaleEvent staleEvent) {
-			count++;
-			this.event = staleEvent;
-			this.isCurrentRealm = staleEvent.getObservable().getRealm()
-					.isCurrent();
-		}
-	}
-
-	public static Test suite(IObservableContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableStaleContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableValueContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableValueContractTest.java
deleted file mode 100644
index 5ea3098..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableValueContractTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-
-/**
- * @since 3.2
- */
-public class ObservableValueContractTest extends ObservableContractTest {
-	private IObservableValueContractDelegate delegate;
-	private IObservableValue observable;
-
-	public ObservableValueContractTest(IObservableValueContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;			
-	}
-
-	/**
-	 * @param testName
-	 * @param delegate
-	 */
-	public ObservableValueContractTest(String testName,
-			IObservableValueContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.databinding.conformance.ObservableContractTest#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		observable = (IObservableValue) getObservable();
-	}
-
-	public void testChange_ValueChangeEvent() throws Exception {
-		ValueChangeEventTracker listener = ValueChangeEventTracker.observe(observable);
-
-		delegate.change(observable);
-		assertEquals(formatFail("On change value change listeners should be notified."), 1,
-				listener.count);
-	}
-
-	public void testGetValueType_ExpectedType() throws Exception {
-		assertEquals(formatFail("Type of the value should be returned from getType()."),
-				delegate.getValueType(observable), observable.getValueType());
-	}
-
-	public void testChange_OrderOfNotifications() throws Exception {
-		final List listeners = new ArrayList();
-		IChangeListener changeListener = new IChangeListener() {
-			public void handleChange(ChangeEvent event) {
-				listeners.add(this);
-			}
-		};
-
-		IValueChangeListener valueChangeListener = new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-				listeners.add(this);
-			}
-		};
-
-		observable.addChangeListener(changeListener);
-		observable.addValueChangeListener(valueChangeListener);
-
-		delegate.change(observable);
-		
-		assertTrue(formatFail("Change Listeners were not notified on change."), listeners.size() > 0);
-		
-		// not asserting the fact that both are notified as this is asserted in
-		// other tests
-		assertEquals(
-				formatFail("Change listeners should be notified before value change listeners."),
-				changeListener, listeners.get(0));
-		assertEquals(
-				formatFail("Value change listeners should be notified after change listeners."),
-				valueChangeListener, listeners.get(1));
-	}
-
-	public void testChange_ValueChangeEventDiff() throws Exception {
-		ValueChangeEventTracker listener = ValueChangeEventTracker.observe(observable);
-		Object oldValue = observable.getValue();
-
-		delegate.change(observable);
-
-		ValueChangeEvent event = listener.event;
-		
-		assertTrue(formatFail("Change Listeners were not notified on change."), listener.count > 0);
-		
-		assertEquals(
-				formatFail("When a value change event is fired the old value should be the previous value of the observable value."),
-				oldValue, event.diff.getOldValue());
-		assertEquals(
-				formatFail("When a value change event is fired the new value should be the same as the current value of the observable value."),
-				observable.getValue(), event.diff.getNewValue());
-	}
-
-	public void testChange_ValueChangeEventFiredAfterValueIsSet()
-			throws Exception {
-		class ValueChangeListener implements IValueChangeListener {
-			Object value;
-
-			public void handleValueChange(ValueChangeEvent event) {
-				this.value = event.getObservableValue().getValue();
-			}
-		}
-		
-		ValueChangeListener listener = new ValueChangeListener();
-		observable.addValueChangeListener(listener);
-		delegate.change(observable);
-		assertEquals(
-				formatFail("When a value change event is fired the new value should be applied before firing the change event."),
-				listener.value, observable.getValue());
-	}
-
-	public void testRemoveValueChangeListener_RemovesListener() throws Exception {
-		ValueChangeEventTracker listener = ValueChangeEventTracker.observe(observable);
-		delegate.change(observable);
-
-		// precondition
-		assertEquals(formatFail("Value change listeners should be notified on change."), 1,
-				listener.count);
-
-		observable.removeValueChangeListener(listener);
-		delegate.change(observable);
-
-		assertEquals(
-				formatFail("Value change listeners should not be notified after they've been removed from the observable."),
-				1, listener.count);
-	}
-
-	public void testGetValue_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				observable.getValue();
-			}
-		}, formatFail("IObservableValue.getValue()"), observable);
-	}
-
-	public void testGetValue_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				observable.getValue();
-			}
-		}, (CurrentRealm) observable.getRealm());
-	}
-
-	public static Test suite(IObservableValueContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableValueContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableCollectionContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableCollectionContractDelegate.java
deleted file mode 100644
index 5455d7f..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableCollectionContractDelegate.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Abstract implementation of {@link IObservableCollectionContractDelegate}.
- * 
- * @since 3.2
- */
-public abstract class AbstractObservableCollectionContractDelegate extends
-		AbstractObservableContractDelegate implements
-		IObservableCollectionContractDelegate {
-
-	/**
-	 * Invokes {@link IObservableCollectionContractDelegate#createObservableCollection(Realm, int)}.
-	 * @param realm 
-	 * @return observable
-	 */
-	public final IObservable createObservable(Realm realm) {
-		return createObservableCollection(realm, 0);
-	}
-	
-	public Object createElement(IObservableCollection collection) {
-		//no op
-		return null;
-	}
-
-	public Object getElementType(IObservableCollection collection) {
-		//no op
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableContractDelegate.java
deleted file mode 100644
index 8146760..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableContractDelegate.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Abstract implementation of {@link IObservableContractDelegate}.
- * 
- * @since 1.1
- */
-public abstract class AbstractObservableContractDelegate implements
-		IObservableContractDelegate {
-
-	public void setUp() {
-		// no op
-	}
-
-	public void tearDown() {
-		// no op
-	}
-
-	public void change(IObservable observable) {
-		// no op
-	}
-
-	public void setStale(IObservable observable, boolean stale) {
-		// no op
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableValueContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableValueContractDelegate.java
deleted file mode 100644
index 6de2c2c..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableValueContractDelegate.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * Abstract implementation of {@link IObservableValueContractDelegate}.
- * 
- * @since 1.1
- */
-public abstract class AbstractObservableValueContractDelegate extends
-		AbstractObservableContractDelegate implements
-		IObservableValueContractDelegate {
-
-	/**
-	 * Invokes {@link #createObservableValue(Realm)}.
-	 * @param realm 
-	 * @return observable
-	 */
-	public final IObservable createObservable(Realm realm) {
-		return createObservableValue(realm);
-	}
-
-	/**
-	 * Default implementation returns <code>null</code>.
-	 * @param observable 
-	 * @return value type
-	 */
-	public Object getValueType(IObservableValue observable) {
-		// no op
-		return null;
-	}
-	
-	/**
-	 * Default implementation returns <code>null</code>.
-	 * @param observable 
-	 * @return value
-	 */
-	public Object createValue(IObservableValue observable) {
-		//no op
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableCollectionContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableCollectionContractDelegate.java
deleted file mode 100644
index 5fb412c..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableCollectionContractDelegate.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Delegate interface for an IObservableCollection.
- * 
- * <p>
- * This interface is not intended to be implemented by clients. Clients should
- * instead subclass one of the classes that implement this interface. Note that
- * direct implementers of this interface outside of the framework will be broken
- * in future releases when methods are added to this interface.
- * </p>
- * 
- * @since 1.1
- */
-public interface IObservableCollectionContractDelegate extends
-		IObservableContractDelegate {
-	/**
-	 * Creates a new observable collection with the provided
-	 * <code>elementCount</code>.
-	 * 
-	 * @param realm realm of the collection
-	 * @param elementCount
-	 *            number of elements to initialize the collection with
-	 * 
-	 * @return new observable collection
-	 */
-	public IObservableCollection createObservableCollection(Realm realm, int elementCount);
-
-	/**
-	 * Creates a new element of the appropriate type for the provided
-	 * <code>collection</code>. This element will be employed to assert the
-	 * addition and removal of elements in the collection.
-	 * 
-	 * @param collection
-	 * @return valid element for the collection
-	 */
-	public Object createElement(IObservableCollection collection);
-
-	/**
-	 * Returns the expected type of the elements in the collection.
-	 * 
-	 * @param collection
-	 * @return element type
-	 */
-	public Object getElementType(IObservableCollection collection);
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableContractDelegate.java
deleted file mode 100644
index bcd59bb..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableContractDelegate.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Delegate interface for observables.
- * 
- * <p>
- * This interface is not intended to be implemented by clients. Clients should
- * instead subclass one of the classes that implement this interface. Note that
- * direct implementers of this interface outside of the framework will be broken
- * in future releases when methods are added to this interface.
- * </p>
- * 
- * @since 1.1
- */
-public interface IObservableContractDelegate {
-	/**
-	 * Notifies the delegate of the start of a test.
-	 */
-	public void setUp();
-
-	/**
-	 * Notifies the delegate of the end of a test.
-	 */
-	public void tearDown();
-
-	/**
-	 * Invokes an operation to set the stale state of the provided
-	 * <code>observable</code>.
-	 * 
-	 * @param observable
-	 * @param stale
-	 */
-	public void setStale(IObservable observable, boolean stale);
-
-	/**
-	 * Creates a new observable.
-	 * 
-	 * @param realm realm of the observable
-	 * @return observable
-	 */
-	public IObservable createObservable(Realm realm);
-
-	/**
-	 * Invokes a change operation resulting in a change event being fired from
-	 * the observable. The preferred approach is to change the observed object
-	 * resulting in an observable event. There is no guaranteed as to the state
-	 * of the observable when invoked. The observable could be disposed to
-	 * assert the proper behavior of dispose.
-	 * 
-	 * @param observable
-	 */
-	public void change(IObservable observable);
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableValueContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableValueContractDelegate.java
deleted file mode 100644
index 873b005..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableValueContractDelegate.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * Delegate interface for an observable value.
- * 
- * <p>
- * This interface is not intended to be implemented by clients. Clients should
- * instead subclass one of the classes that implement this interface. Note that
- * direct implementers of this interface outside of the framework will be broken
- * in future releases when methods are added to this interface.
- * </p>
- * 
- * @since 1.1
- */
-public interface IObservableValueContractDelegate extends
-		IObservableContractDelegate {
-
-	/**
-	 * Creates a new observable value.
-	 * 
-	 * @param realm
-	 *            realm of the observable
-	 * @return observable value
-	 */
-	public IObservableValue createObservableValue(Realm realm);
-
-	/**
-	 * Returns the expected type of the observable.
-	 * 
-	 * @param observable
-	 * @return type
-	 */
-	public Object getValueType(IObservableValue observable);
-	
-	/**
-	 * Returns a valid value that is not the current value of the observable.
-	 * 
-	 * @param observable
-	 * @return value
-	 */
-	public Object createValue(IObservableValue observable);
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTMutableObservableValueContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTMutableObservableValueContractTest.java
deleted file mode 100644
index b16fb6e..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTMutableObservableValueContractTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.swt;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.conformance.MutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.DelegatingRealm;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Mutability tests for IObservableValue for a SWT widget.
- * 
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class SWTMutableObservableValueContractTest extends
-		MutableObservableValueContractTest {
-	private IObservableValueContractDelegate delegate;
-
-	public SWTMutableObservableValueContractTest(
-			IObservableValueContractDelegate delegate) {
-		this(null, delegate);
-	}
-
-	/**
-	 * @param testName
-	 * @param delegate
-	 */
-	public SWTMutableObservableValueContractTest(String testName,
-			IObservableValueContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	/**
-	 * Creates a new observable passing the realm for the current display.
-	 * @return observable
-	 */
-	protected IObservable doCreateObservable() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		DelegatingRealm delegateRealm = new DelegatingRealm(SWTObservables
-				.getRealm(display));
-		delegateRealm.setCurrent(true);
-
-		return delegate.createObservable(delegateRealm);
-	}
-
-	public static Test suite(IObservableValueContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				SWTMutableObservableValueContractTest.class, delegate)
-				.addObservableContractTest(
-						SWTObservableValueContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTObservableValueContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTObservableValueContractTest.java
deleted file mode 100644
index ef21669..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTObservableValueContractTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.swt;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.conformance.ObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.DelegatingRealm;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Tests for IObservableValue that don't mutate the value.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class SWTObservableValueContractTest extends ObservableValueContractTest {
-	private IObservableValueContractDelegate delegate;
-
-	/**
-	 * @param delegate
-	 */
-	public SWTObservableValueContractTest(
-			IObservableValueContractDelegate delegate) {
-		this(null, delegate);
-	}
-
-	public SWTObservableValueContractTest(String testName,
-			IObservableValueContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	/**
-	 * Creates a new observable passing the realm for the current display.
-	 * @return observable
-	 */
-	protected IObservable doCreateObservable() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		DelegatingRealm delegateRealm = new DelegatingRealm(SWTObservables
-				.getRealm(display));
-		delegateRealm.setCurrent(true);
-
-		return delegate.createObservable(delegateRealm);
-	}
-
-	public static Test suite(IObservableValueContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(SWTObservableValueContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ChangeEventTracker.java
deleted file mode 100644
index 1e38756..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ChangeEventTracker.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Listener for tracking the firing of ChangeEvents.
- */
-public class ChangeEventTracker implements IChangeListener {
-	public int count;
-	public ChangeEvent event;
-
-	/**
-	 * Queue that the listener will add itself too when it is notified of an
-	 * event. Used to determine order of notifications of listeners.  Can be null.
-	 */
-	public final List queue;
-
-	public ChangeEventTracker() {
-		queue = null;
-	}
-
-	public ChangeEventTracker(List notificationQueue) {
-		this.queue = notificationQueue;
-	}
-
-	public void handleChange(ChangeEvent event) {
-		count++;
-		this.event = event;
-		if (queue != null) {
-			queue.add(this);
-		}
-	}
-
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static ChangeEventTracker observe(IObservable observable) {
-		ChangeEventTracker tracker = new ChangeEventTracker();
-		observable.addChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/CurrentRealm.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/CurrentRealm.java
deleted file mode 100644
index 82e56fb..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/CurrentRealm.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Allows for the toggling of the current status of the realm. The
- * asyncExec(...) implementations do nothing.
- * 
- * @since 3.2
- */
-public class CurrentRealm extends Realm {
-	private boolean current;
-
-	public CurrentRealm() {
-		this(false);
-	}
-
-	public CurrentRealm(boolean current) {
-		this.current = current;
-	}
-
-	public boolean isCurrent() {
-		return current;
-	}
-
-	public void setCurrent(boolean current) {
-		this.current = current;
-	}
-
-	protected void syncExec(Runnable runnable) {
-		super.syncExec(runnable);
-	}
-
-	public void asyncExec(Runnable runnable) {
-		throw new UnsupportedOperationException(
-				"CurrentRealm does not support asyncExec(Runnable)."); //$NON-NLS-1$
-	}
-
-	protected static Realm setDefault(Realm realm) {
-		return Realm.setDefault(realm);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DelegatingRealm.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DelegatingRealm.java
deleted file mode 100644
index 229d5fc..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DelegatingRealm.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Realm that will delegate to another for all operations except calls to
- * {@link #isCurrent()}. The current status can be set by the consumer to
- * enable testing of realm checks.
- * 
- * @since 3.2
- */
-public class DelegatingRealm extends CurrentRealm {
-	private Realm realm;
-
-	public DelegatingRealm(Realm realm) {
-		this.realm = realm;
-	}
-
-	protected void syncExec(Runnable runnable) {
-		realm.exec(runnable);
-	}
-
-	public void asyncExec(Runnable runnable) {
-		realm.asyncExec(runnable);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ListChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ListChangeEventTracker.java
deleted file mode 100644
index da2a263..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ListChangeEventTracker.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-
-/**
- * Listener for tracking the firing of ListChangeEvents.
- */
-public class ListChangeEventTracker implements IListChangeListener {
-	public int count;
-
-	public ListChangeEvent event;
-
-	/**
-	 * Queue that the listener will add itself too when it is notified of an
-	 * event. Used to determine order of notifications of listeners.
-	 */
-	public final List listenerQueue;
-
-	public ListChangeEventTracker() {
-		this(null);
-	}
-
-	public ListChangeEventTracker(List listenerQueue) {
-		this.listenerQueue = listenerQueue;
-	}
-
-	public void handleListChange(ListChangeEvent event) {
-		count++;
-		this.event = event;
-		if (listenerQueue != null) {
-			listenerQueue.add(this);
-		}
-	}
-	
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static ListChangeEventTracker observe(IObservableList observable) {
-		ListChangeEventTracker tracker = new ListChangeEventTracker();
-		observable.addListChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/MapChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/MapChangeEventTracker.java
deleted file mode 100644
index 52e87e9..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/MapChangeEventTracker.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-
-/**
- * Listener for tracking the firing of ChangeEvents.
- */
-public class MapChangeEventTracker implements IMapChangeListener {
-	public int count;
-
-	public MapChangeEvent event;
-
-	public List queue;
-	
-	public MapChangeEventTracker() {
-		this(null);
-	}
-	
-	public MapChangeEventTracker(List queue) {
-		this.queue = queue;
-	}
-
-	public void handleMapChange(MapChangeEvent event) {
-		count++;
-		this.event = event;
-		
-		if (queue != null) {
-			queue.add(this);
-		}
-	}
-	
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static MapChangeEventTracker observe(IObservableMap observable) {
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		observable.addMapChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/RealmTester.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/RealmTester.java
deleted file mode 100644
index bae6b17..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/RealmTester.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.util;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.AssertionFailedException;
-
-/**
- * Aids in the testing of Realms.
- * 
- * @since 3.2
- */
-public class RealmTester {
-
-	/**
-	 * Sets the default realm without using Realm.runWithDefault() for testing
-	 * purposes.
-	 * 
-	 * @param realm
-	 */
-	public static void setDefault(Realm realm) {
-		CurrentRealm.setDefault(realm);
-	}
-
-	/**
-	 * Runs the provided <code>runnable</code> when the realm is both current
-	 * and not current. It checks for AssertionFailedExceptions and if an
-	 * exception occurs or doesn't occur as expected the test fails. The realm
-	 * of an observable created before the method was invoked must be of type
-	 * {@link CurrentRealm}. The default realm during the runnable invocation
-	 * is set to an instance of {@link CurrentRealm} when the runnable is
-	 * invoked.
-	 * 
-	 * @param runnable
-	 */
-	public static void exerciseCurrent(Runnable runnable) {
-		CurrentRealm previousRealm = (CurrentRealm) Realm.getDefault();
-		CurrentRealm realm = new CurrentRealm();
-		setDefault(realm);
-
-		try {
-			realm.setCurrent(true);
-			if (previousRealm != null) {
-				previousRealm.setCurrent(true);
-			}
-
-			try {
-				runnable.run();
-			} catch (AssertionFailedException e) {
-				Assert
-						.fail("Correct realm, exception should not have been thrown");
-			}
-
-			realm.setCurrent(false);
-			if (previousRealm != null) {
-				previousRealm.setCurrent(false);
-			}
-
-			try {
-				runnable.run();
-				Assert
-						.fail("Incorrect realm, exception should have been thrown");
-			} catch (AssertionFailedException e) {
-			}
-		} finally {
-			setDefault(previousRealm);
-		}
-	}
-
-	/**
-	 * Runs the provided <code>runnable</code> when the realm is both current
-	 * and not current. It checks for AssertionFailedExceptions and if an
-	 * exception occurs or doesn't occur as expected the test fails.
-	 * 
-	 * @param runnable
-	 * @param realm
-	 */
-	public static void exerciseCurrent(Runnable runnable, CurrentRealm realm) {
-		realm.setCurrent(true);
-
-		try {
-			runnable.run();
-		} catch (AssertionFailedException e) {
-			Assert.fail("Correct realm, exception should not have been thrown");
-		}
-
-		realm.setCurrent(false);
-
-		try {
-			runnable.run();
-			Assert.fail("Incorrect realm, exception should have been thrown");
-		} catch (AssertionFailedException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SetChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SetChangeEventTracker.java
deleted file mode 100644
index 9de2f88..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SetChangeEventTracker.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-
-public class SetChangeEventTracker implements ISetChangeListener {
-	public int count;
-
-	public SetChangeEvent event;
-
-	/**
-	 * Queue that the listener will add itself too when it is notified of an
-	 * event. Used to determine order of notifications of listeners.
-	 */
-	public final List listenerQueue;
-
-	public SetChangeEventTracker() {
-		this(null);
-	}
-
-	public SetChangeEventTracker(List notificationQueue) {
-		this.listenerQueue = notificationQueue;
-	}
-
-	public void handleSetChange(SetChangeEvent event) {
-		count++;
-		this.event = event;
-		if (listenerQueue != null) {
-			listenerQueue.add(this);
-		}
-	}
-	
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static SetChangeEventTracker observe(IObservableSet observable) {
-		SetChangeEventTracker tracker = new SetChangeEventTracker();
-		observable.addSetChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SuiteBuilder.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SuiteBuilder.java
deleted file mode 100644
index cc50de5..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SuiteBuilder.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 208322
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-
-import org.eclipse.jface.databinding.conformance.delegate.IObservableContractDelegate;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Builds a test suite.
- * 
- * @since 1.1
- */
-public class SuiteBuilder {
-	private LinkedHashSet content;
-
-	public SuiteBuilder() {
-		content = new LinkedHashSet();
-	}
-
-	/**
-	 * Adds all test methods from the provided <code>testCase</code> to the
-	 * suite.
-	 * 
-	 * @param testCase
-	 * @return builder
-	 */
-	public SuiteBuilder addTests(Class testCase) {
-		content.add(testCase);
-		return this;
-	}
-
-	/**
-	 * Adds all test methods from the provided <code>testCase</code> with the
-	 * provided <code>parameters</code>. A constructor must exist in the
-	 * testCase that accepts a String as the first parameter followed by
-	 * parameters matching the provided parameters. If an appropriate
-	 * constructor is not found an exception will be thrown.
-	 * 
-	 * @param testCase
-	 * @param parameters
-	 * @return builder
-	 */
-	public SuiteBuilder addParameterizedTests(Class testCase,
-			Object[] parameters) {
-
-		Constructor constructor = findConstructor(testCase, parameters);
-		if (constructor == null) {
-			throw new IllegalArgumentException(
-					"The parameters provided don't match a constructor found in ["
-							+ testCase.getName() + "]");
-		}
-
-		content.add(new ParameterizedTest(testCase, constructor, parameters));
-
-		return this;
-	}
-
-	/**
-	 * Convenience method for invoking
-	 * {@link #addParameterizedTests(Class, Object[])} with a delegate.
-	 * 
-	 * @param testCase
-	 * @param delegate
-	 * @return builder
-	 */
-	public SuiteBuilder addObservableContractTest(Class testCase,
-			IObservableContractDelegate delegate) {
-
-		addParameterizedTests(testCase, new Object[] {delegate});
-		return this;
-	}
-
-	/**
-	 * Builds a new TestSuite out of the tests.
-	 * 
-	 * @return suite
-	 */
-	public TestSuite build() {
-		TestSuite suite = new TestSuite();
-
-		for (Iterator it = content.iterator(); it.hasNext();) {
-			Object o = it.next();
-			if (o instanceof Class) {
-				suite.addTestSuite((Class) o);
-			} else if (o instanceof ParameterizedTest) {
-				ParameterizedTest test = (ParameterizedTest) o;
-
-				// Outer test named for parameterized test class
-				TestSuite testClassSuite = new TestSuite();
-				testClassSuite.setName(test.testClass.getName());
-
-				// Inner test named for parameter
-				TestSuite parameterSuite = new TestSuite();
-				parameterSuite.setName(test.parameters[0].getClass().getName());
-				testClassSuite.addTest(parameterSuite);
-
-				Method[] methods = test.testClass.getMethods();
-				for (int i = 0; i < methods.length; i++) {
-					String name = methods[i].getName();
-					if (name.startsWith("test")) {
-						try {
-							parameterSuite.addTest((Test) test.constructor
-									.newInstance(toParamArray(name,
-											test.parameters)));
-						} catch (Exception e) {
-							throw new RuntimeException(e);
-						}
-					}
-				}
-
-				if (testClassSuite.countTestCases() > 0)
-					suite.addTest(testClassSuite);
-			}
-		}
-
-		return suite;
-	}
-
-	private Object[] toParamArray(String testName, Object[] parameters) {
-		Object[] result = new Object[parameters.length + 1];
-		result[0] = testName;
-		System.arraycopy(parameters, 0, result, 1, parameters.length);
-		return result;
-	}
-
-	/**
-	 * Returns the constructor that has a String as the first parameters and
-	 * then matches the type of the parameters.
-	 * @param clazz 
-	 * @param parameters
-	 * @return constructor
-	 */
-	private static Constructor findConstructor(Class clazz, Object[] parameters) {
-		Constructor[] constructors = clazz.getConstructors();
-		int expectedParametersLength = parameters.length + 1;
-
-		for (int i = 0; i < constructors.length; i++) {
-			Constructor constructor = constructors[i];
-			Class[] types = constructor.getParameterTypes();
-
-			if (types.length != expectedParametersLength
-					|| !String.class.equals(types[0])) {
-				continue;
-			}
-
-			boolean skip = false;
-			for (int j = 1; j < types.length; j++) {
-				Class type = types[j];
-				if (!type.isInstance(parameters[j - 1])) {
-					skip = true;
-					break;
-				}
-			}
-
-			if (!skip) {
-				return constructor;
-			}
-		}
-
-		return null;
-	}
-
-	/* package */static class ParameterizedTest {
-		final Constructor constructor;
-
-		final Object[] parameters;
-
-		private Class testClass;
-
-		ParameterizedTest(Class testClass, Constructor constructor,
-				Object[] parameterss) {
-			this.testClass = testClass;
-			this.constructor = constructor;
-			this.parameters = parameterss;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ValueChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ValueChangeEventTracker.java
deleted file mode 100644
index b54bd14..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ValueChangeEventTracker.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-
-/**
- * Listener for tracking the firing of ValueChangeEvents.
- */
-public class ValueChangeEventTracker implements IValueChangeListener {
-	public int count;
-
-	public ValueChangeEvent event;
-
-	public final List queue;
-
-	public ValueChangeEventTracker() {
-		this(null);
-	}
-
-	public ValueChangeEventTracker(List queue) {
-		this.queue = queue;
-	}
-
-	public void handleValueChange(ValueChangeEvent event) {
-		count++;
-		this.event = event;
-
-		if (queue != null) {
-			queue.add(this);
-		}
-	}
-
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static ValueChangeEventTracker observe(IObservableValue observable) {
-		ValueChangeEventTracker tracker = new ValueChangeEventTracker();
-		observable.addValueChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/.classpath b/tests/org.eclipse.jface.tests.databinding/.classpath
deleted file mode 100644
index ce73933..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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.jface.tests.databinding/.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 9ad30f4..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,354 +0,0 @@
-#Fri Apr 04 13:14:00 GMT-07:00 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=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=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=80
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8ee15567..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,116 +0,0 @@
-#Mon Dec 03 13:56:42 EST 2007
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=false
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.2\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=false
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12a7331..0000000
--- a/tests/org.eclipse.jface.tests.databinding/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Mon Dec 03 13:56:42 EST 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.jface.tests.databinding/JFace-Data Binding Test Suite.launch b/tests/org.eclipse.jface.tests.databinding/JFace-Data Binding Test Suite.launch
deleted file mode 100644
index 5d1c724..0000000
--- a/tests/org.eclipse.jface.tests.databinding/JFace-Data Binding Test Suite.launch
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSuite.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.jface.tests.databinding.BindingTestSuite"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.jface.tests.databinding"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF b/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF
deleted file mode 100644
index 1614098..0000000
--- a/tests/org.eclipse.jface.tests.databinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface.tests.databinding
-Bundle-Version: 1.0.101.qualifier
-Bundle-ClassPath: jfacebindingtests.jar
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.databinding,
- org.junit,
- org.eclipse.swt,
- org.eclipse.jface,
- org.eclipse.core.runtime,
- org.eclipse.jface.examples.databinding,
- org.eclipse.core.databinding.beans,
- org.eclipse.jface.databinding,
- org.eclipse.jface.tests.databinding.conformance
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
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/core/tests/databinding/AggregateValidationStatusTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/AggregateValidationStatusTest.java
deleted file mode 100644
index 28d5b06..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/AggregateValidationStatusTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding;
-
-import org.eclipse.core.databinding.AggregateValidationStatus;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-
-/**
- * @since 1.1
- */
-public class AggregateValidationStatusTest extends AbstractSWTTestCase {
-	public void testAggregateValidationStatusValueType() throws Exception {
-		DataBindingContext dbc = new DataBindingContext();
-		AggregateValidationStatus status = new AggregateValidationStatus(dbc
-				.getBindings(), AggregateValidationStatus.MAX_SEVERITY);
-		assertEquals(IStatus.class, status.getValueType());
-	}
-
-	public void testConstructor_DefaultRealm() throws Exception {
-		DataBindingContext dbc = new DataBindingContext();
-		AggregateValidationStatus status = new AggregateValidationStatus(dbc
-				.getBindings(), AggregateValidationStatus.MAX_SEVERITY);
-		assertEquals(Realm.getDefault(), status.getRealm());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/DatabindingContextTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/DatabindingContextTest.java
deleted file mode 100755
index aa64437..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/DatabindingContextTest.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 159539
- *     Brad Reynolds - bug 140644
- *     Brad Reynolds - bug 159940
- *     Brad Reynolds - bug 116920, 159768
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-package org.eclipse.core.tests.databinding;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.databinding.AggregateValidationStatus;
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateListStrategy;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class DatabindingContextTest extends AbstractDefaultRealmTestCase {
-	private DataBindingContext dbc;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		dbc = new DataBindingContext();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		if (dbc != null) {
-			dbc.dispose();
-		}
-		super.tearDown();
-	}
-
-	public void testDisposeBindings() throws Exception {
-		Binding binding = new BindingStub();
-		binding.init(dbc);
-
-		assertFalse(binding.isDisposed());
-		dbc.dispose();
-		assertTrue("binding should be diposed when dbc is disposed", binding
-				.isDisposed());
-	}
-
-	public void testBindValue() throws Exception {
-		IObservableValue target = WritableValue.withValueType(String.class);
-		IObservableValue model = WritableValue.withValueType(String.class);
-
-		Binding binding = dbc.bindValue(target, model, null, null);
-		assertTrue("binding is of the incorrect type",
-				binding.getClass().getName().endsWith("ValueBinding"));
-	}
-
-	public void testBindList() throws Exception {
-		IObservableList target = WritableList.withElementType(Object.class);
-		IObservableList model = WritableList.withElementType(Object.class);
-
-		Binding binding = dbc.bindList(target, model, null, null);
-		assertTrue("binding is of the incorrect type",
-				binding.getClass().getName().endsWith("ListBinding"));
-	}
-
-	/**
-	 * Asserts that IStatus 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 = WritableValue.withValueType(String.class);
-		WritableValue modelObservable = WritableValue.withValueType(String.class);
-
-		final String errorMessage = "error";
-		ValueChangeEventTracker errorCounter = new ValueChangeEventTracker();
-		ChangeEventTracker errorsCounter = new ChangeEventTracker();
-
-		IObservableValue error = new AggregateValidationStatus(dbc
-				.getBindings(), AggregateValidationStatus.MAX_SEVERITY);
-		error.addValueChangeListener(errorCounter);
-		assertTrue(((IStatus) error.getValue()).isOK());
-
-		IObservableMap errors = dbc.getValidationStatusMap();
-		errors.addChangeListener(errorsCounter);
-		assertEquals(0, errors.size());
-
-		IValidator validator = new IValidator() {
-			public IStatus validate(Object value) {
-				return ValidationStatus.error(errorMessage);
-			}
-		};
-
-		dbc
-				.bindValue(targetObservable, modelObservable,
-						new UpdateValueStrategy().setAfterGetValidator(validator), null);
-
-		targetObservable.setValue("");
-		assertFalse(((IStatus) error.getValue()).isOK());
-		assertEquals(errorMessage, ((IStatus) error.getValue()).getMessage());
-		assertEquals(1, errors.size());
-		assertEquals(1, errorsCounter.count);
-		assertEquals(1, errorCounter.count);
-		error.dispose();
-	}
-
-	/**
-	 * Asserts that then
-	 * {@link DataBindingContext#bindValue(IObservableValue, IObservableValue, org.eclipse.jface.databinding.DefaultBindSpec, BindSpec)}
-	 * if invoked the created binding is added to the internal list of bindings.
-	 * 
-	 * @throws Exception
-	 */
-	public void testBindValueAddBinding() throws Exception {
-		WritableValue targetValue = WritableValue.withValueType(String.class);
-		WritableValue modelValue = WritableValue.withValueType(String.class);
-
-		assertNotNull(dbc.getBindings());
-		assertEquals(0, dbc.getBindings().size());
-
-		Binding binding = dbc.bindValue(targetValue, modelValue, null, 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.DefaultBindSpec, UpdateListStrategy)}
-	 * is invoked the created binding is added to the intenal list of bindings.
-	 * 
-	 * @throws Exception
-	 */
-	public void testBindListAddBinding() throws Exception {
-		WritableList targetList = new WritableList(new ArrayList(),
-				Object.class);
-		WritableList modelList = new WritableList(new ArrayList(), Object.class);
-
-		assertNotNull(dbc.getBindings());
-		assertEquals(0, dbc.getBindings().size());
-
-		Binding binding = dbc.bindList(targetList, modelList, null, null);
-		assertNotNull(binding);
-		assertNotNull(dbc.getBindings());
-		assertEquals(1, dbc.getBindings().size());
-		assertEquals(binding, dbc.getBindings().get(0));
-	}
-
-	public void testGetBindingsImmutability() throws Exception {
-		BindingStub binding = new BindingStub();
-		binding.init(dbc);
-
-		try {
-			dbc.getBindings().remove(0);
-			fail("exception should have been thrown");
-		} catch (UnsupportedOperationException e) {
-		}
-	}
-
-	public void testRemoveBinding() throws Exception {
-		BindingStub binding = new BindingStub();
-		binding.init(dbc);
-
-		assertTrue("context should contain the binding", dbc.getBindings()
-				.contains(binding));
-		binding.dispose();
-		assertFalse("binding should have been removed", dbc.getBindings()
-				.contains(binding));
-	}
-
-	/**
-	 * Asserts that when a ValueBinding is created validation is ran to ensure
-	 * that the validation status of the Binding reflects the validity of the
-	 * value in the target.
-	 * 
-	 * @throws Exception
-	 */
-	public void testValidateTargetAfterValueBindingCreation() throws Exception {
-		WritableValue target = new WritableValue("", String.class);
-		WritableValue model = new WritableValue("2", String.class);
-		class Validator implements IValidator {
-			public IStatus validate(Object value) {
-				return ValidationStatus.error("error");
-			}
-		}
-
-		Binding binding = dbc.bindValue(target, model,
-				new UpdateValueStrategy().setAfterConvertValidator(new Validator()), null);
-
-		assertEquals(IStatus.ERROR, ((IStatus) binding.getValidationStatus()
-				.getValue()).getSeverity());
-	}
-	
-	protected void assertNoErrorsFound() {
-		IStatus status = AggregateValidationStatus.getStatusMaxSeverity(dbc.getBindings());
-		assertTrue("No errors should be found, but found " + status , status.isOK());
-	}
-
-	protected void assertErrorsFound() {
-		IStatus status = AggregateValidationStatus.getStatusMaxSeverity(dbc.getBindings());
-		assertFalse("Errors should be found, but found none.", status.isOK());
-	}
-
-	private static class BindingStub extends Binding {
-		DataBindingContext context;
-
-		public BindingStub() {
-			super(new WritableValue(), new WritableValue());
-		}
-
-		public IObservableValue getValidationStatus() {
-			return null;
-		}
-
-		public void updateTargetToModel() {
-		}
-
-		public void updateModelToTarget() {
-		}
-
-		protected void postInit() {
-		}
-
-		protected void preInit() {
-		}
-
-		public void validateModelToTarget() {
-		}
-
-		public void validateTargetToModel() {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ListBindingTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ListBindingTest.java
deleted file mode 100755
index cf97ec1..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ListBindingTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920, 159768
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateListStrategy;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 1.1
- */
-public class ListBindingTest extends AbstractDefaultRealmTestCase {
-	private IObservableList target;
-	private IObservableList model;
-	private DataBindingContext dbc;
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		target = new WritableList(new ArrayList(), String.class);
-		model = new WritableList(new ArrayList(), String.class);
-		dbc = new DataBindingContext();
-	}
-
-	public void testUpdateModelFromTarget() throws Exception {
-		Binding binding = dbc.bindList(target, model,
-				new UpdateListStrategy(UpdateListStrategy.POLICY_ON_REQUEST),
-				new UpdateListStrategy(UpdateListStrategy.POLICY_ON_REQUEST));
-		
-		target.add("1");
-		List targetCopy = new ArrayList(target.size());
-		targetCopy.addAll(target);
-		
-		model.add("2");
-		
-		assertFalse("target should not equal model", target.equals(model));
-		binding.updateTargetToModel();
-		assertEquals("target should not have changed", targetCopy, target);
-		assertEquals("target != model", target, model);
-	}
-
-	public void testUpdateTargetFromModel() throws Exception {
-		Binding binding = dbc.bindList(target, model,
-				new UpdateListStrategy(UpdateListStrategy.POLICY_ON_REQUEST),
-				new UpdateListStrategy(UpdateListStrategy.POLICY_ON_REQUEST));
-		
-		target.add("1");		
-		model.add("2");
-		
-		List modelCopy = new ArrayList(model.size());
-		modelCopy.addAll(model);
-		
-		assertFalse("model should not equal target", model.equals(target));
-		binding.updateModelToTarget();
-		
-		assertEquals("model should not have changed", modelCopy, model);
-		assertEquals("model != target", model, target);
-	}
-	
-	public void testGetTarget() throws Exception {
-		Binding binding = dbc.bindList(target, model,
-				null,
-				null);
-		assertEquals(target, binding.getTarget());
-	}
-	
-	public void testGetModel() throws Exception {
-		Binding binding = dbc.bindList(target, model,
-				null,
-				null);
-		assertEquals(model, binding.getModel());
-	}
-	
-	public void testStatusIsInstanceOfBindingStatus() throws Exception {
-		Binding binding = dbc.bindList(target, model, null, null);
-		assertTrue(binding.getValidationStatus().getValue() instanceof BindingStatus);
-	}
-	
-	public void testAddValidationStatusContainsMultipleStatuses() throws Exception {
-		UpdateListStrategy strategy = new UpdateListStrategy() {
-			protected IStatus doAdd(IObservableList observableList,
-					Object element, int index) {
-				super.doAdd(observableList, element, index);
-				
-				switch (index) {
-				case 0:
-					return ValidationStatus.error("");
-				case 1:
-					return ValidationStatus.info("");
-				}
-				
-				return null;
-			}
-		};
-		
-		Binding binding = dbc.bindList(target, model, strategy, null);
-		target.addAll(Arrays.asList(new String[] {"1", "2"}));
-		
-		IStatus status = (IStatus) binding.getValidationStatus().getValue();
-		assertEquals("maximum status", IStatus.ERROR, status.getSeverity());
-		assertTrue("multi status", status.isMultiStatus());
-		
-		IStatus[] children = status.getChildren();
-		assertEquals("multi status children", 2, children.length);
-		assertEquals("first status severity", IStatus.ERROR, children[0].getSeverity());
-		assertEquals("second status severity", IStatus.INFO, children[1].getSeverity());
-	}
-	
-	public void testRemoveValidationStatusContainsMultipleStatuses() throws Exception {
-		List items = Arrays.asList(new String[] {"1", "2"});
-		model.addAll(items);
-		
-		UpdateListStrategy strategy = new UpdateListStrategy() {
-			int count;
-			/* (non-Javadoc)
-			 * @see org.eclipse.core.databinding.UpdateListStrategy#doRemove(org.eclipse.core.databinding.observable.list.IObservableList, int)
-			 */
-			protected IStatus doRemove(IObservableList observableList, int index) {
-				super.doRemove(observableList, index);
-				
-				switch (count++) {
-				case 0:
-					return ValidationStatus.error("");
-				case 1:
-					return ValidationStatus.info("");
-				}
-				
-				return null; 	
-			}
-		};
-		
-		Binding binding = dbc.bindList(target, model, strategy, null);
-		target.removeAll(items);
-		
-		IStatus status = (IStatus) binding.getValidationStatus().getValue();
-		assertEquals("maximum status", IStatus.ERROR, status.getSeverity());
-		assertTrue("multi status", status.isMultiStatus());
-		
-		IStatus[] children = status.getChildren();
-		assertEquals("multi status children", 2, children.length);
-		assertEquals("first status severity", IStatus.ERROR, children[0].getSeverity());
-		assertEquals("second status severity", IStatus.INFO, children[1].getSeverity());
-	}
-	
-	public void testAddOKValidationStatus() throws Exception {
-		Binding binding = dbc.bindList(target, model, null, null);
-		target.add("1");
-		
-		IStatus status = (IStatus) binding.getValidationStatus().getValue();
-		assertTrue(status.isOK());
-		assertEquals(0, status.getChildren().length);
-	}
-	
-	public void testRemoveOKValidationStatus() throws Exception {
-		model.add("1");
-		Binding binding = dbc.bindList(target, model, null, null);
-		
-		target.remove("1");
-		IStatus status = (IStatus) binding.getValidationStatus().getValue();
-		assertTrue(status.isOK());
-		assertEquals(0, status.getChildren().length);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ObservablesManagerTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ObservablesManagerTest.java
deleted file mode 100644
index a89461b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ObservablesManagerTest.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Bob Smith and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Bob Smith - initial API and implementation (bug 198880)
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.ObservablesManager;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- *
- */
-public class ObservablesManagerTest extends AbstractDefaultRealmTestCase {
-	private DataBindingContext dbc;
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		dbc = new DataBindingContext();
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		if (dbc != null) {
-			dbc.dispose();
-		}
-		super.tearDown();
-	}
-
-	public void testOnlyModelIsDisposed() throws Exception {
-
-		FlagOnDisposeObservableValue targetOv = new FlagOnDisposeObservableValue();
-		FlagOnDisposeObservableValue modelOv = new FlagOnDisposeObservableValue();
-		dbc.bindValue(targetOv, modelOv, null, null);
-
-		ObservablesManager observablesManager = new ObservablesManager();
-
-		observablesManager.addObservablesFromContext(dbc, false, true);
-		observablesManager.dispose();
-
-		assertFalse(targetOv.disposeCalled);
-		assertTrue(modelOv.disposeCalled);
-	}
-
-	public void testOnlyTargetIsDisposed() throws Exception {
-
-		FlagOnDisposeObservableValue targetOv = new FlagOnDisposeObservableValue();
-		FlagOnDisposeObservableValue modelOv = new FlagOnDisposeObservableValue();
-		dbc.bindValue(targetOv, modelOv, null, null);
-
-		ObservablesManager observablesManager = new ObservablesManager();
-
-		observablesManager.addObservablesFromContext(dbc, true, false);
-		observablesManager.dispose();
-
-		assertTrue(targetOv.disposeCalled);
-		assertFalse(modelOv.disposeCalled);
-	}
-
-	public void testTargetAndModelIsDisposed() throws Exception {
-
-		FlagOnDisposeObservableValue targetOv = new FlagOnDisposeObservableValue();
-		FlagOnDisposeObservableValue modelOv = new FlagOnDisposeObservableValue();
-		dbc.bindValue(targetOv, modelOv, null, null);
-
-		ObservablesManager observablesManager = new ObservablesManager();
-
-		observablesManager.addObservablesFromContext(dbc, true, true);
-		observablesManager.dispose();
-
-		assertTrue(targetOv.disposeCalled);
-		assertTrue(modelOv.disposeCalled);
-	}
-
-	private static class FlagOnDisposeObservableValue implements
-			IObservableValue {
-
-		private boolean disposeCalled = false;
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.value.IObservableValue#addValueChangeListener(org.eclipse.core.databinding.observable.value.IValueChangeListener)
-		 */
-		public void addValueChangeListener(IValueChangeListener listener) {
-			// dummy
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.value.IObservableValue#getValue()
-		 */
-		public Object getValue() {
-			// dummy
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.value.IObservableValue#getValueType()
-		 */
-		public Object getValueType() {
-			// dummy
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.value.IObservableValue#removeValueChangeListener(org.eclipse.core.databinding.observable.value.IValueChangeListener)
-		 */
-		public void removeValueChangeListener(IValueChangeListener listener) {
-			// dummy
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.value.IObservableValue#setValue(java.lang.Object)
-		 */
-		public void setValue(Object value) {
-			// dummy
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.IObservable#addChangeListener(org.eclipse.core.databinding.observable.IChangeListener)
-		 */
-		public void addChangeListener(IChangeListener listener) {
-			// dummy
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.IObservable#addStaleListener(org.eclipse.core.databinding.observable.IStaleListener)
-		 */
-		public void addStaleListener(IStaleListener listener) {
-			// dummy
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.IObservable#dispose()
-		 */
-		public void dispose() {
-			disposeCalled = true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.IObservable#getRealm()
-		 */
-		public Realm getRealm() {
-			return Realm.getDefault();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.IObservable#isStale()
-		 */
-		public boolean isStale() {
-			// dummy
-			return false;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.IObservable#removeChangeListener(org.eclipse.core.databinding.observable.IChangeListener)
-		 */
-		public void removeChangeListener(IChangeListener listener) {
-			// dummy
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.core.databinding.observable.IObservable#removeStaleListener(org.eclipse.core.databinding.observable.IStaleListener)
-		 */
-		public void removeStaleListener(IStaleListener listener) {
-			// dummy
-
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/UpdateStrategyTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/UpdateStrategyTest.java
deleted file mode 100644
index 351f668..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/UpdateStrategyTest.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.conversion.NumberToStringConverter;
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.conversion.DateToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.IdentityConverter;
-import org.eclipse.core.internal.databinding.conversion.IntegerToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigDecimalConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
-import org.eclipse.core.internal.databinding.conversion.StatusToStringConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToBooleanConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToBooleanPrimitiveConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToByteConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToCharacterConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToDateConverter;
-import org.eclipse.core.internal.databinding.conversion.StringToShortConverter;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 1.1
- */
-public class UpdateStrategyTest extends AbstractDefaultRealmTestCase {
-	public void testDefaultConverterForStringToInteger() throws Exception {
-		assertDefaultConverter(String.class, Integer.class, StringToNumberConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToIntegerPrimitive() throws Exception {
-		assertDefaultConverter(String.class, Integer.TYPE, StringToNumberConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToLong() throws Exception {
-		assertDefaultConverter(String.class, Long.class, StringToNumberConverter.class);
-	}
-
-	public void testDefaultConverterForStringToLongPrimitive() throws Exception {
-		assertDefaultConverter(String.class, Long.TYPE, StringToNumberConverter.class);
-	}
-
-	public void testDefaultConverterForStringToDouble() throws Exception {
-		assertDefaultConverter(String.class, Double.class, StringToNumberConverter.class);
-	}
-
-	public void testDefaultConverterForStringToDoublePrimitive() throws Exception {
-		assertDefaultConverter(String.class, Double.TYPE, StringToNumberConverter.class);
-	}
-
-	public void testDefaultConverterForStringToFloat() throws Exception {
-		assertDefaultConverter(String.class, Float.class, StringToNumberConverter.class);
-	}
-
-	public void testDefaultConverterForStringToFloatPrimitive() throws Exception {
-		assertDefaultConverter(String.class, Float.TYPE, StringToNumberConverter.class);
-	}
-
-	public void testDefaultConverterForStringToBigInteger() throws Exception {
-		assertDefaultConverter(String.class, BigInteger.class, StringToNumberConverter.class);
-	}
-	
-	public void testDefaultConverterForIntegerToString() throws Exception {
-		assertDefaultConverter(Integer.class, String.class, NumberToStringConverter.class);
-	}
-
-	public void testDefaultConverterForIntegerPrimitiveToString() throws Exception {
-		assertDefaultConverter(Integer.TYPE, String.class, NumberToStringConverter.class);
-	}
-
-	public void testDefaultConverterForLongToString() throws Exception {
-		assertDefaultConverter(Long.class, String.class, NumberToStringConverter.class);
-	}
-
-	public void testDefaultConverterForLongPrimitiveToString() throws Exception {
-		assertDefaultConverter(Long.TYPE, String.class, NumberToStringConverter.class);
-	}
-
-	public void testDefaultConverterForDoubleToString() throws Exception {
-		assertDefaultConverter(Double.class, String.class, NumberToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForDoublePrimitiveToString() throws Exception {
-		assertDefaultConverter(Double.TYPE, String.class, NumberToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForFloatToString() throws Exception {
-		assertDefaultConverter(Float.class, String.class, NumberToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForFloatPrimitiveToString() throws Exception {
-		assertDefaultConverter(Float.TYPE, String.class, NumberToStringConverter.class);
-	}
-
-	public void testDefaultConverterForBigIntegerToString() throws Exception {
-		assertDefaultConverter(BigInteger.class, String.class, NumberToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForDateToString() throws Exception {
-		assertDefaultConverter(Date.class, String.class, DateToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToBoolean() throws Exception {
-		assertDefaultConverter(String.class, Boolean.class, StringToBooleanConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToBooleanPrimitive() throws Exception {
-		assertDefaultConverter(String.class, Boolean.TYPE, StringToBooleanPrimitiveConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToByte() throws Exception {
-		assertDefaultConverter(String.class, Byte.class, StringToByteConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToBytePrimitive() throws Exception {
-		assertDefaultConverter(String.class, Byte.TYPE, StringToByteConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToCharacter() throws Exception {
-		assertDefaultConverter(String.class, Character.class, StringToCharacterConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToDate() throws Exception {
-		assertDefaultConverter(String.class, Date.class, StringToDateConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToShort() throws Exception {
-		assertDefaultConverter(String.class, Short.class, StringToShortConverter.class);
-	}
-	
-	public void testDefaultConverterForStringToShortPrimitive() throws Exception {
-		assertDefaultConverter(String.class, Short.TYPE, StringToShortConverter.class);
-	}
-	
-	public void testDefaultConverterForByteToString() throws Exception {
-		assertDefaultConverter(Byte.class, String.class, IntegerToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForBytePrimitiveToString() throws Exception {
-		assertDefaultConverter(Byte.TYPE, String.class, IntegerToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForShortToString() throws Exception {
-		assertDefaultConverter(Short.class, String.class, IntegerToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForShortPrimitiveToString() throws Exception {
-		assertDefaultConverter(Short.TYPE, String.class, IntegerToStringConverter.class);
-	}
-	
-	public void testDefaultConverterForStatusToString() throws Exception {
-		assertDefaultConverter(IStatus.class, String.class, StatusToStringConverter.class);
-	}
-	
-
-	public void testDefaultConverterForNumberToByte() throws Exception {
-		assertFromNumberToNumberConverter(Byte.class, Byte.TYPE,
-				NumberToByteConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToShort() throws Exception {
-		assertFromNumberToNumberConverter(Short.class, Short.TYPE,
-				NumberToShortConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToShortPrimitive()
-			throws Exception {
-		assertFromNumberToNumberConverter(Short.TYPE, Short.class,
-				NumberToShortConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToInteger() throws Exception {
-		assertFromNumberToNumberConverter(Integer.class, Integer.TYPE,
-				NumberToIntegerConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToIntegerPrimitive()
-			throws Exception {
-		assertFromNumberToNumberConverter(Integer.TYPE, Integer.class,
-				NumberToIntegerConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToLong() throws Exception {
-		assertFromNumberToNumberConverter(Long.class, Long.TYPE,
-				NumberToLongConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToLongPrimitive() throws Exception {
-		assertFromNumberToNumberConverter(Long.TYPE, Long.class,
-				NumberToLongConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToFloat() throws Exception {
-		assertFromNumberToNumberConverter(Float.class, Float.TYPE,
-				NumberToFloatConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToFloatPrimitive()
-			throws Exception {
-		assertFromNumberToNumberConverter(Float.TYPE, Float.class,
-				NumberToFloatConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToDouble() throws Exception {
-		assertFromNumberToNumberConverter(Double.class, Double.TYPE,
-				NumberToDoubleConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToDoublePrimitive()
-			throws Exception {
-		assertFromNumberToNumberConverter(Double.TYPE, Double.class,
-				NumberToDoubleConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToBigInteger() throws Exception {
-		assertFromNumberToNumberConverter(BigInteger.class, null,
-				NumberToBigIntegerConverter.class);
-	}
-
-	public void testDefaultConverterForNumberToBigDecimal() throws Exception {
-		assertFromNumberToNumberConverter(BigDecimal.class, null,
-				NumberToBigDecimalConverter.class);
-	}
-
-
-	private static Class[] primitiveNumberTypes = new Class[] { Byte.TYPE,
-			Short.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE };
-
-	private static Class[] boxedNumberTypes = new Class[] { Byte.class,
-			Short.class, Integer.class, Long.class, Float.class, Double.class,
-			BigInteger.class, BigDecimal.class };
-
-	private void assertFromNumberToNumberConverter(Class toType,
-			Class toCounterPrimitiveType, Class converterType) {
-
-		for (int i = 0; i < primitiveNumberTypes.length; i++) {
-			Class primitiveType = primitiveNumberTypes[i];
-
-			if (!primitiveType.equals(toType)
-					&& !primitiveType.equals(toCounterPrimitiveType)) {
-				assertDefaultConverter(primitiveType, toType, converterType);
-			} else if (!primitiveType.equals(toType)) {
-				assertDefaultConverter(primitiveType, toType,
-						IdentityConverter.class);
-			}
-		}
-
-		for (int i = 0; i < boxedNumberTypes.length; i++) {
-			Class boxedType = boxedNumberTypes[i];
-
-			if (!boxedType.equals(toType)
-					&& !boxedType.equals(toCounterPrimitiveType)) {
-				assertDefaultConverter(boxedType, toType, converterType);
-			} else if (!boxedType.equals(toType)) {
-				assertDefaultConverter(boxedType, toType,
-						IdentityConverter.class);
-			}
-		}
-	}
-	
-	private void assertDefaultConverter(Class fromType, Class toType, Class converterType) {
-		WritableValue source = WritableValue.withValueType(fromType);
-		WritableValue destination = WritableValue.withValueType(toType);
-		
-		UpdateStrategyStub strategy = new UpdateStrategyStub();
-		strategy.fillDefaults(source, destination);
-		
-		IConverter converter = strategy.converter;
-		assertNotNull("converter not null", converter);
-		assertEquals("fromType [" + fromType + "]" , fromType, converter.getFromType());
-		assertEquals("toType [" + toType + "]", toType, converter.getToType());
-		assertTrue("converter should be instanceof " + converterType
-				+ " but was instanceof " + converter.getClass(), converterType
-				.isInstance(converter));
-	}
-	
-	class UpdateStrategyStub extends UpdateValueStrategy {
-		IConverter converter;
-		
-		protected void fillDefaults(IObservableValue source,
-				IObservableValue destination) {
-			super.fillDefaults(source, destination);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.databinding.UpdateValueStrategy#setConverter(org.eclipse.core.databinding.conversion.IConverter)
-		 */
-		public UpdateValueStrategy setConverter(IConverter converter) {
-			this.converter = converter;
-			return super.setConverter(converter);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/UpdateValueStrategyTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/UpdateValueStrategyTest.java
deleted file mode 100644
index 881b562..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/UpdateValueStrategyTest.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToByteValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToDoubleValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToFloatValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToIntegerValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToLongValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToShortValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToUnboundedNumberValidator;
-import org.eclipse.core.internal.databinding.validation.StringToByteValidator;
-import org.eclipse.core.internal.databinding.validation.StringToDateValidator;
-import org.eclipse.core.internal.databinding.validation.StringToDoubleValidator;
-import org.eclipse.core.internal.databinding.validation.StringToFloatValidator;
-import org.eclipse.core.internal.databinding.validation.StringToIntegerValidator;
-import org.eclipse.core.internal.databinding.validation.StringToLongValidator;
-import org.eclipse.core.internal.databinding.validation.StringToShortValidator;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 1.1
- */
-public class UpdateValueStrategyTest extends AbstractDefaultRealmTestCase {
-	public void testDefaultValidatorForStringToInteger() throws Exception {
-		assertDefaultValidator(String.class, Integer.class, StringToIntegerValidator.class);
-	}
-	
-	public void testDefaultValidatorForStringToIntegerPrimitive() throws Exception {
-		assertDefaultValidator(String.class, Integer.TYPE, StringToIntegerValidator.class);
-	}
-	
-	public void testDefaultValidatorForStringToLong() throws Exception {
-		assertDefaultValidator(String.class, Long.class, StringToLongValidator.class);		
-	}
-	
-	public void testDefaultValidatorForStringToLongPrimitive() throws Exception {
-		assertDefaultValidator(String.class, Long.TYPE, StringToLongValidator.class);		
-	}
-	
-	public void testDefaultValidatorForStringToFloat() throws Exception {
-		assertDefaultValidator(String.class, Float.class, StringToFloatValidator.class);				
-	}
-	
-	public void testDefaultValidatorForStringToFloatPrimitive() throws Exception {
-		assertDefaultValidator(String.class, Float.TYPE, StringToFloatValidator.class);						
-	}
-	
-	public void testDefaultValidatorForStringToDouble() throws Exception {
-		assertDefaultValidator(String.class, Double.class, StringToDoubleValidator.class);
-	}
-	
-	public void testDefaultValidatorForStringToDoublePrimitive() throws Exception {
-		assertDefaultValidator(String.class, Double.TYPE, StringToDoubleValidator.class);
-	}
-	
-	public void testDefaultValidatorForStringToByte() throws Exception {
-		assertDefaultValidator(String.class, Byte.class, StringToByteValidator.class);
-	}
-	
-	public void testDefaultValidatorForStringToBytePrimitive() throws Exception {
-		assertDefaultValidator(String.class, Byte.TYPE, StringToByteValidator.class);
-	}
-	
-	public void testDefaultValidatorForStringToShort() throws Exception {
-		assertDefaultValidator(String.class, Short.class, StringToShortValidator.class);
-	}
-
-	public void testDefaultValidatorForStringToShortPrimitive() throws Exception {
-		assertDefaultValidator(String.class, Short.TYPE, StringToShortValidator.class);
-	}
-
-	public void testDefaultValidatorForStringToDate() throws Exception {
-		assertDefaultValidator(String.class, Date.class, StringToDateValidator.class);
-	}
-	
-	public void testDefaultValidatorForNumberToByte() throws Exception {
-		assertDefaultValidator(Integer.class, Byte.class, NumberToByteValidator.class);
-	}
-	
-	public void testDefaultValidatorForNumberToShort() throws Exception {
-		assertDefaultValidator(Integer.class, Short.class, NumberToShortValidator.class);
-	}
-	
-	public void testDefaultValidatorForNumberToInteger() throws Exception {
-		assertDefaultValidator(Short.class, Integer.class, NumberToIntegerValidator.class);
-	}
-	
-	public void testDefaultValidatorForNumberToLong() throws Exception {
-		assertDefaultValidator(Short.class, Long.class, NumberToLongValidator.class);
-	}
-	
-	public void testDefaultValidatorForNumberToFloat() throws Exception {
-		assertDefaultValidator(Short.class, Float.class, NumberToFloatValidator.class);
-	}
-	
-	public void testDefaultValidatorForNumberToDouble() throws Exception {
-		assertDefaultValidator(Short.class, Double.class, NumberToDoubleValidator.class);
-	}
-	
-	public void testDefaultValidatorForNumberToBigInteger() throws Exception {
-		assertDefaultValidator(Short.class, BigInteger.class, NumberToUnboundedNumberValidator.class);
-	}
-	
-	public void testDefaultValidatorForNumberToBigDecimal() throws Exception {
-		assertDefaultValidator(Short.class, BigDecimal.class, NumberToUnboundedNumberValidator.class);		
-	}
-	
-	public void testCachesDefaultedValidators() throws Exception {
-		WritableValue source = WritableValue.withValueType(String.class);
-		WritableValue destination = WritableValue.withValueType(Integer.class);
-		
-		UpdateValueStrategyStub strategy = new UpdateValueStrategyStub();
-		strategy.fillDefaults(source, destination);
-		
-		IValidator validator = strategy.validator;
-		assertNotNull(validator);
-		
-		strategy = new UpdateValueStrategyStub();
-		strategy.fillDefaults(source, destination);
-		
-		assertSame(validator,strategy.validator);
-	}
-	
-	private void assertDefaultValidator(Class fromType, Class toType, Class validatorType) {
-		WritableValue source = WritableValue.withValueType(fromType);
-		WritableValue destination = WritableValue.withValueType(toType);
-		
-		UpdateValueStrategyStub strategy = new UpdateValueStrategyStub();
-		strategy.fillDefaults(source, destination);
-		
-		IValidator validator = strategy.validator;
-		assertNotNull("validator not null", validator);
-		assertTrue("converter instanceof " + validatorType, validatorType.isInstance(validator));
-	}
-	
-	class UpdateValueStrategyStub extends UpdateValueStrategy {
-		IValidator validator;
-		
-		protected void fillDefaults(IObservableValue source,
-				IObservableValue destination) {
-			super.fillDefaults(source, destination);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.databinding.UpdateValueStrategy#createValidator(java.lang.Object, java.lang.Object)
-		 */
-		protected IValidator createValidator(Object fromType, Object toType) {
-			validator = super.createValidator(fromType, toType);
-			return validator;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ValueBindingTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ValueBindingTest.java
deleted file mode 100755
index 12d32cd..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/ValueBindingTest.java
+++ /dev/null
@@ -1,279 +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
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 164653, 159768
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding;
-
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 1.1
- */
-public class ValueBindingTest extends AbstractDefaultRealmTestCase {
-	private WritableValue target;
-
-	private WritableValue model;
-
-	private DataBindingContext dbc;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		target = WritableValue.withValueType(String.class);
-		model = WritableValue.withValueType(String.class);
-		dbc = new DataBindingContext();
-	}
-
-	/**
-	 * Bug 152543.
-	 * 
-	 * @throws Exception
-	 */
-	public void testNoUpdateTargetFromModel() throws Exception {
-		try {
-			new DataBindingContext().bindValue(new ObservableValueStub(),
-					new ObservableValueStub(), new UpdateValueStrategy(
-							UpdateValueStrategy.POLICY_NEVER),
-					new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER));
-		} catch (Exception e) {
-			fail(e.getMessage());
-		}
-	}
-
-	public void testValuePropagation() throws Exception {
-		String initialValue = "value";
-		model.setValue(initialValue);
-
-		assertFalse(model.getValue().equals(target.getValue()));
-		dbc.bindValue(target, model, null, null);
-
-		assertEquals(target.getValue(), model.getValue());
-	}
-
-	public void testGetTarget() throws Exception {
-		Binding binding = dbc.bindValue(target, model, null, null);
-
-		assertEquals(target, binding.getTarget());
-	}
-
-	public void testGetModel() throws Exception {
-		Binding binding = dbc.bindValue(target, model, null, null);
-
-		assertEquals(model, binding.getModel());
-	}
-
-	public void testOKStatusInValidationUpdatesModel() throws Exception {
-		Binding binding = dbc.bindValue(target, model, null, null);
-
-		String value = "value";
-		assertFalse(value.equals(model.getValue()));
-		target.setValue(value);
-
-		assertEquals("value copied to model", value, model.getValue());
-		assertTrue(((IStatus) binding.getValidationStatus().getValue()).isOK());
-	}
-
-	public void testWarningStatusInValidationUpdatesModel() throws Exception {
-		Binding binding = dbc.bindValue(target, model,
-				new UpdateValueStrategy()
-						.setAfterGetValidator(warningValidator()), null);
-
-		String value = "value";
-		assertFalse(value.equals(model.getValue()));
-		target.setValue(value);
-
-		assertEquals("value copied to model", value, model.getValue());
-		assertEquals("warning status", IStatus.WARNING, ((IStatus) binding
-				.getValidationStatus().getValue()).getSeverity());
-	}
-
-	public void testInfoStatusInValidationUpdatesModel() throws Exception {
-		Binding binding = dbc
-				.bindValue(target, model, new UpdateValueStrategy()
-						.setAfterGetValidator(infoValidator()), null);
-
-		String value = "value";
-		assertFalse(value.equals(model.getValue()));
-		target.setValue(value);
-
-		assertEquals("value copied to model", value, model.getValue());
-		assertEquals("info status", IStatus.INFO, ((IStatus) binding
-				.getValidationStatus().getValue()).getSeverity());
-	}
-
-	public void testErrorStatusInValidationDoesNotUpdateModel()
-			throws Exception {
-		Binding binding = dbc.bindValue(target, model,
-				new UpdateValueStrategy()
-						.setAfterGetValidator(errorValidator()), null);
-
-		String value = "value";
-		assertFalse(value.equals(model.getValue()));
-		target.setValue(value);
-
-		assertFalse("value not copied to model", value.equals(model.getValue()));
-		assertEquals("error status", IStatus.ERROR, ((IStatus) binding
-				.getValidationStatus().getValue()).getSeverity());
-	}
-
-	public void testCancelStatusInValidationDoesNotUpdateModel()
-			throws Exception {
-		Binding binding = dbc.bindValue(target, model,
-				new UpdateValueStrategy()
-						.setAfterGetValidator(cancelValidator()), null);
-
-		String value = "value";
-		assertFalse(value.equals(model.getValue()));
-		target.setValue(value);
-
-		assertFalse("value not copied to model", value.equals(model.getValue()));
-		assertEquals("cancel status", IStatus.CANCEL, ((IStatus) binding
-				.getValidationStatus().getValue()).getSeverity());
-	}
-
-	public void testStatusesFromEveryPhaseAreReturned() throws Exception {
-		UpdateValueStrategy strategy = new UpdateValueStrategy() {
-			protected IStatus doSet(IObservableValue observableValue,
-					Object value) {
-				super.doSet(observableValue, value);
-				return ValidationStatus.info("");
-			}
-		};
-
-		strategy.setAfterGetValidator(warningValidator());
-		strategy.setAfterConvertValidator(infoValidator());
-		strategy.setBeforeSetValidator(warningValidator());
-
-		Binding binding = dbc.bindValue(target, model, strategy, null);
-		String value = "value";
-		assertFalse(value.equals(model.getValue()));
-
-		target.setValue(value);
-		assertEquals(value, model.getValue());
-		IStatus status = (IStatus) binding.getValidationStatus().getValue();
-		assertTrue(status.isMultiStatus());
-		assertEquals("max status", IStatus.WARNING, status.getSeverity());
-
-		MultiStatus multiStatus = (MultiStatus) status;
-		assertEquals(4, multiStatus.getChildren().length);
-		IStatus[] children = multiStatus.getChildren();
-
-		assertEquals("after get severity", IStatus.WARNING, children[0]
-				.getSeverity());
-		assertEquals("after convert severity", IStatus.INFO, children[1]
-				.getSeverity());
-		assertEquals("before set severity", IStatus.WARNING, children[2]
-				.getSeverity());
-		assertEquals("doSet severity", IStatus.INFO, children[3].getSeverity());
-	}
-
-	public void testStatusIsInstanceOfBindingStatus() throws Exception {
-		Binding binding = dbc.bindValue(target, model, null, null);
-		assertTrue(binding.getValidationStatus().getValue() instanceof BindingStatus);
-	}
-	
-	public void testDiffsAreCheckedForEqualityBeforeUpdate() throws Exception {
-		class WritableValueStub extends WritableValue {
-			public WritableValueStub() {
-				super("", String.class);
-			}
-			
-			protected void fireValueChange(ValueDiff diff) {
-				super.fireValueChange(diff);
-			}
-		}
-		
-		WritableValueStub target = new WritableValueStub();
-		WritableValue model = WritableValue.withValueType(String.class);
-		
-		class Strategy extends UpdateValueStrategy {
-			int afterGetCount;
-			public IStatus validateAfterGet(Object value) {
-				afterGetCount++;
-				return super.validateAfterGet(value);
-			}
-		}
-		
-		Strategy strategy = new Strategy();
-		dbc.bindValue(target, model, strategy, null);
-		int count = strategy.afterGetCount;
-		
-		target.fireValueChange(Diffs.createValueDiff("", ""));
-		assertEquals("update does not occur", count, strategy.afterGetCount);
-	}
-	
-	private IValidator warningValidator() {
-		return new IValidator() {
-			public IStatus validate(Object value) {
-				return ValidationStatus.warning("");
-			}
-		};
-	}
-
-	private IValidator infoValidator() {
-		return new IValidator() {
-			public IStatus validate(Object value) {
-				return ValidationStatus.info("");
-			}
-		};
-	}
-
-	private IValidator errorValidator() {
-		return new IValidator() {
-			public IStatus validate(Object value) {
-				return ValidationStatus.error("");
-			}
-		};
-	}
-
-	private IValidator cancelValidator() {
-		return new IValidator() {
-			public IStatus validate(Object value) {
-				return ValidationStatus.cancel("");
-			}
-		};
-	}
-
-	private static class ObservableValueStub extends AbstractObservableValue {
-		protected Object doGetValue() {
-			// do nothing
-			return null;
-		}
-
-		public Object getValueType() {
-			// do nothing
-			return null;
-		}
-
-		protected void doSetValue(Object value) {
-
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/beans/BeansObservablesTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/beans/BeansObservablesTest.java
deleted file mode 100644
index 4e1b652..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/beans/BeansObservablesTest.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164268, 171616
- *     Mike Evans - bug 217558
- *     Matthew Hall - bug 221351
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.beans;
-
-import java.util.Arrays;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.beans.BeanObservableListDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableSetDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableValueDecorator;
-import org.eclipse.core.tests.internal.databinding.beans.Bean;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- */
-public class BeansObservablesTest extends AbstractDefaultRealmTestCase {
-	Bean[] elements = null;
-	Bean model = null;
-	Class elementType = null;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		elements = new Bean[] { new Bean("1"), new Bean("2"), new Bean("3") };
-		model = new Bean(elements);
-		model.setList(Arrays.asList(elements));
-		elementType = Bean.class;
-	}
-
-	public void testObserveListArrayInferredElementType() throws Exception {
-		IObservableList list = BeansObservables.observeList(Realm.getDefault(),
-				model, "list", null);
-		assertEquals("element type", Object.class, list.getElementType());
-	}
-
-	public void testObserveListNonInferredElementType() throws Exception {
-		elementType = Object.class;
-		IObservableList list = BeansObservables.observeList(Realm.getDefault(),
-				model, "list", null);
-		assertEquals("element type", elementType, list.getElementType());
-	}
-
-	public void testListFactory() throws Exception {
-		IObservableFactory factory = BeansObservables.listFactory(Realm
-				.getDefault(), "list", elementType);
-		IObservableList list = (IObservableList) factory
-				.createObservable(model);
-
-		assertTrue("elements of the list", Arrays.equals(elements, list
-				.toArray(new Bean[list.size()])));
-		assertEquals("element type", elementType, list.getElementType());
-	}
-
-	public void testObserveDetailListElementType() throws Exception {
-		WritableValue parent = WritableValue.withValueType(Bean.class);
-		parent.setValue(model);
-		IObservableList list = BeansObservables.observeDetailList(Realm
-				.getDefault(), parent, "list", elementType);
-
-		assertEquals("element type", elementType, list.getElementType());
-		assertTrue("elements of list", Arrays.equals(elements, list
-				.toArray(new Bean[list.size()])));
-	}
-
-	public void testObserveDetailValueIBeanObservable() throws Exception {
-		WritableValue parent = WritableValue.withValueType(Bean.class);
-		parent.setValue(new Bean());
-
-		IObservableValue detailValue = BeansObservables.observeDetailValue(
-				Realm.getDefault(), parent, "value", String.class);
-		assertTrue(detailValue instanceof IBeanObservable);
-
-		BeanObservableValueDecorator beanObservable = (BeanObservableValueDecorator) detailValue;
-		assertEquals("property descriptor", Bean.class.getMethod("getValue",
-				null), beanObservable.getPropertyDescriptor().getReadMethod());
-		assertEquals("observed", parent.getValue(), beanObservable.getObserved());
-		assertTrue("delegate", beanObservable.getDelegate().getClass()
-				.getName().endsWith("DetailObservableValue"));
-	}
-
-	public void testObserveDetailValueNullOuterElementType() throws Exception {
-		WritableValue parent = new WritableValue(new Bean(), null);
-
-		IObservableValue detailValue = BeansObservables.observeDetailValue(
-				Realm.getDefault(), parent, "value", String.class);
-		
-		assertNull("property descriptor", ((IBeanObservable) detailValue)
-				.getPropertyDescriptor());
-	}
-
-	public void testObservableDetailListIBeanObservable() throws Exception {
-		WritableValue parent = WritableValue.withValueType(Bean.class);
-		parent.setValue(new Bean());
-
-		IObservableList detailList = BeansObservables.observeDetailList(Realm
-				.getDefault(), parent, "list", Bean.class);
-		assertTrue("detail is not an IBeanObservable",
-				detailList instanceof IBeanObservable);
-
-		BeanObservableListDecorator beanObservable = (BeanObservableListDecorator) detailList;
-		assertEquals("property descriptor", Bean.class.getMethod("getList",
-				null), beanObservable.getPropertyDescriptor().getReadMethod());
-		assertEquals("observed", parent, beanObservable.getObserved());
-
-		// DetailObservableList is package level we can do a straight instanceof
-		// check
-		assertTrue("delegate is the observed", beanObservable.getDelegate()
-				.equals(detailList));
-	}
-
-	public void testObservableDetailListNullOuterElementType() throws Exception {
-		WritableValue parent = new WritableValue(new Bean(), null);
-
-		IObservableList detailList = BeansObservables.observeDetailList(Realm
-				.getDefault(), parent, "list", Bean.class);
-
-		assertNull("property descriptor", ((IBeanObservable) detailList)
-				.getPropertyDescriptor());
-	}
-
-	public void testObservableDetailSetIBeanObservable() throws Exception {
-		WritableValue parent = WritableValue.withValueType(Bean.class);
-		parent.setValue(new Bean());
-
-		IObservableSet detailSet = BeansObservables.observeDetailSet(Realm
-				.getDefault(), parent, "set", Bean.class);
-		assertTrue("detail is not an IBeanObservable",
-				detailSet instanceof IBeanObservable);
-
-		BeanObservableSetDecorator beanObservable = (BeanObservableSetDecorator) detailSet;
-		assertEquals("property descriptor", Bean.class
-				.getMethod("getSet", null), beanObservable
-				.getPropertyDescriptor().getReadMethod());
-		assertEquals("observed", parent, beanObservable.getObserved());
-
-		// DetailObservableSet is package level we can't do a straight
-		// instanceof check
-		assertTrue("delegate is the observed", beanObservable.getDelegate()
-				.equals(detailSet));
-	}
-
-	public void testObservableDetailSetNullOuterElementType() throws Exception {
-		WritableValue parent = new WritableValue(new Bean(), null);
-
-		IObservableSet detailSet = BeansObservables.observeDetailSet(Realm
-				.getDefault(), parent, "set", Bean.class);
-
-		assertNull("property descriptor", ((IBeanObservable) detailSet)
-				.getPropertyDescriptor());
-	}
-
-	public void testObserveSetElementType() throws Exception {
-		Bean bean = new Bean();
-		IObservableSet observableSet = BeansObservables.observeSet(Realm
-				.getDefault(), bean, "set", Bean.class);
-		assertEquals(Bean.class, observableSet.getElementType());
-	}
-
-	public void testObserveSetNonInferredElementType() throws Exception {
-		Bean bean = new Bean();
-		IObservableSet observableSet = BeansObservables.observeSet(Realm
-				.getDefault(), bean, "set");
-		assertEquals(Object.class, observableSet.getElementType());
-	}
-	/**
-	 * Test for fix for Bug 217558 [DataBinding] Databinding - BeansObservables.observeList() 
-	 * - error when external code modifies observed list.
-	 */
-	public void testHandleExternalChangeToProperty() {
-		Bean targetBean = new Bean();
-		IObservableList modelObservable = BeansObservables.observeList(Realm.getDefault(),
-				model, "array", elementType );
-		IObservableList targetObservable = BeansObservables.observeList(Realm.getDefault(),
-				targetBean, "array", elementType );
-		
-		DataBindingContext context = new DataBindingContext( Realm.getDefault() );
-		try {
-			// bind two beans and check the binding works
-			context.bindList(
-					targetObservable, 
-					modelObservable, 
-					null, 
-					null );
-			assertTrue( Arrays.equals( elements, targetBean.getArray() ) );
-			
-			// set source direct - target databinding still works...
-			Bean[] newElements = new Bean[] { new Bean("4"), new Bean("5"), new Bean("6") };
-			model.setArray( newElements );
-			assertTrue( Arrays.equals( newElements, targetBean.getArray() ) );
-			
-			// ... but setting the model's list breaks databinding the other way...
-			
-			// ... so setting target direct breaks databinding without fix and 
-			// the assert would fail
-			newElements = new Bean[] { new Bean("7"), new Bean("8"), new Bean("9") };
-			targetBean.setArray( newElements );
-			assertTrue( Arrays.equals( newElements, model.getArray() ) );
-		}
-		finally {
-			// context only needed for this test so not put in setUp / tearDown
-			context.dispose();
-		}
-		
-	}
-	
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/beans/PojoObservablesTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/beans/PojoObservablesTest.java
deleted file mode 100644
index 720837c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/beans/PojoObservablesTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.beans;
-
-import org.eclipse.core.databinding.beans.PojoObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableList;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableMap;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableSet;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableValue;
-import org.eclipse.core.tests.internal.databinding.beans.Bean;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- */
-public class PojoObservablesTest extends AbstractDefaultRealmTestCase {
-	private Bean pojo;
-	private String propertyName;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		pojo = new Bean();
-		propertyName = "value";
-	}
-
-	public void testObserveValue_ReturnsJavaBeanObservableValue()
-			throws Exception {
-		IObservableValue value = PojoObservables.observeValue(pojo, propertyName);
-
-		assertNotNull(value);
-		assertTrue(value instanceof JavaBeanObservableValue);
-	}
-
-	public void testObserveValue_DoesNotAttachListeners() throws Exception {
-		IObservableValue value = PojoObservables.observeValue(pojo, propertyName);
-
-		ChangeEventTracker.observe(value);
-		assertFalse(pojo.hasListeners(propertyName));
-	}
-
-	public void testObservableValueWithRealm_ReturnsJavaBeanObservable()
-			throws Exception {
-		CurrentRealm realm = new CurrentRealm(true);
-		IObservableValue value = PojoObservables.observeValue(realm, pojo,
-				propertyName);
-
-		assertNotNull(value);
-		assertTrue(value instanceof JavaBeanObservableValue);
-	}
-
-	public void testObservableMap_ReturnsJavaBeanObservableMap()
-			throws Exception {
-		IObservableSet set = new WritableSet();
-		set.add(new Bean());
-
-		IObservableMap map = PojoObservables.observeMap(set, Bean.class,
-				propertyName);
-		assertNotNull(map);
-		assertTrue(map instanceof JavaBeanObservableMap);
-	}
-	
-	public void testObservableMap_DoesNotAttachListeners() throws Exception {
-		IObservableSet set = new WritableSet();
-		set.add(pojo);
-		
-		IObservableMap map = PojoObservables.observeMap(set, Bean.class, propertyName);
-		assertFalse(pojo.hasListeners(propertyName));
-		ChangeEventTracker.observe(map);
-		assertFalse(pojo.hasListeners(propertyName));
-	}
-	
-	public void testObserveMaps_ReturnsMaps() throws Exception {
-		IObservableSet set = new WritableSet();
-		set.add(pojo);
-		
-		IObservableMap[] maps = PojoObservables.observeMaps(set, Bean.class, new String[] {"value", "class"});
-		assertEquals(2, maps.length);
-	}
-	
-	public void testObserveListWithElementType_ReturnsJavaBeanObservableList() throws Exception {
-		IObservableList list = PojoObservables.observeList(Realm.getDefault(), pojo, "list", String.class);
-		assertTrue(list instanceof JavaBeanObservableList);
-	}
-	
-	public void testObserveListWithElementType_DoesNotAttachListeners() throws Exception {
-		IObservableList observable = PojoObservables.observeList(Realm.getDefault(), pojo, "list", String.class);
-		assertFalse(pojo.hasListeners("list"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(pojo.hasListeners("list"));
-	}
-	
-	public void testObserveList_ReturnsJavaBeanObservableList() throws Exception {
-		IObservableList observable = PojoObservables.observeList(Realm.getDefault(), pojo, "list");
-		assertTrue(observable instanceof JavaBeanObservableList);
-	}
-	
-	public void testObserveList_DoesNotAttachListeners() throws Exception {
-		IObservableList observable = PojoObservables.observeList(Realm.getDefault(), pojo, "list");
-		assertFalse(pojo.hasListeners("list"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(pojo.hasListeners("list"));
-	}
-	
-	public void testObserveSetWithElementType_ReturnsJavaBeanObservableList() throws Exception {
-		IObservableSet list = PojoObservables.observeSet(Realm.getDefault(), pojo, "set", String.class);
-		assertTrue(list instanceof JavaBeanObservableSet);
-	}
-	
-	public void testObserveSetWithElementType_DoesNotAttachListeners() throws Exception {
-		IObservableSet observable = PojoObservables.observeSet(Realm.getDefault(), pojo, "set", String.class);
-		assertFalse(pojo.hasListeners("set"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(pojo.hasListeners("set"));
-	}
-	
-	public void testObserveSet_ReturnsJavaBeanObservableList() throws Exception {
-		IObservableSet list = PojoObservables.observeSet(Realm.getDefault(), pojo, "set");
-		assertTrue(list instanceof JavaBeanObservableSet);
-	}
-	
-	public void testObserveSet_DoesNotAttachListeners() throws Exception {
-		IObservableSet observable = PojoObservables.observeSet(Realm.getDefault(), pojo, "set");
-		assertFalse(pojo.hasListeners("set"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(pojo.hasListeners("set"));
-	}
-	
-	public void testValueFactory_DoesNotAttachListeners() throws Exception {
-		IObservableFactory factory = PojoObservables.valueFactory(Realm.getDefault(), "value");
-		IObservableValue observable = (IObservableValue) factory.createObservable(pojo);
-		
-		assertFalse(pojo.hasListeners("value"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(pojo.hasListeners("value"));
-	}
-	
-	public void testListFactory_DoesNotAttachListeners() throws Exception {
-		IObservableFactory factory = PojoObservables.listFactory(Realm.getDefault(), "list", String.class);
-		IObservableList observable = (IObservableList) factory.createObservable(pojo);
-		
-		assertFalse(pojo.hasListeners("value"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(pojo.hasListeners("value"));
-	}
-	
-	public void testSetFactory_DoesNotAttachListeners() throws Exception {
-		IObservableFactory factory = PojoObservables.setFactory(Realm.getDefault(), propertyName);
-		IObservableSet observable = (IObservableSet) factory.createObservable(pojo);
-		
-		assertFalse(pojo.hasListeners("set"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(pojo.hasListeners("set"));
-	}
-	
-	public void testSetFactoryWithElementType_DoesNotAttachListeners() throws Exception {
-		IObservableFactory factory = PojoObservables.setFactory(Realm.getDefault(), propertyName, String.class);
-		IObservableSet observable = (IObservableSet) factory.createObservable(pojo);
-		
-		assertFalse(pojo.hasListeners("set"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(pojo.hasListeners("set"));
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/conversion/NumberToStringConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/conversion/NumberToStringConverterTest.java
deleted file mode 100644
index 4b2f4c3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/conversion/NumberToStringConverterTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.conversion;
-
-import java.math.BigInteger;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.conversion.NumberToStringConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToStringConverterTest extends TestCase {
-	private NumberFormat numberFormat;
-	private NumberFormat integerFormat;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		numberFormat = NumberFormat.getInstance();
-		integerFormat = NumberFormat.getIntegerInstance();
-	}
-
-	public void testFromTypes() throws Exception {
-		assertEquals("Integer.class", Integer.class, NumberToStringConverter
-				.fromInteger(false).getFromType());
-		assertEquals("Integer.TYPE", Integer.TYPE, NumberToStringConverter
-				.fromInteger(true).getFromType());
-		assertEquals("Double.class", Double.class, NumberToStringConverter
-				.fromDouble(false).getFromType());
-		assertEquals("Double.TYPE", Double.TYPE, NumberToStringConverter
-				.fromDouble(true).getFromType());
-		assertEquals("Long.class", Long.class, NumberToStringConverter
-				.fromLong(false).getFromType());
-		assertEquals("Long.TYPE", Long.TYPE, NumberToStringConverter.fromLong(
-				true).getFromType());
-		assertEquals("Float.class", Float.class, NumberToStringConverter
-				.fromFloat(false).getFromType());
-		assertEquals("Float.TYPE", Float.TYPE, NumberToStringConverter
-				.fromFloat(true).getFromType());
-		assertEquals("BigInteger.class", BigInteger.class,
-				NumberToStringConverter.fromBigInteger().getFromType());
-	}
-
-	public void testToTypeIsStringClass() throws Exception {
-		assertEquals(String.class, NumberToStringConverter.fromInteger(false)
-				.getToType());
-	}
-
-	public void testConvertIntegerToString() throws Exception {
-		Integer input = new Integer(1000);
-		String expected = integerFormat.format(input.longValue());
-
-		NumberToStringConverter converter = NumberToStringConverter
-				.fromInteger(false);
-		String result = (String) converter.convert(input);
-		assertEquals(expected, result);
-	}
-
-	public void testConvertDoubleToString() throws Exception {
-		Double input = new Double(1000.1d);
-		String expected = numberFormat.format(input.doubleValue());
-
-		NumberToStringConverter converter = NumberToStringConverter
-				.fromDouble(false);
-		String result = (String) converter.convert(input);
-		assertEquals(expected, result);
-	}
-
-	public void testConvertFloatToString() throws Exception {
-		Float input = new Float(1000.1f);
-		String expected = numberFormat.format(input.floatValue());
-
-		NumberToStringConverter converter = NumberToStringConverter
-				.fromFloat(false);
-		String result = (String) converter.convert(input);
-		assertEquals(expected, result);
-	}
-
-	public void testConvertLongToString() throws Exception {
-		Long input = new Long(1000l);
-		String expected = integerFormat.format(input.longValue());
-
-		NumberToStringConverter converter = NumberToStringConverter
-				.fromLong(false);
-		String result = (String) converter.convert(input);
-		assertEquals(expected, result);
-	}
-	
-	public void testConvertBigIntegerToString() throws Exception {
-		BigInteger input = BigInteger.valueOf(1000);
-		String expected = integerFormat.format(input);
-		
-		NumberToStringConverter converter = NumberToStringConverter.fromBigInteger();
-		String result = (String) converter.convert(input);
-		assertEquals(expected, result);
-	}
-
-	public void testNullSourceConvertsToEmptyString() throws Exception {
-		NumberToStringConverter converter = NumberToStringConverter
-				.fromInteger(false);
-		assertEquals("", converter.convert(null));
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/conversion/StringToNumberConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/conversion/StringToNumberConverterTest.java
deleted file mode 100644
index d171fa3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/conversion/StringToNumberConverterTest.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.conversion;
-
-import java.math.BigInteger;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-//TODO test for ICU4Js BigDecimal
-public class StringToNumberConverterTest extends TestCase {
-	private NumberFormat numberFormat;
-	private NumberFormat numberIntegerFormat;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		numberFormat = NumberFormat.getInstance();
-		numberIntegerFormat = NumberFormat.getIntegerInstance();
-	}
-
-	public void testToTypes() throws Exception {
-		assertEquals("Integer.class", Integer.class, StringToNumberConverter.toInteger(false).getToType());
-		assertEquals("Integer.TYPE", Integer.TYPE, StringToNumberConverter.toInteger(true).getToType());
-		assertEquals("Double.class", Double.class, StringToNumberConverter.toDouble(false).getToType());
-		assertEquals("Double.TYPE", Double.TYPE, StringToNumberConverter.toDouble(true).getToType());
-		assertEquals("Long.class", Long.class, StringToNumberConverter.toLong(false).getToType());
-		assertEquals("Long.TYPE", Long.TYPE, StringToNumberConverter.toLong(true).getToType());
-		assertEquals("Float.class", Float.class, StringToNumberConverter.toFloat(false).getToType());
-		assertEquals("Float.TYPE", Float.TYPE, StringToNumberConverter.toFloat(true).getToType());
-		assertEquals("BigInteger.TYPE", BigInteger.class, StringToNumberConverter.toBigInteger().getToType());
-	}
-	
-	public void testFromTypeIsString() throws Exception {
-		assertEquals(String.class, StringToNumberConverter.toInteger(false)
-				.getFromType());
-	}
-	
-	public void testConvertsToBigInteger() throws Exception {
-		BigInteger input = BigInteger.valueOf(1000);
-		
-		StringToNumberConverter converter = StringToNumberConverter.toBigInteger();
-		BigInteger result = (BigInteger) converter.convert(numberFormat.format(input));
-		
-		assertEquals(input, result);
-	}
-	
-	public void testConvertsToInteger() throws Exception {
-		Integer input = new Integer(1000);
-
-		StringToNumberConverter converter = StringToNumberConverter.toInteger(false);
-		Integer result = (Integer) converter.convert(numberIntegerFormat.format(input
-				.longValue()));
-		assertEquals(input, result);
-	}
-
-	public void testConvertsToDouble() throws Exception {
-		Double input = new Double(1000);
-
-		StringToNumberConverter converter = StringToNumberConverter.toDouble(false);
-		Double result = (Double) converter.convert(numberFormat.format(input
-				.doubleValue()));
-
-		assertEquals(input, result);
-	}
-
-	public void testConvertsToLong() throws Exception {
-		Long input = new Long(1000);
-
-		StringToNumberConverter converter = StringToNumberConverter.toLong(false);
-		Long result = (Long) converter.convert(numberIntegerFormat.format(input
-				.longValue()));
-
-		assertEquals(input, result);
-	}
-
-	public void testConvertsToFloat() throws Exception {
-		Float input = new Float(1000);
-
-		StringToNumberConverter converter = StringToNumberConverter.toFloat(false);
-		Float result = (Float) converter.convert(numberFormat.format(input
-				.floatValue()));
-
-		assertEquals(input, result);
-	}
-
-	public void testConvertedToIntegerPrimitive() throws Exception {
-		Integer input = new Integer(1000);
-
-		StringToNumberConverter converter = StringToNumberConverter.toInteger(true);
-		Integer result = (Integer) converter.convert(numberIntegerFormat.format(input
-				.longValue()));
-		assertEquals(input, result);
-	}
-
-	public void testConvertsToDoublePrimitive() throws Exception {
-		Double input = new Double(1000);
-
-		StringToNumberConverter converter = StringToNumberConverter.toDouble(true);
-		Double result = (Double) converter.convert(numberFormat.format(input
-				.doubleValue()));
-
-		assertEquals(input, result);
-	}
-
-	public void testConvertsToLongPrimitive() throws Exception {
-		Long input = new Long(1000);
-
-		StringToNumberConverter converter = StringToNumberConverter.toLong(true);
-		Long result = (Long) converter.convert(numberIntegerFormat.format(input
-				.longValue()));
-
-		assertEquals(input, result);
-	}
-
-	public void testConvertsToFloatPrimitive() throws Exception {
-		Float input = new Float(1000);
-
-		StringToNumberConverter converter = StringToNumberConverter.toFloat(true);
-		Float result = (Float) converter.convert(numberFormat.format(input
-				.floatValue()));
-
-		assertEquals(input, result);
-	}
-	
-	public void testReturnsNullBoxedTypeForEmptyString() throws Exception {
-		StringToNumberConverter converter = StringToNumberConverter.toInteger(false);
-		try {
-			assertNull(converter.convert(""));
-		} catch (Exception e) {
-			fail("exception should not have been thrown");
-		}
-	}
-
-	public void testThrowsIllegalArgumentExceptionIfAskedToConvertNonString()
-			throws Exception {
-		StringToNumberConverter converter = StringToNumberConverter.toInteger(false);
-		try {
-			converter.convert(new Integer(1));
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-	
-	/**
-	 * Asserts a use case where the integer starts with a valid value but ends
-	 * in an unparsable format.
-	 * 
-	 * @throws Exception
-	 */
-	public void testInvalidInteger() throws Exception {
-		StringToNumberConverter converter = StringToNumberConverter
-				.toInteger(false);
-
-		try {
-			converter.convert("1 1 1");
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-	
-	public void testThrowsIllegalArgumentExceptionIfNumberIsOutOfRange() throws Exception {
-		StringToNumberConverter converter = StringToNumberConverter.toInteger(false);
-		try {
-			converter.convert(numberFormat.format(Long.MAX_VALUE));
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/AbstractObservableTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/AbstractObservableTest.java
deleted file mode 100755
index 322c03b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/AbstractObservableTest.java
+++ /dev/null
@@ -1,294 +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
- *     Brad Reynolds - bug 116920
- *     Matthew Hall - bugs 208332, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.jface.databinding.conformance.ObservableContractTest;
-import org.eclipse.jface.databinding.conformance.ObservableStaleContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * Tests for AbstractObservable.
- * 
- * @since 1.1
- */
-public class AbstractObservableTest extends AbstractDefaultRealmTestCase {
-	private ObservableStub observable;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		observable = new ObservableStub(Realm.getDefault());
-	}
-
-	public void testStaleListener() throws Exception {
-		assertFalse(observable.hasListeners());
-
-		StaleListener listener1 = new StaleListener();
-
-		assertFalse(observable.firstListenerAdded);
-		observable.addStaleListener(listener1);
-		assertTrue(observable.firstListenerAdded);
-		observable.firstListenerAdded = false; // reset
-
-		assertTrue(observable.hasListeners());
-		assertEquals(0, listener1.count);
-
-		observable.fireStale();
-
-		assertEquals(1, listener1.count);
-		assertSame(observable, listener1.source);
-
-		// Add a second stale listener as 1 vs. 2 listener code is different.
-		StaleListener listener2 = new StaleListener();
-		assertEquals(0, listener2.count);
-		observable.addStaleListener(listener2);
-		observable.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();
-		observable.addStaleListener(listener3);
-		assertEquals(0, listener3.count);
-
-		observable.fireStale();
-
-		assertEquals(3, listener1.count);
-		assertEquals(2, listener2.count);
-		assertEquals(1, listener3.count);
-
-		assertFalse(observable.lastListenerRemoved);
-		observable.removeStaleListener(listener1);
-		observable.removeStaleListener(listener2);
-		observable.removeStaleListener(listener3);
-		assertTrue(observable.lastListenerRemoved);
-
-		assertFalse(observable.hasListeners());
-	}
-
-	public void testChangeListener() throws Exception {
-		assertFalse(observable.hasListeners());
-
-		ChangeEventTracker listener1 = new ChangeEventTracker();
-
-		assertFalse(observable.firstListenerAdded);
-		observable.addChangeListener(listener1);
-		assertTrue(observable.firstListenerAdded);
-		observable.firstListenerAdded = false;
-
-		assertTrue(observable.hasListeners());
-		assertEquals(0, listener1.count);
-
-		observable.fireChange();
-
-		assertEquals(1, listener1.count);
-		assertSame(observable, listener1.event.getSource());
-
-		// Add a second listener as the 1 vs. 2 listener code is different.
-		ChangeEventTracker listener2 = new ChangeEventTracker();
-		observable.addChangeListener(listener2);
-		assertEquals(0, listener2.count);
-
-		observable.fireChange();
-		assertEquals(2, listener1.count);
-		assertEquals(1, listener2.count);
-
-		// Add a third listener as the 2 vs. 3 or greater code is different.
-		ChangeEventTracker listener3 = new ChangeEventTracker();
-		observable.addChangeListener(listener3);
-		assertEquals(0, listener3.count);
-
-		observable.fireChange();
-
-		assertEquals(3, listener1.count);
-		assertEquals(2, listener2.count);
-		assertEquals(1, listener3.count);
-
-		assertFalse(observable.lastListenerRemoved);
-		observable.removeChangeListener(listener1);
-		observable.removeChangeListener(listener2);
-		observable.removeChangeListener(listener3);
-		assertTrue(observable.lastListenerRemoved);
-
-		assertFalse(observable.hasListeners());
-	}
-
-	public void testHasListenersWithChangeAndStaleListeners() throws Exception {
-		ChangeEventTracker changeListener = new ChangeEventTracker();
-		StaleListener staleListener = new StaleListener();
-
-		assertFalse(observable.hasListeners());
-		assertFalse(observable.firstListenerAdded);
-		assertFalse(observable.lastListenerRemoved);
-
-		observable.addChangeListener(changeListener);
-		assertTrue(observable.hasListeners());
-		assertTrue(observable.firstListenerAdded);
-		assertFalse(observable.lastListenerRemoved);
-
-		// reset
-		observable.firstListenerAdded = false;
-		observable.lastListenerRemoved = false;
-
-		observable.addStaleListener(staleListener);
-		assertTrue(observable.hasListeners());
-		assertFalse(observable.firstListenerAdded);
-		assertFalse(observable.lastListenerRemoved);
-
-		observable.removeChangeListener(changeListener);
-		assertTrue(observable.hasListeners());
-		assertFalse(observable.firstListenerAdded);
-		assertFalse(observable.lastListenerRemoved);
-
-		observable.removeStaleListener(staleListener);
-		assertFalse(observable.hasListeners());
-		assertFalse(observable.firstListenerAdded);
-		assertTrue(observable.lastListenerRemoved);
-	}
-
-	public void testFireStaleRealmChecks() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				observable = new ObservableStub();
-				observable.fireStale();
-			}
-		});
-	}
-
-	public void testFireChangeRealmChecks() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				observable = new ObservableStub();
-				observable.fireChange();
-			}
-		});
-	}
-
-	private class StaleListener implements IStaleListener {
-		int count;
-		IObservable source;
-
-		public void handleStale(StaleEvent event) {
-			count++;
-			this.source = event.getObservable();
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AbstractObservableTest.class.getName());
-		suite.addTestSuite(AbstractObservableTest.class);
-		Delegate delegate = new Delegate();
-		suite.addTest(ObservableContractTest.suite(delegate));
-		suite.addTest(ObservableStaleContractTest.suite(delegate));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableContractDelegate {
-
-		public void change(IObservable observable) {
-			((ObservableStub) observable).fireChange();
-		}
-
-		public void setStale(IObservable observable, boolean stale) {
-			((ObservableStub) observable).setStale(stale);
-		}
-
-		public IObservable createObservable(Realm realm) {
-			return new ObservableStub(realm);
-		}
-	}
-
-	private static class ObservableStub extends AbstractObservable {
-		private boolean stale;
-
-		public ObservableStub() {
-			this(Realm.getDefault());
-		}
-
-		/**
-		 * @param realm
-		 */
-		public ObservableStub(Realm realm) {
-			super(realm);
-		}
-
-		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() {
-			getterCalled();
-			return stale;
-		}
-
-		private void getterCalled() {
-			ObservableTracker.getterCalled(this);
-		}
-
-		public void setStale(boolean stale) {
-			boolean old = this.stale;
-			this.stale = stale;
-
-			if (stale && !old) {
-				fireStale();
-			}
-		}
-
-		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/core/tests/databinding/observable/DiffsTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/DiffsTest.java
deleted file mode 100755
index 551acdd..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/DiffsTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable;
-
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-
-/**
- * @since 3.2
- *
- */
-public class DiffsTest 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 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/core/tests/databinding/observable/Diffs_ListDiffTests.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/Diffs_ListDiffTests.java
deleted file mode 100644
index 5cd9aff..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/Diffs_ListDiffTests.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 226216
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.list.ListDiffVisitor;
-
-/**
- * @since 1.1
- */
-public class Diffs_ListDiffTests extends TestCase {
-	public void testListDiffEntryToStringDoesNotThrowNPEForNullListDiffEntry() {
-		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.");
-		}
-	}
-
-	public void testListDiffToStringDoesNotThrowNPEForNullListDiff() {
-		ListDiff diff = new ListDiff() {
-			public ListDiffEntry[] getDifferences() {
-				return null;
-			}
-		};
-
-		try {
-			diff.toString();
-			assertTrue(true);
-		} catch (NullPointerException e) {
-			fail("NPE was thrown.");
-		}
-	}
-
-	public void testListDiffToStringDoesNotThrowNPEForNullListDiffEntry() {
-		ListDiff diff = new ListDiff() {
-			public ListDiffEntry[] getDifferences() {
-				return new ListDiffEntry[1];
-			}
-		};
-
-		try {
-			diff.toString();
-			assertTrue(true);
-		} catch (NullPointerException e) {
-			fail("NPE was thrown.");
-		}
-	}
-
-	public void testDiffScenario1() throws Exception {
-		ListDiff diff = diff(null, null);
-		assertEquals(0, diff.getDifferences().length);
-	}
-	
-	private ListDiff diff(String[] oldArray, String[] newArray) {
-		List a = Arrays.asList((oldArray != null) ? oldArray : new String[] {});
-		List b = Arrays.asList((newArray != null) ? newArray : new String[] {});
-		
-		return Diffs.computeListDiff(a, b);
-	}
-	
-	public void testDiffScenario2() throws Exception {
-		ListDiff diff = diff(new String[] {"a"}, null);
-		assertEquals(1, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], false, 0, "a");
-	}
-	
-	public void testDiffScenario3() throws Exception {
-		ListDiff diff = diff(null, new String[] {"a"});
-		assertEquals(1, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], true, 0, "a");
-	}
-	
-	public void testDiffScenario4() throws Exception {
-		ListDiff diff = diff(new String[] {"a"}, new String[] {"a"});
-		
-		assertEquals(0, diff.getDifferences().length);
-	}
-	
-	public void testDiffScenario5() throws Exception {
-		ListDiff diff = diff(new String[] {"a"}, new String[] {"b"});
-		assertEquals(2, diff.getDifferences().length);
-		
-		assertEntry(diff.getDifferences()[0], true, 0, "b");
-		assertEntry(diff.getDifferences()[1], false, 1, "a");
-	}
-	
-	public void testDiffScenario6() throws Exception {
-		ListDiff diff = diff(new String[] { "a" }, new String[] { "a", "b" });
-		
-		assertEquals(1, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], true, 1, "b");
-	}
-	
-	public void testDiffScenario7() throws Exception {
-		ListDiff diff = diff(new String[] { "a" }, new String[] { "b", "a" });
-		
-		assertEquals(1, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], true, 0, "b");
-	}
-	
-	public void testDiffScenario8() throws Exception {
-		ListDiff diff = diff(new String[] { "a" }, new String[] { "b", "b" });
-		
-		assertEquals(3, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], true, 0, "b");
-		assertEntry(diff.getDifferences()[1], true, 1, "b");
-		assertEntry(diff.getDifferences()[2], false, 2, "a");
-	}
-	
-	public void testDiffScenario9() throws Exception {
-		ListDiff diff = diff(new String[] { "a" }, new String[] { "a", "b", "c" });
-		
-		assertEquals(2, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], true, 1, "b");
-		assertEntry(diff.getDifferences()[1], true, 2, "c");
-	}
-	
-	public void testDiffScenario10() throws Exception {
-		ListDiff diff = diff(new String[] { "b" }, new String[] { "a", "b", "c" });
-		
-		assertEquals(2, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], true, 0, "a");
-		assertEntry(diff.getDifferences()[1], true, 2, "c");
-	}
-	
-	public void testDiffScenario11() throws Exception {
-		ListDiff diff = diff(new String[] { "c" }, new String[] { "a", "b", "c" });
-		
-		assertEquals(2, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], true, 0, "a");
-		assertEntry(diff.getDifferences()[1], true, 1, "b");		
-	}
-	
-	public void testDiffScenario12() throws Exception {
-		ListDiff diff = diff(new String[] { "a", "b", "c" }, new String[] { "a", "b", "c" });
-		
-		assertEquals(0, diff.getDifferences().length);
-	}
-	
-	public void testDiffScenario13() throws Exception {
-		ListDiff diff = diff(new String[] { "a", "b", "c" }, new String[] { "b", "c" });
-		
-		assertEquals(1, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], false, 0, "a");
-	}
-	
-	public void testDiffScenarios14() throws Exception {
-		ListDiff diff = diff(new String[] { "a", "b", "c" }, new String[] { "a", "c" });
-		
-		assertEquals(1, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], false, 1, "b");
-	}
-	
-	public void testDiffScenarios15() throws Exception {
-		ListDiff diff = diff(new String[] { "a", "b", "c" }, new String[] { "a", "b" });
-		
-		assertEquals(1, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], false, 2, "c");
-	}
-	
-	public void testDiffScenarios16() throws Exception {
-		ListDiff diff = diff(new String[] { "a", "b", "c" }, new String[] { "c", "b", "a" });
-		
-		assertEquals(4, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], false, 2, "c");
-		assertEntry(diff.getDifferences()[1], true, 0, "c");
-		assertEntry(diff.getDifferences()[2], false, 2, "b");
-		assertEntry(diff.getDifferences()[3], true, 1, "b");
-	}
-	
-	public void testDiffScenarios17() throws Exception {
-		ListDiff diff = diff(new String[] { "a", "b", "c" }, new String[] { "c", "b" });
-		
-		assertEquals(3, diff.getDifferences().length);
-		assertEntry(diff.getDifferences()[0], false, 0, "a");
-		assertEntry(diff.getDifferences()[1], false, 1, "c");
-		assertEntry(diff.getDifferences()[2], true, 0, "c");
-	}
-	
-	private static void assertEntry(ListDiffEntry entry, boolean addition, int position, String element) {
-		assertEquals("addition", addition, entry.isAddition());
-		assertEquals("position", position, entry.getPosition());
-		assertEquals("element", element, entry.getElement());
-	}
-
-	public void testComputeListDiff_SingleInsert() {
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "c" }), Arrays
-				.asList(new Object[] { "a", "b", "c" }));
-	}
-
-	public void testComputeListDiff_SingleAppend() {
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "b" }), Arrays
-				.asList(new Object[] { "a", "b", "c" }));
-	}
-
-	public void testComputeListDiff_SingleRemove() {
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "b", "c" }),
-				Arrays.asList(new Object[] { "a", "b" }));
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "b", "c" }),
-				Arrays.asList(new Object[] { "a", "c" }));
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "b", "c" }),
-				Arrays.asList(new Object[] { "b", "c" }));
-	}
-
-	public void testComputeListDiff_MoveDown1() {
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "b" }), Arrays
-				.asList(new Object[] { "b", "a" }));
-	}
-
-	public void testComputeListDiff_MoveDown2() {
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "b", "c" }),
-				Arrays.asList(new Object[] { "b", "c", "a" }));
-	}
-
-	public void testComputeListDiff_MoveUp1() {
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "b" }), Arrays
-				.asList(new Object[] { "b", "a" }));
-	}
-
-	public void testComputeListDiff_MoveUp2() {
-		checkComputedListDiff(Arrays.asList(new Object[] { "a", "b", "c" }),
-				Arrays.asList(new Object[] { "c", "a", "b" }));
-	}
-
-	private static void checkComputedListDiff(List oldList, List newList) {
-		ListDiff diff = Diffs.computeListDiff(oldList, newList);
-
-		final List list = new ArrayList(oldList);
-		diff.accept(new ListDiffVisitor() {
-			public void handleAdd(int index, Object element) {
-				list.add(index, element);
-			}
-
-			public void handleRemove(int index, Object element) {
-				assertEquals(element, list.remove(index));
-			}
-
-			public void handleReplace(int index, Object oldElement,
-					Object newElement) {
-				assertEquals(oldElement, list.set(index, newElement));
-			}
-		});
-
-		assertEquals(
-				"Applying diff to old list should make it equal to new list",
-				newList, list);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/LockRealm.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/LockRealm.java
deleted file mode 100755
index 768fb33..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/LockRealm.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable;
-
-import java.util.LinkedList;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.core.runtime.jobs.Job;
-
-/**
- * @since 3.2
- * 
- */
-public class LockRealm extends Realm {
-
-	private LinkedList queue;
-	private ILock lock;
-	private Job job;
-	private boolean lockAcquired;
-
-	public LockRealm() {
-		queue = new LinkedList();
-		lock = Job.getJobManager().newLock();
-		job = new Job("Lock Realm Job") {
-			protected IStatus run(IProgressMonitor monitor) {
-				for (Runnable runnable; (runnable = dequeue()) != null;) {
-					acquireLock();
-					try {
-						safeRun(runnable);
-					} finally {
-						releaseLock();
-					}
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		job.setSystem(true);
-	}
-
-	protected void syncExec(Runnable runnable) {
-		acquireLock();
-		try {
-			safeRun(runnable);
-		} finally {
-			releaseLock();
-		}
-	}
-
-	public void asyncExec(Runnable runnable) {
-		enqueue(runnable);
-		job.schedule();
-	}
-
-	/**
-	 * @param runnable
-	 */
-	private void enqueue(Runnable runnable) {
-		synchronized (queue) {
-			queue.addLast(runnable);
-		}
-	}
-
-	private Runnable dequeue() {
-		synchronized (queue) {
-			if (queue.isEmpty()) {
-				return null;
-			}
-			return (Runnable) queue.getFirst();
-		}
-	}
-
-	public boolean isCurrent() {
-		return lockAcquired;
-	}
-
-	private void acquireLock() {
-		lock.acquire();
-		lockAcquired = true;
-	}
-
-	private void releaseLock() {
-		lockAcquired = false;
-		lock.release();
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ObservableTrackerTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ObservableTrackerTest.java
deleted file mode 100644
index be13fa3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ObservableTrackerTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 210115)
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable;
-
-import org.eclipse.core.databinding.observable.*;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class ObservableTrackerTest extends AbstractDefaultRealmTestCase {
-	public void testGetterCalled_ObservableDisposed() throws Exception {
-		try {
-			IObservable observable = new ObservableStub();
-			observable.dispose();
-
-			ObservableTracker.getterCalled(observable);
-
-			fail("expected AssertionFailedException");
-		} catch (AssertionFailedException expected) {
-		}
-	}
-
-	public void testGetterCalled_ObservableRealmNotCurrent() throws Exception {
-		try {
-			IObservable observable = new ObservableStub(new NotCurrentRealm());
-
-			ObservableTracker.getterCalled(observable);
-
-			fail("expected AssertionFailedException");
-		} catch (AssertionFailedException expected) {
-		}
-	}
-
-	public static class ObservableStub extends AbstractObservable {
-		public ObservableStub() {
-			this(Realm.getDefault());
-		}
-
-		public ObservableStub(Realm realm) {
-			super(realm);
-		}
-
-		public boolean isStale() {
-			return false;
-		}
-	}
-
-	public static class NotCurrentRealm extends Realm {
-		public boolean isCurrent() {
-			return false;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ObservablesTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ObservablesTest.java
deleted file mode 100755
index 6c896db..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ObservablesTest.java
+++ /dev/null
@@ -1,46 +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.core.tests.databinding.observable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableList;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class ObservablesTest extends AbstractDefaultRealmTestCase {	
-	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/core/tests/databinding/observable/RealmTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/RealmTest.java
deleted file mode 100644
index ad8caf0..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/RealmTest.java
+++ /dev/null
@@ -1,37 +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.core.tests.databinding.observable;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * @since 3.2
- */
-public class RealmTest extends TestCase {
-	public void testSetDefaultWithRunnable() throws Exception {
-		Realm oldRealm = new CurrentRealm(true);
-		final Realm newRealm = new CurrentRealm(true);
-		
-		RealmTester.setDefault(oldRealm);
-		Realm.runWithDefault(newRealm, new Runnable() {
-			public void run() {
-				assertEquals("new realm should be default", newRealm, Realm.getDefault());
-			}
-		});
-		
-		assertEquals("old realm should have been restored", oldRealm, Realm.getDefault());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ThreadRealm.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ThreadRealm.java
deleted file mode 100755
index 7562a16..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ThreadRealm.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-package org.eclipse.core.tests.databinding.observable;
-
-import java.util.LinkedList;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * {@link Realm} that enforces execution to be within a specific
- * {@link Thread}.
- * 
- * @since 3.2
- */
-public class ThreadRealm extends Realm {
-    private Thread thread;
-
-    private final LinkedList queue = new LinkedList();
-
-    private volatile boolean block;
-
-    /**
-     * Initializes the realm.
-     * 
-     * @param thread
-     */
-    public synchronized void init(Thread thread) {
-        if (thread == null) {
-            throw new IllegalArgumentException("Parameter thread was null."); //$NON-NLS-1$
-        }
-        Assert.isTrue(this.thread == null, "Realm can only be initialized once.");
-
-        this.thread = thread;
-    }
-
-    /**
-     * @return <code>true</code> if the current thread is the thread for
-     *         the realm
-     */
-    public boolean isCurrent() {
-        return Thread.currentThread() == thread;
-    }
-
-    /**
-     * @return thread, <code>null</code> if not
-     *         {@link #init(Thread) initialized}
-     */
-    public Thread getThread() {
-        return thread;
-    }
-
-    /**
-     * Queues the provided <code>runnable</code>.
-     * 
-     * @param runnable
-     */
-    public void asyncExec(Runnable runnable) {
-        synchronized (queue) {
-            queue.add(runnable);
-            queue.notifyAll();
-        }
-    }
-    
-    public boolean isBlocking() {
-        return block;
-    }
-
-    /**
-     * Blocks the current thread invoking runnables.
-     */
-    public void block() {
-        if (block) {
-            throw new IllegalStateException("Realm is already blocking.");
-        }
-        
-        if (Thread.currentThread() != thread) {
-            throw new IllegalStateException("The current thread is not the correct thread.");
-        }
-        
-        try {
-            block = true;
-            while (block) {
-                Runnable runnable = null;
-                synchronized (queue) {
-                    while (queue.isEmpty()) {
-                        queue.wait();
-                    }
-                    
-                    // Check the size in case the thread is being awoken by
-                    // unblock().
-                    if (!queue.isEmpty()) {
-                        runnable = (Runnable) queue.removeFirst();
-                    }
-                }
-
-                if (runnable != null) {
-                    safeRun(runnable);
-                    runnable = null;
-                }
-            }
-        } catch (InterruptedException e) {
-            Thread.currentThread().interrupt();
-        } finally {
-            block = false;
-        }
-    }
-
-    /**
-     * Unblocks the thread.
-     */
-    public void unblock() {
-        block = false;
-
-        // Awaken the thread if waiting.
-        synchronized (queue) {
-            queue.notifyAll();
-        }
-    }
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/AbstractObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/AbstractObservableListTest.java
deleted file mode 100755
index 4aa00d5..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/AbstractObservableListTest.java
+++ /dev/null
@@ -1,210 +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
- *     Brad Reynolds - bug 167204
- *     Matthew Hall - bugs 208858, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.AbstractObservableList;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.conformance.ObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * @since 3.2
- */
-public class AbstractObservableListTest extends TestCase {
-	private AbstractObservableListStub list;
-
-	protected void setUp() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-		list = new AbstractObservableListStub();
-	}
-
-	protected void tearDown() throws Exception {
-		RealmTester.setDefault(null);
-	}
-
-	public void testFireChangeRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				list.fireChange();
-			}
-		});
-	}
-
-	public void testFireStaleRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				list.fireStale();
-			}
-		});
-	}
-
-	public void testFireListChangeRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				list.fireListChange(null);
-			}
-		});
-	}
-
-	public void testMove_FiresListChanges() throws Exception {
-		list = new MutableObservableListStub();
-		final Object element = new Object();
-		list.add(element);
-		list.add(new Object());
-
-		final List diffEntries = new ArrayList();
-		list.addListChangeListener(new IListChangeListener() {
-			public void handleListChange(ListChangeEvent event) {
-				diffEntries.addAll(Arrays.asList(event.diff.getDifferences()));
-			}
-		});
-
-		list.move(0, 1);
-
-		assertEquals(2, diffEntries.size());
-
-		ListDiffEntry entry = (ListDiffEntry) diffEntries.get(0);
-		assertEquals(element, entry.getElement());
-		assertEquals(false, entry.isAddition());
-		assertEquals(0, entry.getPosition());
-
-		entry = (ListDiffEntry) diffEntries.get(1);
-		assertEquals(element, entry.getElement());
-		assertEquals(true, entry.isAddition());
-		assertEquals(1, entry.getPosition());
-	}
-
-	public void testMove_MovesElement() throws Exception {
-		list = new MutableObservableListStub();
-		final Object element0 = new Object();
-		final Object element1 = new Object();
-		list.add(element0);
-		list.add(element1);
-
-		list.move(0, 1);
-
-		assertEquals(element1, list.get(0));
-		assertEquals(element0, list.get(1));
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AbstractObservableListTest.class.getName());
-		suite.addTestSuite(AbstractObservableListTest.class);
-		suite.addTest(ObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				final int itemCount) {
-
-			String[] items = new String[itemCount];
-			for (int i = 0; i < itemCount; i++) {
-				items[i] = String.valueOf(i);
-			}
-
-			AbstractObservableListStub observable = new AbstractObservableListStub(realm, Arrays.asList(items));
-			observable.elementType = String.class;
-			return observable;
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			((AbstractObservableListStub) observable).fireChange();
-		}
-	}
-
-	static class AbstractObservableListStub extends AbstractObservableList {
-		Object elementType;
-
-		List wrappedList;
-
-		public AbstractObservableListStub() {
-			super();
-			wrappedList = new ArrayList();
-		}
-
-		public AbstractObservableListStub(Realm realm, List list) {
-			super(realm);
-			this.wrappedList = list;
-		}
-
-		protected int doGetSize() {
-			return wrappedList.size();
-		}
-
-		public Object get(int index) {
-			ObservableTracker.getterCalled(this);
-			return wrappedList.get(index);
-		}
-
-		public Object getElementType() {
-			return elementType;
-		}
-
-		protected void fireChange() {
-			super.fireChange();
-		}
-
-		protected void fireStale() {
-			super.fireStale();
-		}
-
-		protected void fireListChange(ListDiff diff) {
-			super.fireListChange(diff);
-		}
-	}
-
-	static class MutableObservableListStub extends AbstractObservableListStub {
-		// These methods are present so we can test AbstractObservableList.move()
-
-		public void add(int index, Object element) {
-			checkRealm();
-			wrappedList.add(index, element);
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, true, element)));
-		}
-
-		public Object remove(int index) {
-			checkRealm();
-			Object element = wrappedList.remove(index);
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, false, element)));
-			return element;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ComputedListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ComputedListTest.java
deleted file mode 100644
index 6b1aebe..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ComputedListTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 211786)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.ComputedList;
-import org.eclipse.jface.databinding.conformance.ObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ListChangeEventTracker;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class ComputedListTest extends AbstractDefaultRealmTestCase {
-	ComputedListStub list;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		list = new ComputedListStub();
-		list.size(); // Force list to compute
-	}
-
-	public void testDependency_Staleness() {
-		assertFalse(list.isStale());
-		list.dependency.fireStale();
-		assertTrue(list.isStale());
-	}
-
-	public void testDependency_FiresListChange() {
-		assertEquals(list.nextComputation, list);
-
-		Object element = new Object();
-		list.nextComputation.add(element);
-
-		list.dependency.fireChange();
-
-		List expectedList = new ArrayList();
-		expectedList.add(element);
-		assertEquals(expectedList, list);
-	}
-
-	public void testDependency_NoStaleEventIfAlreadyDirty() {
-		list.dependency.fireChange();
-		list.addStaleListener(new IStaleListener() {
-			public void handleStale(StaleEvent staleEvent) {
-				fail("Should not fire stale when list is already dirty");
-			}
-		});
-		list.dependency.fireStale();
-	}
-
-	public void testDependency_ListChangeEventFiresOnlyWhenNotDirty() {
-		ListChangeEventTracker tracker = ListChangeEventTracker.observe(list);
-
-		list.dependency.fireChange();
-		assertEquals(
-				"ComputedList should fire list change event when its dependency changes",
-				1, tracker.count);
-
-		list.dependency.fireChange();
-		assertEquals(
-				"ComputedList should not fire list change events when dirty",
-				1, tracker.count);
-
-		list.size(); // Force list to recompute.
-		list.dependency.fireChange();
-		assertEquals(
-				"ComputedList should fire list change event when its dependency changes",
-				2, tracker.count);
-	}
-
-	static class ComputedListStub extends ComputedList {
-		List nextComputation = new ArrayList();
-		ObservableStub dependency;
-
-		ComputedListStub() {
-			this(Realm.getDefault());
-		}
-
-		ComputedListStub(Realm realm) {
-			super(realm);
-			dependency = new ObservableStub(realm);
-		}
-
-		protected List calculate() {
-			ObservableTracker.getterCalled(dependency);
-			return new ArrayList(nextComputation);
-		}
-	}
-
-	static class ObservableStub extends AbstractObservable {
-		public ObservableStub(Realm realm) {
-			super(realm);
-		}
-
-		boolean stale;
-
-		public boolean isStale() {
-			return stale;
-		}
-
-		protected void fireStale() {
-			stale = true;
-			super.fireStale();
-		}
-
-		protected void fireChange() {
-			super.fireChange();
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ComputedListTest.class.getName());
-		suite.addTestSuite(ComputedListTest.class);
-		suite.addTest(ObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			final ComputedListStub list = new ComputedListStub(realm);
-			for (int i = 0; i < elementCount; i++)
-				list.nextComputation.add(createElement(list));
-			list.size(); // force list to compute
-			return list;
-		}
-
-		public void change(IObservable observable) {
-			ComputedListStub list = (ComputedListStub) observable;
-			list.nextComputation.add(new Object());
-			list.dependency.fireChange();
-		}
-
-		public void setStale(IObservable observable, boolean stale) {
-			if (stale)
-				((ComputedListStub) observable).dependency.fireStale();
-			else {
-				ComputedListStub computedList = (ComputedListStub) observable;
-				computedList.dependency.stale = false;
-				computedList.dependency.fireChange();
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ListDiffTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ListDiffTest.java
deleted file mode 100644
index 959d828..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ListDiffTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208858)
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.list;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.list.ListDiffVisitor;
-
-import junit.framework.TestCase;
-
-/**
- * Tests for ListDiff class
- * 
- * @since 1.1
- */
-public class ListDiffTest extends TestCase {
-	ListDiffVisitorStub visitor;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		visitor = new ListDiffVisitorStub();
-	}
-
-	public void testAccept_Add() {
-		createListDiff(add(0, "element")).accept(visitor);
-		assertEquals("add(0,element)", visitor.log);
-	}
-
-	public void testAccept_Remove() {
-		createListDiff(remove(0, "element")).accept(visitor);
-		assertEquals("remove(0,element)", visitor.log);
-	}
-
-	public void testAccept_Move() {
-		createListDiff(remove(0, "element"), add(1, "element")).accept(visitor);
-		assertEquals("move(0,1,element)", visitor.log);
-	}
-
-	public void testAccept_Replace() {
-		createListDiff(remove(0, "element0"), add(0, "element1")).accept(
-				visitor);
-		assertEquals("replace(0,element0,element1)", visitor.log);
-	}
-
-	public void testAccept_AllPatterns() {
-		createListDiff(new ListDiffEntry[] {
-				// Replace
-				remove(0, "element0"), add(0, "element1"),
-				// Remove
-				remove(1, "element2"),
-				// Add
-				add(2, "element3"),
-				// Move
-				remove(3, "element4"), add(4, "element4") }).accept(visitor);
-		assertEquals(
-				"replace(0,element0,element1), remove(1,element2), add(2,element3), move(3,4,element4)",
-				visitor.log);
-	}
-
-	public void testAccept_MoveDetectionUsesEqualityNotSameness() {
-		Object element0 = new String("element");
-		Object element1 = new String("element");
-		assertNotSame(element0, element1);
-		assertEquals(element0, element1);
-
-		createListDiff(remove(0, element0), add(1, element1)).accept(visitor);
-		assertEquals("move(0,1,element)", visitor.log);
-	}
-
-	private ListDiffEntry add(int index, Object element) {
-		return Diffs.createListDiffEntry(index, true, element);
-	}
-
-	private ListDiffEntry remove(int index, Object element) {
-		return Diffs.createListDiffEntry(index, false, element);
-	}
-
-	private ListDiff createListDiff(ListDiffEntry difference) {
-		return createListDiff(new ListDiffEntry[] { difference });
-	}
-
-	private ListDiff createListDiff(ListDiffEntry first, ListDiffEntry second) {
-		return createListDiff(new ListDiffEntry[] { first, second });
-	}
-
-	private ListDiff createListDiff(ListDiffEntry[] differences) {
-		return Diffs.createListDiff(differences);
-	}
-
-	class ListDiffVisitorStub extends ListDiffVisitor {
-		String log = "";
-
-		public void handleAdd(int index, Object element) {
-			log("add(" + index + "," + element + ")");
-		}
-
-		public void handleRemove(int index, Object element) {
-			log("remove(" + index + "," + element + ")");
-		}
-
-		public void handleMove(int oldIndex, int newIndex, Object element) {
-			log("move(" + oldIndex + "," + newIndex + "," + element + ")");
-		}
-
-		public void handleReplace(int index, Object oldElement,
-				Object newElement) {
-			log("replace(" + index + "," + oldElement + "," + newElement + ")");
-		}
-
-		private void log(String message) {
-			if (log.length() > 0)
-				log += ", ";
-			log += message;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ListDiffVisitorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ListDiffVisitorTest.java
deleted file mode 100644
index 4ec9288..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ListDiffVisitorTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208858)
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.list;
-
-import org.eclipse.core.databinding.observable.list.ListDiffVisitor;
-
-import junit.framework.TestCase;
-
-/**
- * Tests for ListDiffVisitor class
- * 
- * @since 1.1
- */
-public class ListDiffVisitorTest extends TestCase {
-	ListDiffVisitorStub visitor;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		visitor = new ListDiffVisitorStub();
-	}
-
-	public void testHandleMove_DelegatesByDefault() {
-		visitor.handleMove(0, 1, "element");
-		assertEquals(
-				"Default ListDiffVisitor.handleMove must delegate to handleRemove and handleAdd",
-				"remove(0,element), add(1,element)", visitor.log);
-	}
-
-	public void testHandleReplace_DelegatesByDefault() {
-		visitor.handleReplace(2, "oldElement", "newElement");
-		assertEquals(
-				"Default ListDiffVisitor.handleReplace must delegate to handleRemove and handleAdd",
-				"remove(2,oldElement), add(2,newElement)", visitor.log);
-	}
-
-	static class ListDiffVisitorStub extends ListDiffVisitor {
-		String log = "";
-
-		private void log(String message) {
-			if (log.length() > 0)
-				log += ", ";
-			log += message;
-		}
-
-		public void handleAdd(int index, Object element) {
-			log("add(" + index + "," + element + ")");
-		}
-
-		public void handleRemove(int index, Object element) {
-			log("remove(" + index + "," + element + ")");
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ObservableListTest.java
deleted file mode 100755
index 461e87b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/ObservableListTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 167204
- *     Matthew Hall - bugs 208858, 213145
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.jface.databinding.conformance.ObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * @since 3.2
- */
-public class ObservableListTest extends TestCase {
-	private ObservableListStub list;
-
-	protected void setUp() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-
-		list = new ObservableListStub(new ArrayList(0), Object.class);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		RealmTester.setDefault(null);
-	}
-
-	public void testIsStaleRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				list.isStale();
-			}
-		});
-	}
-
-	public void testSetStaleRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				list.setStale(false);
-			}
-		});
-	}
-
-	public void testMove_FiresListChanges() throws Exception {
-		list = new MutableObservableListStub();
-		final Object element = new Object();
-		list.add(0, element);
-		list.add(1, new Object());
-
-		final List diffEntries = new ArrayList();
-		list.addListChangeListener(new IListChangeListener() {
-			public void handleListChange(ListChangeEvent event) {
-				diffEntries.addAll(Arrays.asList(event.diff.getDifferences()));
-			} 
-		}); 
-
-		list.move(0, 1);
-
-		assertEquals(2, diffEntries.size());
-
-		ListDiffEntry entry = (ListDiffEntry) diffEntries.get(0);
-		assertEquals(element, entry.getElement());
-		assertEquals(false, entry.isAddition());
-		assertEquals(0, entry.getPosition());
-
-		entry = (ListDiffEntry) diffEntries.get(1);
-		assertEquals(element, entry.getElement());
-		assertEquals(true, entry.isAddition());
-		assertEquals(1, entry.getPosition());
-	}
-
-	public void testMove_MovesElement() throws Exception {
-		list = new MutableObservableListStub();
-		final Object element0 = new Object();
-		final Object element1 = new Object();
-		list.add(0, element0);
-		list.add(1, element1);
-		
-		list.move(0, 1);
-
-		assertEquals(element1, list.get(0));
-		assertEquals(element0, list.get(1));
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ObservableListTest.class.getName());
-		suite.addTestSuite(ObservableListTest.class);
-		suite.addTest(ObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-	
-	/* package */ static class Delegate extends AbstractObservableCollectionContractDelegate {
-		public IObservableCollection createObservableCollection(Realm realm, final int elementCount) {
-			List wrappedList = new ArrayList();
-			for (int i = 0; i < elementCount; i++) {
-				wrappedList.add(String.valueOf(i));
-			}
-			
-			return new MutableObservableListStub(realm, wrappedList, String.class);
-		}
-		
-		public void change(IObservable observable) {
-			ObservableListStub list = (ObservableListStub) observable;
-			Object element = "element";
-			list.wrappedList.add(element);
-			list.fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(list.size(), true, element)));
-		}
-		
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-	}
-
-	/* package */static class ObservableListStub extends ObservableList {
-		List wrappedList;
-		ObservableListStub(Realm realm, List wrappedList, Object elementType) {
-			super(realm, wrappedList, elementType);
-			this.wrappedList = wrappedList;
-		}
-		
-		ObservableListStub(List wrappedList, Object elementType) {
-			super(wrappedList, elementType);
-			this.wrappedList = wrappedList;
-		}
-		
-		protected void fireListChange(ListDiff diff) {
-			super.fireListChange(diff);
-		}
-	}
-
-	/* package */static class MutableObservableListStub extends
-			ObservableListStub {
-		MutableObservableListStub() {
-			this(Realm.getDefault(), new ArrayList(), null);
-		}
-
-		MutableObservableListStub(Realm realm, List wrappedList,
-				Object elementType) {
-			super(realm, wrappedList, elementType);
-		}
-
-		public void add(int index, Object element) {
-			checkRealm();
-			wrappedList.add(index, element);
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, true, element)));
-		}
-
-		public Object remove(int index) {
-			checkRealm();
-			Object element = wrappedList.remove(index);
-			fireListChange(Diffs.createListDiff(Diffs.createListDiffEntry(
-					index, false, element)));
-			return element;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/WritableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/WritableListTest.java
deleted file mode 100755
index 5a7d158..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/list/WritableListTest.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 164653, 147515
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.list;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.conformance.MutableObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 3.2
- */
-public class WritableListTest extends TestCase {
-	protected void tearDown() throws Exception {
-		RealmTester.setDefault(null);
-	}
-
-	public void testSetRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableList list = new WritableList();
-				list.add("");
-				list.set(0, "");
-			}
-		});
-	}
-
-	public void testAddRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableList list = new WritableList();
-				list.add("");
-			}
-		});
-	}
-
-	public void testAddByIndexRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableList list = new WritableList();
-				list.add(0, "");
-			}
-		});
-	}
-
-	public void testAddAllRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableList list = new WritableList();
-				list.addAll(Collections.EMPTY_LIST);
-			}
-		});
-	}
-
-	public void testAddAllByIndexRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableList list = new WritableList();
-				list.addAll(0, Collections.EMPTY_LIST);
-			}
-		});
-	}
-
-	public void testRemoveRealmChecks() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-		final WritableList list = new WritableList();
-		list.add("");
-		list.add("");
-
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				list.remove("");
-			}
-		});
-		RealmTester.setDefault(null);
-	}
-
-	public void testRemoveByIndexRealmChecks() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-		final WritableList list = new WritableList();
-		list.add("");
-		list.add("");
-
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				list.remove(list.size() - 1);
-			}
-		});
-
-		RealmTester.setDefault(null);
-	}
-
-	public void testRemoveAllRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableList list = new WritableList();
-				list.removeAll(Collections.EMPTY_LIST);
-			}
-		});
-	}
-
-	public void testRetainAllRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableList list = new WritableList();
-				list.retainAll(Collections.EMPTY_LIST);
-			}
-		});
-	}
-
-	public void testClearRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableList list = new WritableList();
-				list.clear();
-			}
-		});
-	}
-
-	public void testNullElementType() throws Exception {
-		RealmTester.setDefault(SWTObservables.getRealm(Display.getDefault()));
-		WritableList writableList = new WritableList();
-		assertNull(writableList.getElementType());
-
-		writableList = new WritableList(Realm.getDefault());
-		assertNull(writableList.getElementType());
-	}
-
-	public void testWithElementType() throws Exception {
-		RealmTester.setDefault(SWTObservables.getRealm(Display.getDefault()));
-
-		Object elementType = String.class;
-		WritableList list = WritableList.withElementType(elementType);
-		assertNotNull(list);
-		assertEquals(Realm.getDefault(), list.getRealm());
-		assertEquals(elementType, list.getElementType());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(WritableListTest.class.getName());
-		suite.addTestSuite(WritableListTest.class);
-		suite.addTest(MutableObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		public Object createElement(IObservableCollection collection) {
-			return String.valueOf(collection.size() + 1);
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				final int itemCount) {
-			WritableList observable = new WritableList(realm, new ArrayList(), String.class);
-
-			for (int i = 0; i < itemCount; i++) {
-				observable.add(String.valueOf(i));
-			}
-
-			return observable;
-		}
-
-		public void change(IObservable observable) {
-			((WritableList) observable).add("");
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/AbstractObservableMapTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/AbstractObservableMapTest.java
deleted file mode 100644
index a183952..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/AbstractObservableMapTest.java
+++ /dev/null
@@ -1,95 +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.core.tests.databinding.observable.map;
-
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.map.AbstractObservableMap;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * @since 3.2
- */
-public class AbstractObservableMapTest extends TestCase {
-	private AbstractObservableMapStub map;
-
-	protected void setUp() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-		map = new AbstractObservableMapStub();
-	}
-	
-	protected void tearDown() throws Exception {
-		RealmTester.setDefault(null);
-	}
-	
-	public void testIsStaleRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				map.isStale();
-			}			
-		});
-	}
-	
-	public void testSetStaleRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				map.setStale(true);
-			}
-		});
-	}
-	
-	public void testFireStaleRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() { 
-			public void run() {
-				map.fireStale();
-			}
-		});
-	}
-	
-	public void testFireChangeRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				map.fireChange();
-			}
-		});
-	}
-	
-	public void testFireMapChangeRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				map.fireMapChange(null);
-			}
-		});
-	}
-	
-	static class AbstractObservableMapStub extends AbstractObservableMap {
-		public Set entrySet() {
-			return null;
-		}
-		
-		protected void fireChange() {
-			super.fireChange();
-		}
-		
-		protected void fireMapChange(MapDiff diff) {
-			super.fireMapChange(diff);
-		}
-		
-		protected void fireStale() {
-			super.fireStale();
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/CompositeMapTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/CompositeMapTest.java
deleted file mode 100644
index 488d86c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/CompositeMapTest.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.map;
-
-import java.util.Collections;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.map.CompositeMap;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.jface.databinding.conformance.util.MapChangeEventTracker;
-import org.eclipse.jface.examples.databinding.model.SimpleCart;
-import org.eclipse.jface.examples.databinding.model.SimplePerson;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- * 
- */
-public class CompositeMapTest extends AbstractDefaultRealmTestCase {
-
-	private WritableSet persons;
-	private CompositeMap composedMap;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		persons = new WritableSet();
-		IObservableMap first = BeansObservables.observeMap(persons,
-				SimplePerson.class, "cart");
-		composedMap = new CompositeMap(first, new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return BeansObservables.observeMap((IObservableSet) target,
-						SimpleCart.class, "numItems");
-			}
-		});
-	}
-
-	public void testAddToFirstMap() {
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		composedMap.addMapChangeListener(tracker);
-		assertEquals(0, tracker.count);
-		SimplePerson newPerson = new SimplePerson("p1", "a1", "c1", "s1");
-		newPerson.getCart().setNumItems(42);
-		persons.add(newPerson);
-		assertEquals(1, tracker.count);
-		assertEquals(0, tracker.event.diff.getRemovedKeys().size());
-		assertEquals(0, tracker.event.diff.getChangedKeys().size());
-		assertEquals(Collections.singleton(newPerson), tracker.event.diff
-				.getAddedKeys());
-		assertEquals(new Integer(42), tracker.event.diff.getNewValue(newPerson));
-		assertEquals(new Integer(42), composedMap.get(newPerson));
-	}
-
-	public void testAddSharedToFirstMap() {
-		SimplePerson person1 = new SimplePerson("p1", "a1", "c1", "s1");
-		person1.getCart().setNumItems(42);
-		persons.add(person1);
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		composedMap.addMapChangeListener(tracker);
-		assertEquals(0, tracker.count);
-		SimplePerson person2 = new SimplePerson("p1", "a1", "c1", "s1");
-		person2.setCart(person1.getCart());
-		persons.add(person2);
-		assertEquals(1, tracker.count);
-		assertEquals(0, tracker.event.diff.getRemovedKeys().size());
-		assertEquals(0, tracker.event.diff.getChangedKeys().size());
-		assertEquals(Collections.singleton(person2), tracker.event.diff
-				.getAddedKeys());
-		assertEquals(new Integer(42), tracker.event.diff.getNewValue(person2));
-		assertEquals(new Integer(42), composedMap.get(person2));
-		assertEquals(new Integer(42), composedMap.get(person1));
-	}
-
-	public void testRemoveFromFirstMap() {
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		SimplePerson newPerson = new SimplePerson("p1", "a1", "c1", "s1");
-		newPerson.getCart().setNumItems(42);
-		persons.add(newPerson);
-		assertTrue("newPerson should be added", composedMap.containsKey(newPerson));
-		composedMap.addMapChangeListener(tracker);
-		assertEquals(0, tracker.count);
-		persons.remove(newPerson);
-		assertEquals(1, tracker.count);
-		assertEquals(0, tracker.event.diff.getAddedKeys().size());
-		assertEquals(0, tracker.event.diff.getChangedKeys().size());
-		assertEquals(Collections.singleton(newPerson), tracker.event.diff
-				.getRemovedKeys());
-		assertEquals(new Integer(42), tracker.event.diff.getOldValue(newPerson));
-		assertFalse("newPerson should be removed", composedMap.containsKey(newPerson));
-	}
-
-	public void testRemoveSharedFromFirstMap() {
-		SimplePerson person1 = new SimplePerson("p1", "a1", "c1", "s1");
-		person1.getCart().setNumItems(42);
-		persons.add(person1);
-		SimplePerson person2 = new SimplePerson("p1", "a1", "c1", "s1");
-		person2.setCart(person1.getCart());
-		persons.add(person2);
-		assertTrue("person2 should be added", composedMap.containsKey(person2));
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		composedMap.addMapChangeListener(tracker);
-		assertEquals(0, tracker.count);
-		persons.remove(person2);
-		assertEquals(1, tracker.count);
-		assertEquals(0, tracker.event.diff.getAddedKeys().size());
-		assertEquals(0, tracker.event.diff.getChangedKeys().size());
-		assertEquals(Collections.singleton(person2), tracker.event.diff
-				.getRemovedKeys());
-		assertEquals(new Integer(42), tracker.event.diff.getOldValue(person2));
-		assertFalse("person2 should be removed", composedMap.containsKey(person2));
-		assertEquals(new Integer(42), composedMap.get(person1));
-	}
-
-	public void testChangeInFirstMap() {
-		SimplePerson person1 = new SimplePerson("p1", "a1", "c1", "s1");
-		person1.getCart().setNumItems(42);
-		persons.add(person1);
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		composedMap.addMapChangeListener(tracker);
-		assertEquals(0, tracker.count);
-		person1.setCart(new SimpleCart());
-		assertEquals(1, tracker.count);
-		assertEquals(0, tracker.event.diff.getAddedKeys().size());
-		assertEquals(0, tracker.event.diff.getRemovedKeys().size());
-		assertEquals(Collections.singleton(person1), tracker.event.diff
-				.getChangedKeys());
-		assertEquals(new Integer(42), tracker.event.diff.getOldValue(person1));
-		assertEquals(new Integer(0), tracker.event.diff.getNewValue(person1));
-		assertEquals(new Integer(0), composedMap.get(person1));
-	}
-	
-	public void testChangeInFirstMapToShared() {
-		SimplePerson person0 = new SimplePerson("p0", "a0", "c0", "s0");
-		person0.getCart().setNumItems(13);
-		persons.add(person0);
-		SimplePerson person1 = new SimplePerson("p1", "a1", "c1", "s1");
-		person1.getCart().setNumItems(42);
-		persons.add(person1);
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		composedMap.addMapChangeListener(tracker);
-		assertEquals(0, tracker.count);
-		person1.setCart(person0.getCart());
-		assertEquals(1, tracker.count);
-		assertEquals(0, tracker.event.diff.getAddedKeys().size());
-		assertEquals(0, tracker.event.diff.getRemovedKeys().size());
-		assertEquals(Collections.singleton(person1), tracker.event.diff
-				.getChangedKeys());
-		assertEquals(new Integer(42), tracker.event.diff.getOldValue(person1));
-		assertEquals(new Integer(13), tracker.event.diff.getNewValue(person1));
-		assertEquals(new Integer(13), composedMap.get(person1));
-	}
-	
-	public void testChangeInFirstMapFromShared() {
-		SimplePerson person0 = new SimplePerson("p0", "a0", "c0", "s0");
-		person0.getCart().setNumItems(13);
-		persons.add(person0);
-		SimplePerson person1 = new SimplePerson("p1", "a1", "c1", "s1");
-		person1.setCart(person0.getCart());
-		persons.add(person1);
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		composedMap.addMapChangeListener(tracker);
-		assertEquals(0, tracker.count);
-		person1.setCart(new SimpleCart());
-		assertEquals(1, tracker.count);
-		assertEquals(0, tracker.event.diff.getAddedKeys().size());
-		assertEquals(0, tracker.event.diff.getRemovedKeys().size());
-		assertEquals(Collections.singleton(person1), tracker.event.diff
-				.getChangedKeys());
-		assertEquals(new Integer(13), tracker.event.diff.getOldValue(person1));
-		assertEquals(new Integer(0), tracker.event.diff.getNewValue(person1));
-		assertEquals(new Integer(0), composedMap.get(person1));
-	}
-	
-	public void testChangeInSecondMap() {
-		SimplePerson person0 = new SimplePerson("p0", "a0", "c0", "s0");
-		person0.getCart().setNumItems(13);
-		persons.add(person0);
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		composedMap.addMapChangeListener(tracker);
-		assertEquals(0, tracker.count);
-		person0.getCart().setNumItems(42);
-		assertEquals(1, tracker.count);
-		assertEquals(0, tracker.event.diff.getAddedKeys().size());
-		assertEquals(0, tracker.event.diff.getRemovedKeys().size());
-		assertEquals(Collections.singleton(person0), tracker.event.diff
-				.getChangedKeys());
-		assertEquals(new Integer(13), tracker.event.diff.getOldValue(person0));
-		assertEquals(new Integer(42), tracker.event.diff.getNewValue(person0));
-		assertEquals(new Integer(42), composedMap.get(person0));
-	}
-	
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/ObservableMapTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/ObservableMapTest.java
deleted file mode 100644
index d69e786..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/ObservableMapTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.map;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.observable.map.ObservableMap;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * @since 3.2
- * 
- */
-public class ObservableMapTest extends TestCase {
-	ObservableMapStub map;
-
-	protected void setUp() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-		map = new ObservableMapStub(new HashMap());
-	}
-
-	protected void tearDown() throws Exception {
-		RealmTester.setDefault(null);
-	}
-
-	public void testDisposeMapChangeListeners() throws Exception {
-		class MapChangeListener implements IMapChangeListener {
-			int count;
-
-			public void handleMapChange(MapChangeEvent event) {
-				count++;
-			}
-		}
-
-		MapChangeListener listener = new MapChangeListener();
-		map.addMapChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		map.fireMapChange(null);
-		assertEquals(1, listener.count);
-
-		map.dispose();
-		try {
-			map.fireMapChange(null);
-		} catch (Exception e) {
-			// do nothing
-		}
-
-		assertEquals("listener should not have been notified", 1,
-				listener.count);
-	}
-
-	public void testIsStaleRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				map.isStale();
-			}
-		});
-	}
-
-	public void testSetStaleRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				map.setStale(true);
-			}
-		});
-	}
-
-	public void testFireMapChangeRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				map.fireMapChange(null);
-			}
-		});
-	}
-
-	static class ObservableMapStub extends ObservableMap {
-		/**
-		 * @param wrappedMap
-		 */
-		public ObservableMapStub(Map wrappedMap) {
-			super(wrappedMap);
-		}
-
-		protected void fireMapChange(MapDiff diff) {
-			super.fireMapChange(diff);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/WritableMapTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/WritableMapTest.java
deleted file mode 100644
index d3a9870..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/map/WritableMapTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 184830
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.map;
-
-import java.util.Collections;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.WritableMap;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.MapChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * @since 3.2
- * 
- */
-public class WritableMapTest extends TestCase {
-	protected void setUp() throws Exception {
-		RealmTester.setDefault(new CurrentRealm(true));
-	}
-
-	protected void tearDown() throws Exception {
-		RealmTester.setDefault(null);
-	}
-
-	public void testPutRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableMap map = new WritableMap();
-				map.put("", "");
-			}
-		});
-	}
-
-	public void testRemoveRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableMap map = new WritableMap();
-				CurrentRealm realm = (CurrentRealm) Realm.getDefault();
-				boolean current = realm.isCurrent();
-				realm.setCurrent(true);
-				map.put("", "");
-				realm.setCurrent(current);
-
-				map.remove("");
-			}
-		});
-	}
-
-	public void testClearRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableMap map = new WritableMap();
-				map.clear();
-			}
-		});
-	}
-
-	public void testPutAllRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				WritableMap map = new WritableMap();
-				map.putAll(Collections.EMPTY_MAP);
-			}
-		});
-	}
-	
-	public void testPutWithExistingKeyMapChangeEvent() throws Exception {
-		WritableMap map = new WritableMap();
-		String key = "key";
-		String value = "value";
-		map.put(key, value);
-		
-		MapChangeEventTracker listener = new MapChangeEventTracker();
-		map.addMapChangeListener(listener);
-		
-		assertEquals(0, listener.count);
-		
-		String newValue = "new value";
-		map.put(key, newValue);
-		
-		assertEquals(1, listener.count);
-		MapChangeEvent event = listener.event;
-		
-		
-		Set changedKeys = event.diff.getChangedKeys();
-		assertEquals(1, changedKeys.size());
-		assertTrue(changedKeys.contains(key));
-		assertEquals(value, event.diff.getOldValue(key));
-		assertEquals(newValue, event.diff.getNewValue(key));
-	}
-
-	public void testPutSameValue_NoMapChangeEvent() {
-		WritableMap map = new WritableMap();
-		Object key = new Object();
-		Object value = "value";
-		map.put(key, value);
-
-		MapChangeEventTracker tracker = MapChangeEventTracker.observe(map);
-
-		assertEquals(0, tracker.count);
-
-		Object equalValue = new String("value");
-		map.put(key, equalValue);
-
-		assertEquals(0, tracker.count);
-		
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/AbstractObservableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/AbstractObservableSetTest.java
deleted file mode 100644
index 4992c1b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/AbstractObservableSetTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.set;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.AbstractObservableSet;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.conformance.ObservableCollectionContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-
-/**
- */
-public class AbstractObservableSetTest extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AbstractObservableSetTest.class.getName());
-		suite.addTest(ObservableCollectionContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		public void change(IObservable observable) {
-			((AbstractObservableSetStub) observable).fireSetChange(Diffs.createSetDiff(new HashSet(), new HashSet()));
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return Integer.toString(collection.size());
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			AbstractObservableSetStub set = new AbstractObservableSetStub(realm, String.class);
-			
-			for (int i = 0; i < elementCount; i++) {
-				set.getWrappedSet().add(Integer.toString(i));
-			}
-			
-			return set;
-		}
-	}
-	
-	private static class AbstractObservableSetStub extends AbstractObservableSet {
-		private Object type;
-		private HashSet set;
-		
-		private AbstractObservableSetStub(Realm realm, Object type) {
-			super (realm);
-			set = new HashSet();
-			this.type = type;
-		}
-		
-		protected Set getWrappedSet() {
-			return set;
-		}
-
-		public Object getElementType() {
-			return type;
-		}		
-		
-		protected void fireSetChange(SetDiff diff) {
-			super.fireSetChange(diff);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/ObservableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/ObservableSetTest.java
deleted file mode 100755
index 7e0752f..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/ObservableSetTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.set;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.jface.databinding.conformance.ObservableCollectionContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-
-/**
- * @since 1.1
- */
-public class ObservableSetTest extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ObservableSetTest.class.getName());
-		suite.addTest(ObservableCollectionContractTest.suite(new Delegate()));
-		return suite;
-	}
-	
-	private static class Delegate extends AbstractObservableCollectionContractDelegate {	
-		private Delegate() {	
-		}
-		
-		public void change(IObservable observable) {
-			((ObservableSetStub) observable).fireSetChange(Diffs.createSetDiff(new HashSet(), new HashSet()));
-		}
-		
-		public Object createElement(IObservableCollection collection) {
-			return Integer.toString(collection.size());
-		}
-	
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			IObservableSet set = new ObservableSetStub(realm, new HashSet(), String.class);
-			
-			for (int i = 0; i < elementCount; i++) {
-				set.add(Integer.toString(i));
-			}
-			
-			return set;
-		}
-	}
-
-	private static class ObservableSetStub extends ObservableSet {
-		/**
-		 * @param wrappedSet
-		 * @param elementType
-		 */
-		protected ObservableSetStub(Realm realm, Set wrappedSet, Object elementType) {
-			super(realm, wrappedSet, elementType);
-		}
-
-		public void fireSetChange(SetDiff diff) {
-			super.fireSetChange(diff);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/UnionSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/UnionSetTest.java
deleted file mode 100755
index ad69960..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/UnionSetTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.set;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.UnionSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.jface.databinding.conformance.ObservableCollectionContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-
-/**
- */
-public class UnionSetTest extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(UnionSetTest.class.getName());
-		suite.addTest(ObservableCollectionContractTest.suite(new Delegate()));
-		return suite;
-	}
-	
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		private IObservableSet[] sets;
-
-		private Delegate() {
-		}
-
-		public void setUp() {
-			
-			super.setUp();
-		}
-
-		public void tearDown() {
-			sets = null;
-
-			super.tearDown();
-		}
-
-		public void change(IObservable observable) {
-			sets[0].add(Integer.toString(sets[0].size()));
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return Integer.toString(collection.size());
-		}
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {			
-			sets = new IObservableSet[]{new WritableSet(realm), new WritableSet(realm)};
-			
-			IObservableSet set = new UnionSet(sets);
-
-			for (int i = 0; i < elementCount; i++) {
-				sets[0].add(Integer.toString(i));
-			}
-
-			return set;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/WritableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/WritableSetTest.java
deleted file mode 100644
index f23f315..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/set/WritableSetTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 221351, 213145
- ******************************************************************************/
-package org.eclipse.core.tests.databinding.observable.set;
-
-import java.util.Collections;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.jface.databinding.conformance.MutableObservableSetContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- */
-public class WritableSetTest extends AbstractDefaultRealmTestCase {
-	public void testWithElementType() throws Exception {
-		Object elementType = String.class;
-		WritableSet set = WritableSet.withElementType(elementType);
-		assertNotNull(set);
-		assertEquals(Realm.getDefault(), set.getRealm());
-		assertEquals(elementType, set.getElementType());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(WritableSetTest.class.getName());
-		suite.addTestSuite(WritableSetTest.class);
-		suite.addTest(MutableObservableSetContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		private Delegate() {
-			super();
-		}
-
-		public void change(IObservable observable) {
-			IObservableSet set = (IObservableSet) observable;
-			set.add(createElement(set));
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			IObservableSet set = new WritableSet(realm, Collections.EMPTY_SET,
-					String.class);
-			for (int i = 0; i < elementCount; i++) {
-				set.add(createElement(set));
-			}
-
-			return set;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/AbstractObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/AbstractObservableValueTest.java
deleted file mode 100755
index 66fb359..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/AbstractObservableValueTest.java
+++ /dev/null
@@ -1,89 +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.core.tests.databinding.observable.value;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * @since 3.2
- */
-public class AbstractObservableValueTest extends TestCase {
-	public void testSetValueRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				ObservableValueStub observable = new ObservableValueStub();
-				try {
-					observable.setValue(null);
-				} catch (UnsupportedOperationException e) {
-					// do nothing
-				}
-			}
-		});
-	}
-
-	public void testSetValueInvokesDoSetValue() throws Exception {
-		class ValueStub extends ObservableValueStub {
-			int doSetValue;
-
-			ValueStub(Realm realm) {
-				super(realm);
-			}
-
-			protected void doSetValue(Object value) {
-				doSetValue++;
-			}
-		}
-
-		Realm realm = new CurrentRealm(true);
-		ValueStub stub = new ValueStub(realm);
-		assertEquals(0, stub.doSetValue);
-		stub.setValue(new Object());
-		assertEquals("doSetValue should have been invoked", 1, stub.doSetValue);
-	}
-
-	public void testFireValueChangeRealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				ObservableValueStub observable = new ObservableValueStub();
-				observable.fireValueChange(null);
-			}
-		});
-	}
-
-	private static class ObservableValueStub extends AbstractObservableValue {
-		ObservableValueStub() {
-			super(Realm.getDefault());
-		}
-
-		private ObservableValueStub(Realm realm) {
-			super(realm);
-		}
-
-		protected Object doGetValue() {
-			return null;
-		}
-
-		public Object getValueType() {
-			return null;
-		}
-
-		protected void fireValueChange(ValueDiff diff) {
-			super.fireValueChange(diff);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/AbstractVetoableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/AbstractVetoableValueTest.java
deleted file mode 100755
index 2507db4..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/AbstractVetoableValueTest.java
+++ /dev/null
@@ -1,86 +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.core.tests.databinding.observable.value;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.AbstractVetoableValue;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * @since 3.2
- */
-public class AbstractVetoableValueTest extends TestCase {
-    public void testSetValueInvokesDoSetApprovedValue() throws Exception {
-        class VetoableValue extends VetoableValueStub {
-            int count;
-            Object value;
-            
-            VetoableValue(Realm realm) {
-                super(realm);
-            }
-            
-            protected void doSetApprovedValue(Object value) {
-                count++;
-                this.value = value;
-            }      
-        }
-        
-        Realm realm = new CurrentRealm(true);
-        VetoableValue vetoableValue = new VetoableValue(realm);
-        assertEquals(0, vetoableValue.count);
-        assertEquals(null, vetoableValue.value);
-        
-        Object value = new Object();
-        vetoableValue.setValue(value);
-        assertEquals(1, vetoableValue.count);
-        assertEquals(value, vetoableValue.value);
-    }
-    
-    public void testFireValueChangeRealmChecks() throws Exception {
-    	RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				VetoableValueStub observable = new VetoableValueStub();
-				observable.fireValueChanging(null);
-			}
-    	});
-	}
-    
-    private static class VetoableValueStub extends AbstractVetoableValue {
-    	VetoableValueStub() {
-    		this(Realm.getDefault());
-    	}
-    	
-    	VetoableValueStub(Realm realm) {
-    		super(realm);
-    	}
-    	
-		protected void doSetApprovedValue(Object value) {
-		}
-
-		protected Object doGetValue() {
-			return null;
-		}
-
-
-		public Object getValueType() {
-			return null;
-		}    	
-		
-		protected boolean fireValueChanging(ValueDiff diff) {
-			return super.fireValueChanging(diff);
-		}
-    }
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/ComputedValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/ComputedValueTest.java
deleted file mode 100755
index 8d90011..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/ComputedValueTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 164653
- *******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 1.0
- * 
- */
-public class ComputedValueTest extends AbstractDefaultRealmTestCase {
-    public void testValueType() throws Exception {
-        ComputedValue cv = new ComputedValue(Integer.TYPE) {
-            protected Object calculate() {
-                return new Integer(42);
-            }
-        };
-        assertEquals("value type should be the type that was set", Integer.TYPE, cv.getValueType());
-
-        cv = new ComputedValue() {
-            protected Object calculate() {
-                // TODO Auto-generated method stub
-                return null;
-            }
-        };
-
-        assertNull(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 testDependencyValueChange() throws Exception {
-        final WritableValue value = new WritableValue(new Integer(42), Integer.TYPE);
-
-        ComputedValue cv = new ComputedValue() {
-            protected Object calculate() {
-                return value.getValue();
-            }
-        };
-
-        assertEquals("calculated value should have been that of the writable value", value.getValue(), cv.getValue());
-
-        value.setValue(new Integer(44));
-
-        assertEquals("calculated value should have been that of the writable value", value.getValue(), cv.getValue());
-    }
-
-    private static class WritableValueExt extends WritableValue {
-        public WritableValueExt(Object valueType, Object initialValue) {
-            super(initialValue, valueType);
-        }
-
-        public boolean hasListeners() {
-            return super.hasListeners();
-        }
-    }
-
-    public void testHookAndUnhookDependantObservables() throws Exception {
-        final List values = new ArrayList();
-
-        ComputedValue cv = new ComputedValue() {
-            protected Object calculate() {
-                int sum = 0;
-                for (Iterator it = values.iterator(); it.hasNext();) {
-                    WritableValue value = (WritableValue) it.next();
-                    sum += ((Integer) value.getValue()).intValue();
-
-                }
-
-                return new Integer(sum);
-            }
-        };
-
-        WritableValueExt value1 = new WritableValueExt(Integer.TYPE, new Integer(1));
-        WritableValueExt value2 = new WritableValueExt(Integer.TYPE, new Integer(1));
-        values.add(value1);
-        values.add(value2);
-        
-        assertFalse(value1.hasListeners());
-        assertFalse(value2.hasListeners());
-        cv.getValue();
-        assertTrue(value1.hasListeners());
-        assertTrue(value2.hasListeners());
-        
-        //force the computed value to be stale
-        value2.setValue(new Integer(2));
-        //remove value2 from the values that are used to compute the value
-        values.remove(value2);
-        
-        //force the value to be computed
-        cv.getValue();
-        assertEquals(new Integer(1), cv.getValue());
-        assertTrue(value1.hasListeners());
-        assertFalse("because value2 is not a part of the calculation the listeners should have been removed", value2.hasListeners());
-    }
-    
-    public void testSetValueUnsupportedOperationException() throws Exception {
-        ComputedValue cv = new ComputedValue() {
-            protected Object calculate() {
-                return null;
-            }
-        };
-        
-        try {
-            cv.setValue(new Object());
-            fail("exception should have been thrown");
-        } catch (UnsupportedOperationException e) {
-        }
-    }
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/WritableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/WritableValueTest.java
deleted file mode 100755
index 8437e74..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/value/WritableValueTest.java
+++ /dev/null
@@ -1,79 +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
- *     Brad Reynolds - bug 164653
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.observable.value;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.conformance.MutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 3.2
- */
-public class WritableValueTest extends AbstractDefaultRealmTestCase {
-	/**
-	 * All constructors delegate to the 3 arg constructor.
-	 * 
-	 * @throws Exception
-	 */
-	public void testConstructor() throws Exception {
-		WritableValue value = new WritableValue(SWTObservables.getRealm(Display
-				.getDefault()));
-		assertNull(value.getValue());
-		assertNull(value.getValueType());
-	}
-
-	public void testWithValueType() throws Exception {
-		Object elementType = String.class;
-		WritableValue value = WritableValue.withValueType(elementType);
-		assertNotNull(value);
-		assertEquals(Realm.getDefault(), value.getRealm());
-		assertEquals(elementType, value.getValueType());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(WritableValueTest.class.getName());
-		suite.addTestSuite(WritableValueTest.class);
-		suite.addTest(MutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		public IObservableValue createObservableValue(Realm realm) {
-			return new WritableValue(realm, "", String.class);
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-		
-		public Object createValue(IObservableValue observable) {
-			return observable.getValue() + "a";
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/validation/MultiValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/validation/MultiValidatorTest.java
deleted file mode 100644
index be1e4aa..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/validation/MultiValidatorTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- *     Matthew Hall - bug 237884
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.validation;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.MultiValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.observable.ValidatedObservableValue;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class MultiValidatorTest extends AbstractDefaultRealmTestCase {
-	private WritableValue dependency;
-	private MultiValidator validator;
-	private IObservableValue validationStatus;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		dependency = new WritableValue(null, IStatus.class);
-		validator = new MultiValidator() {
-			protected IStatus validate() {
-				return (IStatus) dependency.getValue();
-			}
-		};
-		validationStatus = validator.getValidationStatus();
-	}
-
-	public void testConstructor_NullArgument() {
-		try {
-			new MultiValidator(null) {
-				protected IStatus validate() {
-					return null;
-				}
-			};
-			fail("Expected AssertionFailedException");
-		} catch (AssertionFailedException expected) {
-		}
-	}
-
-	public void testGetValidationStatus_NullResultYieldsOKStatus() {
-		IStatus status = (IStatus) validationStatus.getValue();
-		assertTrue(status.isOK()); // null -> OK
-	}
-
-	public void testGetValidationStatus_ExceptionThrownYieldsErrorStatus() {
-		final RuntimeException e = new RuntimeException("message");
-		validator = new MultiValidator() {
-			protected IStatus validate() {
-				throw e;
-			}
-		};
-		assertEquals(ValidationStatus.error("message", e), validator
-				.getValidationStatus().getValue());
-	}
-
-	public void testGetValidationStatus_TracksWithDependency() {
-		IStatus newStatus = ValidationStatus.error("error");
-		dependency.setValue(newStatus);
-		assertEquals(newStatus, validationStatus.getValue());
-	}
-
-	public void testInit_AddsValidationProducer() {
-		DataBindingContext dbc = new DataBindingContext();
-		dbc.addValidationStatusProvider(validator);
-		assertTrue(dbc.getValidationStatusProviders().contains(validator));
-	}
-
-	public void testObserveValidatedValue_NullArgument() {
-		try {
-			validator.observeValidatedValue(null);
-			fail("Expected AssertionFailedException");
-		} catch (AssertionFailedException expected) {
-		}
-	}
-
-	public void testObserveValidatedValue_WrongRealm() {
-		Realm otherRealm = new CurrentRealm(true);
-		try {
-			validator.observeValidatedValue(new WritableValue(otherRealm));
-			fail("Expected AssertionFailedException");
-		} catch (AssertionFailedException expected) {
-		}
-	}
-
-	public void testObserveValidatedValue_ReturnValue() {
-		WritableValue target = new WritableValue();
-		ValidatedObservableValue validated = (ValidatedObservableValue) validator
-				.observeValidatedValue(target);
-
-		target.setValue(new Object());
-		assertEquals(target.getValue(), validated.getValue());
-
-		dependency.setValue(ValidationStatus.error("error"));
-		assertFalse(validated.isStale());
-
-		target.setValue(new Object());
-		assertTrue(validated.isStale());
-		assertFalse(target.getValue().equals(validated.getValue()));
-
-		dependency.setValue(ValidationStatus.info("info")); // considered valid
-		assertEquals(target.getValue(), validated.getValue());
-		assertFalse(validated.isStale());
-	}
-
-	public void testBug237884_DisposeCausesNPE() {
-		MultiValidator validator = new MultiValidator() {
-			protected IStatus validate() {
-				return ValidationStatus.ok();
-			}
-		};
-		try {
-			validator.dispose();
-		} catch (NullPointerException e) {
-			fail("Bug 237884: MultiValidator.dispose() causes NPE");
-		}
-	}
-
-	public void testBug237884_MultipleDispose() {
-		validator.dispose();
-		validator.dispose();
-	}
-
-	public void testBug237884_Comment3_ValidationStatusAsDependencyCausesStackOverflow() {
-		dependency = new WritableValue(new Object(), Object.class);
-		validator = new MultiValidator() {
-			private int counter;
-
-			protected IStatus validate() {
-				ObservableTracker.getterCalled(dependency);
-				return ValidationStatus.info("info " + counter++);
-			}
-		};
-		validationStatus = validator.getValidationStatus();
-
-		// bug behavior: the validation status listener causes the validation
-		// status observable to become a dependency of the validator.
-		validationStatus.addChangeListener(new IChangeListener() {
-			public void handleChange(ChangeEvent event) {
-				ObservableTracker.getterCalled(validationStatus);
-			}
-		});
-		dependency.setValue(new Object());
-
-		// at this point, because the validation status observable is a
-		// dependency, changes to the validation status cause revalidation in an
-		// infinite recursion.
-		try {
-			dependency.setValue(new Object());
-		} catch (StackOverflowError e) {
-			fail("Bug 237884: Accessing MultiValidator validation status from within listener "
-					+ "causes infinite recursion");
-		}
-	}
-
-	public void testBug237884_ValidationStatusListenerCausesLoopingDependency() {
-		validationStatus.addChangeListener(new IChangeListener() {
-			public void handleChange(ChangeEvent event) {
-				ObservableTracker.getterCalled(validationStatus);
-			}
-		});
-		assertFalse(validator.getTargets().contains(validationStatus));
-		// trigger revalidation
-		dependency.setValue(ValidationStatus.info("info"));
-		assertFalse(validator.getTargets().contains(validationStatus));
-	}
-
-	public void testBug237884_ValidationStatusAccessDuringValidationCausesLoopingDependency() {
-		validator = new MultiValidator() {
-			protected IStatus validate() {
-				ObservableTracker.getterCalled(getValidationStatus());
-				return (IStatus) dependency.getValue();
-			}
-		};
-		// trigger revalidation
-		dependency.setValue(ValidationStatus.info("info"));
-		assertFalse(validator.getTargets().contains(validationStatus));
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/validation/ValidationStatusTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/validation/ValidationStatusTest.java
deleted file mode 100644
index b6f831e..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/validation/ValidationStatusTest.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.databinding.validation;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 1.1
- */
-public class ValidationStatusTest extends TestCase {
-	public void testEqualsAndHashCode() throws Exception {
-		String message = "error";
-		Exception e = new IllegalArgumentException();
-		IStatus status1 = ValidationStatus.error(message, e);
-		IStatus status2 = ValidationStatus.error(message, e);
-		
-		assertEquals(status1, status2);
-		assertEquals(status1.hashCode(), status2.hashCode());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/BindingMessagesTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/BindingMessagesTest.java
deleted file mode 100644
index 5e6b516..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/BindingMessagesTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.core.tests.internal.databinding;
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.BindingMessages;
-
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-/**
- * @since 3.2
- *
- */
-public class BindingMessagesTest extends TestCase {
-	public void testFormatString() throws Exception {
-		String key = "Validate_NumberOutOfRangeError";
-		String result = BindingMessages.formatString(key, new Object[] {"1", "2"});
-		assertFalse("key should not be returned", key.equals(result));
-	}
-	
-	public void testFormatStringForKeyNotFound() throws Exception {
-		String key = "key_that_does_not_exist";
-		String result = BindingMessages.formatString(key, null);
-		assertTrue(key.equals(result));
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/BindingStatusTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/BindingStatusTest.java
deleted file mode 100644
index 4e73204..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/BindingStatusTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package org.eclipse.core.tests.internal.databinding;
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.BindingStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-/**
- * @since 1.1
- */
-public class BindingStatusTest extends TestCase {
-	private BindingStatus bindingStatus;
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		bindingStatus = BindingStatus.ok();
-	}
-	
-	public void testMessageIsFromStatus() throws Exception {
-		String message = "error message";
-		IStatus status = ValidationStatus.error(message);
-		
-		bindingStatus.add(status);
-		assertEquals(message, bindingStatus.getMessage());
-	}
-	
-	public void testExceptionIsFromStatus() throws Exception {
-		IllegalArgumentException e = new IllegalArgumentException();
-		Status status = new Status(0, Policy.JFACE_DATABINDING, 0, "", e);
-		
-		bindingStatus.add(status);
-		assertEquals(e, bindingStatus.getException());
-	}
-	
-	public void testPluginIsFromStatus() throws Exception {
-		String plugin = "test";
-		Status status = new Status(0, plugin, 0, "", null);
-		
-		bindingStatus.add(status);
-		assertEquals(plugin, bindingStatus.getPlugin());
-	}
-	
-	public void testCodeIsFromStatus() throws Exception {
-		int code = 1;
-		Status status = new Status(0, Policy.JFACE_DATABINDING, code, "", null);
-		
-		bindingStatus.add(status);
-		assertEquals(code, status.getCode());
-	}
-	
-	public void testSeverityIsFromStatus() throws Exception {
-		IStatus status = ValidationStatus.error("");
-		
-		bindingStatus.add(status);
-		assertEquals(IStatus.ERROR, status.getSeverity());
-	}
-	
-	public void testLowerSeverityDoesNotOverwriteGreaterSeverity() throws Exception {
-		String info = "info";
-		String error = "error";
-		
-		bindingStatus.add(ValidationStatus.error(error));
-		assertEquals(IStatus.ERROR, bindingStatus.getSeverity());
-		assertEquals(error, bindingStatus.getMessage());
-		
-		bindingStatus.add(ValidationStatus.info(info));
-		assertEquals(IStatus.ERROR, bindingStatus.getSeverity());
-		assertEquals(error, bindingStatus.getMessage());
-		
-		IStatus[] children = bindingStatus.getChildren();
-		assertEquals(2, children.length);
-		assertEquals(IStatus.ERROR, children[0].getSeverity());
-		assertEquals(IStatus.INFO, children[1].getSeverity());
-	}
-	
-	public void testEqual() throws Exception {
-		BindingStatus status1 = BindingStatus.ok();
-		BindingStatus status2 = BindingStatus.ok();
-		
-		assertEquals(status1, status2);
-	}
-	
-	public void testNotEqual() throws Exception {
-		BindingStatus status1 = BindingStatus.ok();
-		BindingStatus status2 = BindingStatus.ok();
-		
-		status2.add(ValidationStatus.error(""));
-		assertFalse(status1.equals(status2));
-	}
-	
-	public void testHashCode() throws Exception {
-		BindingStatus status1 = BindingStatus.ok();
-		BindingStatus status2 = BindingStatus.ok();
-		
-		assertEquals(status1.hashCode(), status2.hashCode());
-	}
-	
-	public void testOkInitializesStatus() throws Exception {
-		BindingStatus status = BindingStatus.ok();
-		assertEquals(Policy.JFACE_DATABINDING, status.getPlugin());
-		assertEquals("", status.getMessage());
-		assertEquals(0, status.getCode());
-		assertEquals(0, status.getChildren().length);
-		assertNull(status.getException());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/QueueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/QueueTest.java
deleted file mode 100644
index 0541847..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/QueueTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding;
-
-import org.eclipse.core.internal.databinding.Queue;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.2
- *
- */
-public class QueueTest extends TestCase {
-
-	private Queue queue;
-
-	protected void setUp() throws Exception {
-		this.queue = new Queue();
-	}
-	
-	public void testIsEmpty() {
-		assertTrue(queue.isEmpty());
-		queue.enqueue("foo");
-		assertFalse(queue.isEmpty());
-		queue.enqueue("bar");
-		assertFalse(queue.isEmpty());
-		queue.dequeue();
-		assertFalse(queue.isEmpty());
-		queue.dequeue();
-		assertTrue(queue.isEmpty());
-	}
-	
-	public void testEnqueueAndDequeue() {
-		try {
-			queue.dequeue();
-			fail("expected IllegalStateException");
-		} catch(IllegalStateException ex) {
-			// expected
-		}
-		queue.enqueue("foo");
-		assertEquals("foo", queue.dequeue());
-		try {
-			queue.dequeue();
-			fail("expected IllegalStateException");
-		} catch(IllegalStateException ex) {
-			// expected
-		}
-		queue.enqueue("foo");
-		queue.enqueue("bar");
-		queue.dequeue();
-		queue.enqueue("bas");
-		queue.enqueue("moo");
-		assertEquals("bar", queue.dequeue());
-		assertEquals("bas", queue.dequeue());
-		assertEquals("moo", queue.dequeue());
-		assertTrue(queue.isEmpty());
-	}
-	
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/RandomAccessListIteratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/RandomAccessListIteratorTest.java
deleted file mode 100755
index 20bcbdc..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/RandomAccessListIteratorTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tests.internal.databinding;
-
-import java.util.LinkedList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.RandomAccessListIterator;
-
-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/core/tests/internal/databinding/beans/Bean.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/Bean.java
deleted file mode 100644
index b066f61..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/Bean.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 221351
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Simple Java Bean for testing.
- * 
- * @since 3.3
- */
-public class Bean {
-	/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(
-			this);
-	private String value;
-	private Object[] array;
-	private List list;
-	private Set set;
-
-	public Bean() {
-	}
-
-	public Bean(String value) {
-		this.value = value;
-	}
-
-	public Bean(Object[] array) {
-		this.array = array;
-	}
-
-	public Bean(List list) {
-		this.list = list;
-	}
-
-	public Bean(Set set) {
-		this.set = set;
-	}
-
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
-		changeSupport.addPropertyChangeListener(listener);
-	}
-
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
-		changeSupport.removePropertyChangeListener(listener);
-	}
-
-	public String getValue() {
-		return value;
-	}
-
-	public void setValue(String value) {
-		changeSupport.firePropertyChange("value", this.value,
-				this.value = value);
-	}
-
-	public Object[] getArray() {
-		return array;
-	}
-
-	public void setArray(Object[] array) {
-		changeSupport.firePropertyChange("array", this.array,
-				this.array = array);
-	}
-
-	public List getList() {
-		return list;
-	}
-
-	public void setList(List list) {
-		changeSupport.firePropertyChange("list", this.list, this.list = list);
-	}
-
-	public Set getSet() {
-		return set;
-	}
-
-	public void setSet(Set set) {
-		changeSupport.firePropertyChange("set", this.set, this.set = set);
-	}
-
-	public boolean hasListeners(String propertyName) {
-		return changeSupport.hasListeners(propertyName);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableListDecoratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableListDecoratorTest.java
deleted file mode 100644
index e7cf0f6..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableListDecoratorTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 208858, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.internal.databinding.beans.BeanObservableListDecorator;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableList;
-import org.eclipse.jface.databinding.conformance.MutableObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 3.3
- */
-public class BeanObservableListDecoratorTest extends TestCase {
-	private PropertyDescriptor propertyDescriptor;
-	private JavaBeanObservableList observableList;
-	private BeanObservableListDecorator decorator;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		Bean bean = new Bean();
-		propertyDescriptor = new PropertyDescriptor(
-				"list", Bean.class,"getList","setList");
-		observableList = new JavaBeanObservableList(
-				SWTObservables.getRealm(Display.getDefault()), bean,
-				propertyDescriptor, Bean.class);
-		decorator = new BeanObservableListDecorator(observableList, observableList, propertyDescriptor);
-	}
-
-	public void testGetDelegate() throws Exception {
-		assertEquals(observableList, decorator.getDelegate());
-	}
-
-	public void testGetObserved() throws Exception {
-		assertEquals(observableList, decorator.getObserved());
-	}
-
-	public void testGetPropertyDescriptor() throws Exception {
-		assertEquals(propertyDescriptor, decorator.getPropertyDescriptor());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(BeanObservableListDecoratorTest.class.getName());
-		suite.addTestSuite(BeanObservableListDecoratorTest.class);
-		suite.addTest(MutableObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			final WritableList delegate = new WritableList(realm);
-			for (int i = 0; i < elementCount; i++)
-				delegate.add(createElement(delegate));
-			return new BeanObservableListDecorator(delegate, null, null);
-		}
-
-		private int counter;
-
-		public Object createElement(IObservableCollection collection) {
-			return Integer.toString(counter++);
-		}
-
-		public void change(IObservable observable) {
-			IObservableList list = (IObservableList) observable;
-			list.add(createElement(list));
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableSetDecoratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableSetDecoratorTest.java
deleted file mode 100644
index 1c30be0..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableSetDecoratorTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.beans.BeanObservableSetDecorator;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableSet;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 3.3
- */
-public class BeanObservableSetDecoratorTest extends TestCase {
-	private PropertyDescriptor propertyDescriptor;
-	private JavaBeanObservableSet observableSet;
-	private BeanObservableSetDecorator decorator;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		Bean bean = new Bean();
-		propertyDescriptor = new PropertyDescriptor("set",
-				Bean.class);
-		observableSet = new JavaBeanObservableSet(
-				SWTObservables.getRealm(Display.getDefault()), bean,
-				propertyDescriptor, String.class);
-		decorator = new BeanObservableSetDecorator(
-				observableSet, observableSet, propertyDescriptor);
-	}
-
-	public void testGetDelegate() throws Exception {
-		assertEquals(observableSet, decorator.getDelegate());
-	}
-
-	public void testGetObserved() throws Exception {
-		assertEquals(observableSet, decorator.getObserved());
-	}
-
-	public void testGetPropertyDescriptor() throws Exception {
-		assertEquals(propertyDescriptor, decorator.getPropertyDescriptor());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableValueDecoratorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableValueDecoratorTest.java
deleted file mode 100644
index 476654c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/BeanObservableValueDecoratorTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.beans.BeanObservableValueDecorator;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 3.3
- */
-public class BeanObservableValueDecoratorTest extends AbstractDefaultRealmTestCase {
-	private Bean bean;
-	private JavaBeanObservableValue observableValue;
-	private BeanObservableValueDecorator decorator;
-	private PropertyDescriptor propertyDescriptor;
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		bean = new Bean();
-		propertyDescriptor = new PropertyDescriptor("value",
-				Bean.class);
-		observableValue = new JavaBeanObservableValue(
-				SWTObservables.getRealm(Display.getDefault()), bean,
-				propertyDescriptor);
-		decorator = new BeanObservableValueDecorator(
-				observableValue, new WritableValue(bean, Object.class), observableValue
-						.getPropertyDescriptor());
-	}
-
-	public void testGetDelegate() throws Exception {
-		assertEquals(observableValue, decorator.getDelegate());
-	}
-	
-	public void testGetObserved() throws Exception {
-		assertEquals(bean, decorator.getObserved());
-	}
-
-	public void testGetPropertyDescriptor() throws Exception {
-		assertEquals(propertyDescriptor, decorator.getPropertyDescriptor());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableArrayBasedListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableArrayBasedListTest.java
deleted file mode 100644
index ae1a97c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableArrayBasedListTest.java
+++ /dev/null
@@ -1,536 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.IntrospectionException;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableList;
-import org.eclipse.jface.databinding.conformance.MutableObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ListChangeEventTracker;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 1.1
- */
-public class JavaBeanObservableArrayBasedListTest extends
-		AbstractDefaultRealmTestCase {
-	private JavaBeanObservableList list;
-
-	private PropertyDescriptor propertyDescriptor;
-
-	private Bean bean;
-
-	private String propertyName;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		propertyName = "array";
-		propertyDescriptor = new PropertyDescriptor(propertyName, Bean.class);
-		bean = new Bean(new Object[0]);
-
-		list = new JavaBeanObservableList(SWTObservables.getRealm(Display
-				.getDefault()), bean, propertyDescriptor, Bean.class);
-	}
-
-	public void testGetObserved() throws Exception {
-		assertSame(bean, list.getObserved());
-	}
-
-	public void testGetPropertyDescriptor() throws Exception {
-		assertSame(propertyDescriptor, list.getPropertyDescriptor());
-	}
-
-	public void testRegistersListenerAfterFirstListenerIsAdded()
-			throws Exception {
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-		list.addListChangeListener(new ListChangeEventTracker());
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-	}
-
-	public void testRemovesListenerAfterLastListenerIsRemoved()
-			throws Exception {
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-		list.removeListChangeListener(listener);
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-	}
-
-	public void testFiresListChangeEvents() throws Exception {
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		bean.setArray(new Bean[] { new Bean() });
-		assertEquals(1, listener.count);
-	}
-
-	public void testAddAddsElement() throws Exception {
-		int count = list.size();
-		String element = "1";
-
-		assertEquals(0, count);
-		list.add(element);
-		assertEquals(count + 1, list.size());
-		assertEquals(element, bean.getArray()[count]);
-	}
-
-	public void testAddListChangeEvent() throws Exception {
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		String element = "1";
-
-		list.add(element);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], true, 0, element);
-	}
-
-	public void testAdd_FiresPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.add("0");
-			}
-		});
-	}
-
-	public void testAddWithIndex() throws Exception {
-		String element = "1";
-		assertEquals(0, list.size());
-
-		list.add(0, element);
-		assertEquals(element, bean.getArray()[0]);
-	}
-
-	public void testAddAtIndexListChangeEvent() throws Exception {
-		String element = "1";
-		assertEquals(0, list.size());
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		list.add(0, element);
-
-		ListChangeEvent event = listener.event;
-		assertEntry(event.diff.getDifferences()[0], true, 0, element);
-	}
-
-	public void testAddAtIndexPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.add(0, "0");
-			}
-		});
-	}
-
-	public void testRemove() throws Exception {
-		String element = "1";
-		list.add(element);
-
-		assertEquals(1, bean.getArray().length);
-		list.remove(element);
-		assertEquals(0, bean.getArray().length);
-	}
-
-	public void testRemoveListChangeEvent() throws Exception {
-		String element = "1";
-		list.add(element);
-
-		assertEquals(1, list.size());
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		list.remove(element);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 0, element);
-	}
-
-	public void testRemovePropertyChangeEvent() throws Exception {
-		list.add("0");
-
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.remove("0");
-			}
-		});
-	}
-
-	public void testRemoveAtIndex() throws Exception {
-		String element = "1";
-		list.add(element);
-
-		assertEquals(element, bean.getArray()[0]);
-
-		list.remove(0);
-		assertEquals(0, bean.getArray().length);
-	}
-
-	public void testRemoveAtIndexListChangeEvent() throws Exception {
-		String element = "1";
-		list.add(element);
-
-		assertEquals(1, list.size());
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		list.remove(0);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 0, element);
-	}
-
-	public void testRemoveAtIndexPropertyChangeEvent() throws Exception {
-		list.add("0");
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.remove(0);
-			}
-		});
-	}
-
-	public void testAddAll() throws Exception {
-		Collection elements = Arrays.asList(new String[] { "1", "2" });
-		assertEquals(0, list.size());
-
-		list.addAll(elements);
-
-		assertEquals(2, bean.getArray().length);
-	}
-
-	public void testAddAllListChangEvent() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		assertEquals(0, list.size());
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-		assertEquals(0, listener.count);
-
-		list.addAll(elements);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-
-		assertEntry(event.diff.getDifferences()[0], true, 0, elements.get(0));
-		assertEntry(event.diff.getDifferences()[1], true, 1, elements.get(1));
-	}
-
-	public void testAddAllPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.addAll(Arrays.asList(new String[] { "0", "1" }));
-			}
-		});
-	}
-
-	public void testAddAllAtIndex() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		list.addAll(elements);
-
-		assertEquals(2, list.size());
-
-		list.addAll(2, elements);
-
-		assertEquals(4, bean.getArray().length);
-		assertEquals(elements.get(0), bean.getArray()[0]);
-		assertEquals(elements.get(1), bean.getArray()[1]);
-	}
-
-	public void testAddAllAtIndexListChangeEvent() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		list.addAll(elements);
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-
-		list.addAll(2, elements);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], true, 2, elements.get(0));
-		assertEntry(event.diff.getDifferences()[1], true, 3, elements.get(1));
-	}
-
-	public void testAddAllAtIndexPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.addAll(0, Arrays.asList(new String[] { "1", "2" }));
-			}
-		});
-	}
-
-	public void testRemoveAll() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		list.addAll(elements);
-		list.addAll(elements);
-
-		assertEquals(4, bean.getArray().length);
-		list.removeAll(elements);
-
-		assertEquals(2, bean.getArray().length);
-		assertEquals(elements.get(0), bean.getArray()[0]);
-		assertEquals(elements.get(1), bean.getArray()[1]);
-	}
-
-	public void testRemoveAllListChangeEvent() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		list.addAll(elements);
-		list.addAll(elements);
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		list.removeAll(elements);
-
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 0, elements.get(0));
-		assertEntry(event.diff.getDifferences()[1], false, 0, elements.get(1));
-	}
-
-	public void testRemoveAllPropertyChangeEvent() throws Exception {
-		list.add("0");
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.removeAll(Arrays.asList(new String[] { "0" }));
-			}
-		});
-	}
-
-	public void testRetailAll() throws Exception {
-		List elements = Arrays.asList(new String[] { "0", "1", "2", "3" });
-		list.addAll(elements);
-
-		assertEquals(4, bean.getArray().length);
-
-		list.retainAll(elements.subList(0, 2));
-		assertEquals(2, bean.getArray().length);
-
-		assertEquals(elements.get(0), bean.getArray()[0]);
-		assertEquals(elements.get(1), bean.getArray()[1]);
-	}
-
-	public void testRetainAllListChangeEvent() throws Exception {
-		List elements = Arrays.asList(new String[] { "0", "1", "2", "3" });
-		list.addAll(elements);
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		list.retainAll(elements.subList(0, 2));
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 2, elements.get(2));
-		assertEntry(event.diff.getDifferences()[1], false, 2, elements.get(3));
-	}
-
-	public void testRetainAllPropertyChangeEvent() throws Exception {
-		list.addAll(Arrays.asList(new String[] { "0", "1" }));
-
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.retainAll(Arrays.asList(new String[] { "0" }));
-			}
-		});
-	}
-
-	public void testSet() throws Exception {
-		String oldElement = "old";
-		String newElement = "new";
-		list.add(oldElement);
-
-		assertEquals(oldElement, bean.getArray()[0]);
-
-		list.set(0, newElement);
-		assertEquals(newElement, bean.getArray()[0]);
-	}
-
-	public void testMove() throws Exception {
-		String element0 = "element0";
-		String element1 = "element1";
-		list.add(element0);
-		list.add(element1);
-
-		assertEquals(2, bean.getArray().length);
-		assertEquals(element0, bean.getArray()[0]);
-		assertEquals(element1, bean.getArray()[1]);
-
-		list.move(0, 1);
-
-		assertEquals(2, bean.getArray().length);
-		assertEquals(element1, bean.getArray()[0]);
-		assertEquals(element0, bean.getArray()[1]);
-	}
-
-	public void testSetListChangeEvent() throws Exception {
-		String oldElement = "old";
-		String newElement = "new";
-		list.add(oldElement);
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-		assertEquals(0, listener.count);
-
-		list.set(0, newElement);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 0, oldElement);
-		assertEntry(event.diff.getDifferences()[1], true, 0, newElement);
-	}
-
-	public void testSetPropertyChangeEvent() throws Exception {
-		list.add("0");
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.set(0, "1");
-			}
-		});
-	}
-
-	public void testListChangeEventFiresWhenNewListIsSet() throws Exception {
-		Bean[] elements = new Bean[] { new Bean(), new Bean() };
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		bean.setArray(elements);
-		assertEquals(1, listener.count);
-	}
-
-	private static void assertEntry(ListDiffEntry entry, boolean addition,
-			int position, Object element) {
-		assertEquals("addition", addition, entry.isAddition());
-		assertEquals("position", position, entry.getPosition());
-		assertEquals("element", element, entry.getElement());
-	}
-
-	private static void assertPropertyChangeEvent(Bean bean, Runnable runnable) {
-		PropertyChangeTracker listener = new PropertyChangeTracker();
-		bean.addPropertyChangeListener(listener);
-
-		Object[] old = bean.getArray();
-		assertEquals(0, listener.count);
-
-		runnable.run();
-
-		PropertyChangeEvent event = listener.evt;
-		assertEquals("event did not fire", 1, listener.count);
-		assertEquals("array", event.getPropertyName());
-		assertTrue("old value", Arrays.equals(old, (Object[]) event.getOldValue()));
-		assertTrue("new value", Arrays.equals(bean.getArray(), (Object[]) event.getNewValue()));
-		assertFalse("lists are equal", Arrays.equals(bean.getArray(), old));
-	}
-
-	private static class PropertyChangeTracker implements
-			PropertyChangeListener {
-		int count;
-
-		PropertyChangeEvent evt;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent evt) {
-			count++;
-			this.evt = evt;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JavaBeanObservableArrayBasedListTest.class.getName());
-		suite.addTestSuite(JavaBeanObservableArrayBasedListTest.class);
-		suite.addTest(MutableObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			String propertyName = "array";
-			PropertyDescriptor propertyDescriptor;
-			try {
-				propertyDescriptor = new PropertyDescriptor(propertyName,
-						Bean.class);
-			} catch (IntrospectionException e) {
-				throw new RuntimeException(e);
-			}
-			Object bean = new Bean(new Object[0]);
-
-			IObservableList list = new JavaBeanObservableList(realm, bean,
-					propertyDescriptor, String.class);
-			for (int i = 0; i < elementCount; i++)
-				list.add(createElement(list));
-			return list;
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			IObservableList list = (IObservableList) observable;
-			list.add(createElement(list));
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableArrayBasedSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableArrayBasedSetTest.java
deleted file mode 100644
index a2d58a0..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableArrayBasedSetTest.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 221351)
- *     Brad Reynolds - through JavaBeanObservableArrayBasedListTest.java
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.IntrospectionException;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableSet;
-import org.eclipse.jface.databinding.conformance.MutableObservableSetContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.SetChangeEventTracker;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 1.1
- */
-public class JavaBeanObservableArrayBasedSetTest extends
-		AbstractDefaultRealmTestCase {
-	private JavaBeanObservableSet set;
-
-	private PropertyDescriptor propertyDescriptor;
-
-	private Bean bean;
-
-	private String propertyName;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		propertyName = "array";
-		propertyDescriptor = new PropertyDescriptor(propertyName, Bean.class);
-		bean = new Bean(new HashSet());
-
-		set = new JavaBeanObservableSet(SWTObservables.getRealm(Display
-				.getDefault()), bean, propertyDescriptor, String.class);
-	}
-
-	public void testGetObserved() throws Exception {
-		assertEquals(bean, set.getObserved());
-	}
-
-	public void testGetPropertyDescriptor() throws Exception {
-		assertEquals(propertyDescriptor, set.getPropertyDescriptor());
-	}
-
-	public void testRegistersListenerAfterFirstListenerIsAdded()
-			throws Exception {
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-		SetChangeEventTracker.observe(set);
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-	}
-
-	public void testRemovesListenerAfterLastListenerIsRemoved()
-			throws Exception {
-		SetChangeEventTracker listener = SetChangeEventTracker.observe(set);
-
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-		set.removeSetChangeListener(listener);
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-	}
-
-	public void testSetBeanProperty_FiresSetChangeEvents() throws Exception {
-		SetChangeEventTracker listener = SetChangeEventTracker.observe(set);
-
-		assertEquals(0, listener.count);
-		bean.setArray(new String[] { "element" });
-		assertEquals(1, listener.count);
-	}
-
-	public void testAdd_AddsElement() throws Exception {
-		assertEquals(0, set.size());
-
-		String element = "1";
-		set.add(element);
-
-		assertEquals(1, set.size());
-		assertEquals(element, bean.getArray()[0]);
-	}
-
-	public void testAdd_SetChangeEvent() throws Exception {
-		SetChangeEventTracker listener = SetChangeEventTracker.observe(set);
-		assertEquals(0, listener.count);
-
-		String element = "1";
-		set.add(element);
-
-		assertEquals(1, listener.count);
-		SetChangeEvent event = listener.event;
-
-		assertSame(set, event.getObservableSet());
-		assertEquals(Collections.singleton(element), event.diff.getAdditions());
-		assertEquals(Collections.EMPTY_SET, event.diff.getRemovals());
-	}
-
-	public void testAdd_FiresPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				set.add("0");
-			}
-		});
-	}
-
-	public void testRemove() throws Exception {
-		String element = "1";
-		set.add(element);
-
-		assertEquals(1, bean.getArray().length);
-		set.remove(element);
-		assertEquals(0, bean.getArray().length);
-	}
-
-	public void testRemoveListChangeEvent() throws Exception {
-		String element = "1";
-		set.add(element);
-		assertEquals(1, set.size());
-
-		SetChangeEventTracker listener = SetChangeEventTracker.observe(set);
-		assertEquals(0, listener.count);
-
-		set.remove(element);
-
-		assertEquals(1, listener.count);
-		SetChangeEvent event = listener.event;
-		assertEquals(set, event.getObservableSet());
-		assertEquals(Collections.singleton(element), event.diff.getRemovals());
-		assertEquals(Collections.EMPTY_SET, event.diff.getAdditions());
-	}
-
-	public void testRemovePropertyChangeEvent() throws Exception {
-		set.add("0");
-
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				set.remove("0");
-			}
-		});
-	}
-
-	public void testAddAll() throws Exception {
-		Collection elements = Arrays.asList(new String[] { "1", "2" });
-		assertEquals(0, set.size());
-
-		set.addAll(elements);
-
-		assertEquals(2, bean.getArray().length);
-	}
-
-	public void testAddAllListChangEvent() throws Exception {
-		Collection elements = Arrays.asList(new String[] { "1", "2" });
-		assertEquals(0, set.size());
-
-		SetChangeEventTracker listener = SetChangeEventTracker.observe(set);
-		assertEquals(0, listener.count);
-
-		set.addAll(elements);
-
-		assertEquals(1, listener.count);
-		SetChangeEvent event = listener.event;
-		assertEquals(set, event.getObservableSet());
-
-		assertEquals(new HashSet(elements), event.diff.getAdditions());
-		assertEquals(Collections.EMPTY_SET, event.diff.getRemovals());
-	}
-
-	public void testAddAllPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				set.addAll(Arrays.asList(new String[] { "0", "1" }));
-			}
-		});
-	}
-
-	public void testRemoveAll() throws Exception {
-		Collection elements = Arrays.asList(new String[] { "1", "2" });
-		set.addAll(elements);
-
-		assertEquals(2, bean.getArray().length);
-		set.removeAll(elements);
-
-		assertEquals(0, bean.getArray().length);
-	}
-
-	public void testRemoveAllListChangeEvent() throws Exception {
-		Collection elements = Arrays.asList(new String[] { "1", "2" });
-		set.addAll(elements);
-
-		SetChangeEventTracker listener = SetChangeEventTracker.observe(set);
-		assertEquals(0, listener.count);
-
-		set.removeAll(elements);
-
-		SetChangeEvent event = listener.event;
-		assertEquals(set, event.getObservableSet());
-		assertEquals(Collections.EMPTY_SET, event.diff.getAdditions());
-		assertEquals(new HashSet(elements), event.diff.getRemovals());
-	}
-
-	public void testRemoveAllPropertyChangeEvent() throws Exception {
-		set.add("0");
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				set.removeAll(Arrays.asList(new String[] { "0" }));
-			}
-		});
-	}
-
-	public void testRetailAll() throws Exception {
-		set.addAll(Arrays.asList(new String[] { "0", "1", "2", "3" }));
-
-		assertEquals(4, bean.getArray().length);
-
-		set.retainAll(Arrays.asList(new String[] { "0", "1" }));
-		assertEquals(2, bean.getArray().length);
-
-		assertTrue(set.containsAll(Arrays.asList(new String[] { "1", "0" })));
-	}
-
-	public void testRetainAllListChangeEvent() throws Exception {
-		set.addAll(Arrays.asList(new String[] { "0", "1", "2", "3" }));
-
-		SetChangeEventTracker listener = SetChangeEventTracker.observe(set);
-
-		assertEquals(0, listener.count);
-		set.retainAll(Arrays.asList(new String[] { "0", "1" }));
-
-		assertEquals(1, listener.count);
-		SetChangeEvent event = listener.event;
-		assertEquals(set, event.getObservableSet());
-		assertEquals(Collections.EMPTY_SET, event.diff.getAdditions());
-		assertEquals(new HashSet(Arrays.asList(new String[] { "2", "3" })),
-				event.diff.getRemovals());
-	}
-
-	public void testRetainAllPropertyChangeEvent() throws Exception {
-		set.addAll(Arrays.asList(new String[] { "0", "1" }));
-
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				set.retainAll(Arrays.asList(new String[] { "0" }));
-			}
-		});
-	}
-
-	public void testListChangeEventFiresWhenNewListIsSet() throws Exception {
-		Bean[] elements = new Bean[] { new Bean(), new Bean() };
-
-		SetChangeEventTracker listener = SetChangeEventTracker.observe(set);
-
-		assertEquals(0, listener.count);
-		bean.setArray(elements);
-		assertEquals(1, listener.count);
-	}
-
-	private static void assertPropertyChangeEvent(Bean bean, Runnable runnable) {
-		PropertyChangeTracker listener = new PropertyChangeTracker();
-		bean.addPropertyChangeListener(listener);
-
-		Object[] old = bean.getArray();
-		assertEquals(0, listener.count);
-
-		runnable.run();
-
-		PropertyChangeEvent event = listener.evt;
-		assertEquals("event did not fire", 1, listener.count);
-		assertEquals("array", event.getPropertyName());
-		assertTrue("old value", Arrays.equals(old, (Object[]) event
-				.getOldValue()));
-		assertTrue("new value", Arrays.equals(bean.getArray(), (Object[]) event.getNewValue()));
-		assertFalse("lists are equal", Arrays.equals(bean.getArray(), old));
-	}
-
-	private static class PropertyChangeTracker implements
-			PropertyChangeListener {
-		int count;
-
-		PropertyChangeEvent evt;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent evt) {
-			count++;
-			this.evt = evt;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JavaBeanObservableArrayBasedSetTest.class.getName());
-		suite.addTestSuite(JavaBeanObservableArrayBasedSetTest.class);
-		suite.addTest(MutableObservableSetContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			String propertyName = "array";
-			PropertyDescriptor propertyDescriptor;
-			try {
-				propertyDescriptor = new PropertyDescriptor(propertyName,
-						Bean.class);
-			} catch (IntrospectionException e) {
-				throw new RuntimeException(e);
-			}
-			Object bean = new Bean(new Object[0]);
-
-			IObservableSet list = new JavaBeanObservableSet(realm, bean,
-					propertyDescriptor, String.class);
-			for (int i = 0; i < elementCount; i++)
-				list.add(createElement(list));
-			return list;
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object().toString();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			IObservableSet list = (IObservableSet) observable;
-			list.add(createElement(list));
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableListTest.java
deleted file mode 100644
index 803038f..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableListTest.java
+++ /dev/null
@@ -1,558 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.IntrospectionException;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableList;
-import org.eclipse.jface.databinding.conformance.MutableObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.ListChangeEventTracker;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 1.1
- */
-public class JavaBeanObservableListTest extends AbstractDefaultRealmTestCase {
-	private JavaBeanObservableList list;
-
-	private PropertyDescriptor propertyDescriptor;
-
-	private Bean bean;
-
-	private String propertyName;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		propertyName = "list";
-		propertyDescriptor = new PropertyDescriptor(propertyName, Bean.class);
-		bean = new Bean(new ArrayList());
-
-		list = new JavaBeanObservableList(SWTObservables.getRealm(Display
-				.getDefault()), bean, propertyDescriptor, String.class);
-	}
-
-	public void testGetObserved() throws Exception {
-		assertEquals(bean, list.getObserved());
-	}
-
-	public void testGetPropertyDescriptor() throws Exception {
-		assertEquals(propertyDescriptor, list.getPropertyDescriptor());
-	}
-
-	public void testRegistersListenerAfterFirstListenerIsAdded()
-			throws Exception {
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-		list.addListChangeListener(new ListChangeEventTracker());
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-	}
-
-	public void testRemovesListenerAfterLastListenerIsRemoved()
-			throws Exception {
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-		list.removeListChangeListener(listener);
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-	}
-
-	public void testFiresListChangeEvents() throws Exception {
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		bean.setList(Arrays.asList(new String[] { "value" }));
-		assertEquals(1, listener.count);
-	}
-
-	public void testAddAddsElement() throws Exception {
-		int count = list.size();
-		String element = "1";
-
-		assertEquals(0, count);
-		list.add(element);
-		assertEquals(count + 1, list.size());
-		assertEquals(element, bean.getList().get(count));
-	}
-
-	public void testAddListChangeEvent() throws Exception {
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		String element = "1";
-
-		list.add(element);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], true, 0, element);
-	}
-
-	public void testAddFiresPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.add("0");
-			}			
-		});
-	}
-
-	public void testAddAtIndex() throws Exception {
-		String element = "1";
-		assertEquals(0, list.size());
-
-		list.add(0, element);
-		assertEquals(element, bean.getList().get(0));
-	}
-
-	public void testAddAtIndexListChangeEvent() throws Exception {
-		String element = "1";
-		assertEquals(0, list.size());
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		list.add(0, element);
-
-		ListChangeEvent event = listener.event;
-		assertEntry(event.diff.getDifferences()[0], true, 0, element);
-	}
-	
-	public void testAddAtIndexPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.add(0, "0");
-			}			
-		});
-	}
-
-	public void testRemove() throws Exception {
-		String element = "1";
-		list.add(element);
-
-		assertEquals(1, bean.getList().size());
-		list.remove(element);
-		assertEquals(0, bean.getList().size());
-	}
-
-	public void testRemoveListChangeEvent() throws Exception {
-		String element = "1";
-		list.add(element);
-
-		assertEquals(1, list.size());
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		list.remove(element);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 0, element);
-	}
-	
-	public void testRemovePropertyChangeEvent() throws Exception {
-		list.add("0");
-		
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.remove("0");
-			}			
-		});
-	}
-
-	public void testRemoveAtIndex() throws Exception {
-		String element = "1";
-		list.add(element);
-
-		assertEquals(element, bean.getList().get(0));
-
-		list.remove(0);
-		assertEquals(0, bean.getList().size());
-	}
-
-	public void testRemoveAtIndexListChangeEvent() throws Exception {
-		String element = "1";
-		list.add(element);
-
-		assertEquals(1, list.size());
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		list.remove(0);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 0, element);
-	}
-	
-	public void testRemoveAtIndexPropertyChangeEvent() throws Exception {
-		list.add("0");
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.remove(0);
-			}			
-		});
-	}
-
-	public void testAddAll() throws Exception {
-		Collection elements = Arrays.asList(new String[] { "1", "2" });
-		assertEquals(0, list.size());
-
-		list.addAll(elements);
-
-		assertEquals(2, bean.getList().size());
-	}
-
-	public void testAddAllListChangEvent() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		assertEquals(0, list.size());
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-		assertEquals(0, listener.count);
-
-		list.addAll(elements);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-
-		assertEntry(event.diff.getDifferences()[0], true, 0, elements.get(0));
-		assertEntry(event.diff.getDifferences()[1], true, 1, elements.get(1));
-	}
-	
-	public void testAddAllPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.addAll(Arrays.asList(new String[] {"0", "1"}));
-			}			
-		});
-	}
-
-	public void testAddAllAtIndex() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		list.addAll(elements);
-
-		assertEquals(2, list.size());
-
-		list.addAll(2, elements);
-
-		assertEquals(4, bean.getList().size());
-		assertEquals(elements.get(0), bean.getList().get(0));
-		assertEquals(elements.get(1), bean.getList().get(1));
-	}
-
-	public void testAddAllAtIndexListChangeEvent() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		list.addAll(elements);
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-
-		list.addAll(2, elements);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], true, 2, elements.get(0));
-		assertEntry(event.diff.getDifferences()[1], true, 3, elements.get(1));
-	}
-	
-	public void testAddAllAtIndexPropertyChangeEvent() throws Exception {
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.addAll(0, Arrays.asList(new String[] {"1", "2"}));
-			}			
-		});
-	}
-
-	public void testRemoveAll() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		list.addAll(elements);
-		list.addAll(elements);
-
-		assertEquals(4, bean.getList().size());
-		list.removeAll(elements);
-
-		assertEquals(2, bean.getList().size());
-		assertEquals(elements.get(0), bean.getList().get(0));
-		assertEquals(elements.get(1), bean.getList().get(1));
-	}
-
-	public void testRemoveAllListChangeEvent() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-		list.addAll(elements);
-		list.addAll(elements);
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		list.removeAll(elements);
-
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 0, elements.get(0));
-		assertEntry(event.diff.getDifferences()[1], false, 0, elements.get(1));
-	}
-	
-	public void testRemoveAllPropertyChangeEvent() throws Exception {
-		list.add("0");
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.removeAll(Arrays.asList(new String[] {"0"}));
-			}			
-		});
-	}
-
-	public void testRetailAll() throws Exception {
-		List elements = Arrays.asList(new String[] { "0", "1", "2", "3" });
-		list.addAll(elements);
-
-		assertEquals(4, bean.getList().size());
-
-		list.retainAll(elements.subList(0, 2));
-		assertEquals(2, bean.getList().size());
-
-		assertEquals(elements.get(0), bean.getList().get(0));
-		assertEquals(elements.get(1), bean.getList().get(1));
-	}
-
-	public void testRetainAllListChangeEvent() throws Exception {
-		List elements = Arrays.asList(new String[] { "0", "1", "2", "3" });
-		list.addAll(elements);
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		list.retainAll(elements.subList(0, 2));
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 2, elements.get(2));
-		assertEntry(event.diff.getDifferences()[1], false, 2, elements.get(3));
-	}
-	
-	public void testRetainAllPropertyChangeEvent() throws Exception {
-		list.addAll(Arrays.asList(new String[] {"0", "1"}));
-		
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.retainAll(Arrays.asList(new String[] {"0"}));
-			}			
-		});
-	}
-
-	public void testSet() throws Exception {
-		String oldElement = "old";
-		String newElement = "new";
-		list.add(oldElement);
-
-		assertEquals(oldElement, bean.getList().get(0));
-
-		list.set(0, newElement);
-		assertEquals(newElement, bean.getList().get(0));
-	}
-
-	public void testMove() throws Exception {
-		String element0 = "element0";
-		String element1 = "element1";
-		list.add(element0);
-		list.add(element1);
-
-		assertEquals(2, bean.getList().size());
-		assertEquals(element0, bean.getList().get(0));
-		assertEquals(element1, bean.getList().get(1));
-
-		list.move(0, 1);
-
-		assertEquals(2, bean.getList().size());
-		assertEquals(element1, bean.getList().get(0));
-		assertEquals(element0, bean.getList().get(1));
-	}
-
-	public void testSetListChangeEvent() throws Exception {
-		String oldElement = "old";
-		String newElement = "new";
-		list.add(oldElement);
-
-		ListChangeEventTracker listener = ListChangeEventTracker.observe(list);
-		assertEquals(0, listener.count);
-
-		list.set(0, newElement);
-
-		assertEquals(1, listener.count);
-		ListChangeEvent event = listener.event;
-		assertEquals(list, event.getObservableList());
-		assertEntry(event.diff.getDifferences()[0], false, 0, oldElement);
-		assertEntry(event.diff.getDifferences()[1], true, 0, newElement);
-	}
-
-	public void testSetPropertyChangeEvent() throws Exception {
-		list.add("0");
-		assertPropertyChangeEvent(bean, new Runnable() {
-			public void run() {
-				list.set(0, "1");
-			}			
-		});
-	}
-
-	public void testListChangeEventFiresWhenNewListIsSet() throws Exception {
-		List elements = Arrays.asList(new String[] { "1", "2" });
-
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		list.addListChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		bean.setList(elements);
-		assertEquals(1, listener.count);
-	}
-
-	public void testConstructor_RegistersListener() throws Exception {
-		Bean bean = new Bean();
-		JavaBeanObservableList observable = new JavaBeanObservableList(Realm
-				.getDefault(), bean,
-				new PropertyDescriptor("list", Bean.class), Bean.class);
-
-		assertFalse(bean.hasListeners("list"));
-		ChangeEventTracker.observe(observable);
-		assertTrue(bean.hasListeners("list"));
-	}
-
-	public void testConstructor_SkipsRegisterListener() throws Exception {
-		Bean bean = new Bean();
-		JavaBeanObservableList observable = new JavaBeanObservableList(Realm
-				.getDefault(), bean,
-				new PropertyDescriptor("list", Bean.class), Bean.class, false);
-
-		assertFalse(bean.hasListeners("list"));
-		ChangeEventTracker.observe(observable);
-		assertFalse(bean.hasListeners("list"));
-	}
-
-	private static void assertEntry(ListDiffEntry entry, boolean addition,
-			int position, Object element) {
-		assertEquals("addition", addition, entry.isAddition());
-		assertEquals("position", position, entry.getPosition());
-		assertEquals("element", element, entry.getElement());
-	}
-
-	private static void assertPropertyChangeEvent(Bean bean, Runnable runnable) {
-		PropertyChangeTracker listener = new PropertyChangeTracker();
-		bean.addPropertyChangeListener(listener);
-		
-		List old = bean.getList();
-		assertEquals(0, listener.count);
-		
-		runnable.run();
-		
-		PropertyChangeEvent event = listener.evt;
-		assertEquals("event did not fire", 1, listener.count);
-		assertEquals("list", event.getPropertyName());
-		assertEquals("old value", old, event.getOldValue());
-		assertEquals("new value", bean.getList(), event.getNewValue());
-		assertFalse("lists are equal", bean.getList().equals(old));
-	}
-	
-	private static class PropertyChangeTracker implements
-			PropertyChangeListener {
-		int count;
-
-		PropertyChangeEvent evt;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent evt) {
-			count++;
-			this.evt = evt;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JavaBeanObservableListTest.class.getName());
-		suite.addTestSuite(JavaBeanObservableListTest.class);
-		suite.addTest(MutableObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			String propertyName = "list";
-			PropertyDescriptor propertyDescriptor;
-			try {
-				propertyDescriptor = new PropertyDescriptor(propertyName,
-						Bean.class);
-			} catch (IntrospectionException e) {
-				throw new RuntimeException(e);
-			}
-			Object bean = new Bean(new ArrayList());
-
-			IObservableList list = new JavaBeanObservableList(realm, bean,
-					propertyDescriptor, String.class);
-			for (int i = 0; i < elementCount; i++)
-				list.add(createElement(list));
-			return list;
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object().toString();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			IObservableList list = (IObservableList) observable;
-			list.add(createElement(list));
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableMapTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableMapTest.java
deleted file mode 100644
index 833e506..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableMapTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.util.HashSet;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableMap;
-import org.eclipse.core.tests.databinding.observable.ThreadRealm;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-
-/**
- * @since 3.2
- * 
- */
-public class JavaBeanObservableMapTest extends TestCase {
-	private Bean model1;
-
-	private Bean model2;
-
-	private WritableSet set;
-
-	private PropertyDescriptor propertyDescriptor;
-
-	private JavaBeanObservableMap map;
-
-	protected void setUp() throws Exception {
-		ThreadRealm realm = new ThreadRealm();
-		realm.init(Thread.currentThread());
-		model1 = new Bean("1");
-		model2 = new Bean("2");
-
-		set = new WritableSet(realm, new HashSet(), Bean.class);
-		set.add(model1);
-		set.add(model2);
-
-		propertyDescriptor = new PropertyDescriptor("value", Bean.class);
-		map = new JavaBeanObservableMap(set, propertyDescriptor);
-	}
-
-	public void testGetValue() throws Exception {
-		assertEquals(
-				"The 'value' from the map should be the value of the property of the model.",
-				model1.getValue(), map.get(model1));
-	}
-
-	public void testSetValueNotifications() throws Exception {
-		String oldValue = model1.getValue();
-		String newValue = model1.getValue() + model1.getValue();
-		MapChangeListener listener = new MapChangeListener();
-
-		map.addMapChangeListener(listener);
-		assertEquals(0, listener.count);
-		model1.setValue(newValue);
-		assertEquals(1, listener.count);
-		assertTrue(listener.diff.getChangedKeys().contains(model1));
-		assertEquals(newValue, listener.diff.getNewValue(model1));
-		assertEquals(oldValue, listener.diff.getOldValue(model1));
-		assertFalse(listener.diff.getAddedKeys().contains(model1));
-		assertFalse(listener.diff.getRemovedKeys().contains(model1));
-	}
-
-	public void testPutValue() throws Exception {
-		String oldValue = model1.getValue();
-		String newValue = model1.getValue() + model1.getValue();
-		MapChangeListener listener = new MapChangeListener();
-		map.addMapChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		map.put(model1, newValue);
-		assertEquals(1, listener.count);
-		assertEquals(newValue, model1.getValue());
-		assertEquals(oldValue, listener.diff.getOldValue(model1));
-		assertEquals(newValue, listener.diff.getNewValue(model1));
-		assertFalse(listener.diff.getAddedKeys().contains(model1));
-		assertTrue(listener.diff.getChangedKeys().contains(model1));
-		assertFalse(listener.diff.getRemovedKeys().contains(model1));
-	}
-
-	public void testAddKey() throws Exception {
-		MapChangeListener listener = new MapChangeListener();
-		map.addMapChangeListener(listener);
-
-		Bean model3 = new Bean("3");
-
-		assertEquals(0, listener.count);
-		set.add(model3);
-		assertEquals(1, listener.count);
-		assertTrue(listener.diff.getAddedKeys().contains(model3));
-		assertEquals(model3.getValue(), map.get(model3));
-
-		String newValue = model3.getValue() + model3.getValue();
-		model3.setValue(newValue);
-		assertEquals(2, listener.count);
-		assertEquals(3, map.size());
-	}
-
-	public void testRemoveKey() throws Exception {
-		MapChangeListener listener = new MapChangeListener();
-		map.addMapChangeListener(listener);
-
-		assertEquals(0, listener.count);
-		set.remove(model1);
-		assertEquals(1, listener.count);
-		assertFalse(listener.diff.getAddedKeys().contains(model1));
-		assertFalse(listener.diff.getChangedKeys().contains(model1));
-		assertTrue(listener.diff.getRemovedKeys().contains(model1));
-		assertEquals(1, map.size());
-	}
-	
-	public void testGetObserved() throws Exception {
-		assertEquals(set, map.getObserved());
-	}
-	
-	public void testGetPropertyDescriptor() throws Exception {
-		assertEquals(propertyDescriptor, map.getPropertyDescriptor());
-	}
-	
-	public void testConstructor_SkipRegisterListeners() throws Exception {
-		Realm realm = new CurrentRealm(true);
-		WritableSet set = new WritableSet(realm);
-		Bean bean = new Bean();
-		set.add(bean);
-		
-		JavaBeanObservableMap observable = new JavaBeanObservableMap(set, new PropertyDescriptor("value", Bean.class), false);
-		ChangeEventTracker.observe(observable);
-
-		assertFalse(bean.hasListeners("value"));
-	}
-	
-	public void testConstructor_RegistersListeners() throws Exception {
-		Realm realm = new CurrentRealm(true);
-		WritableSet set = new WritableSet(realm);
-		Bean bean = new Bean();
-		set.add(bean);
-		
-		JavaBeanObservableMap observable = new JavaBeanObservableMap(set, new PropertyDescriptor("value", Bean.class));
-		ChangeEventTracker.observe(observable);
-
-		assertTrue(bean.hasListeners("value"));
-	}
-
-	private static class MapChangeListener implements IMapChangeListener {
-		int count;
-
-		MapDiff diff;
-
-		public void handleMapChange(MapChangeEvent event) {
-			count++;
-			this.diff = event.diff;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JavaBeanObservableMapTest.class.getName());
-		suite.addTestSuite(JavaBeanObservableMapTest.class);
-		return suite;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableSetTest.java
deleted file mode 100644
index 35e8987..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableSetTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-import java.util.Arrays;
-import java.util.HashSet;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableSet;
-import org.eclipse.jface.databinding.conformance.MutableObservableSetContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 3.3
- */
-public class JavaBeanObservableSetTest extends TestCase {
-	private JavaBeanObservableSet observableSet;
-	private Bean bean;
-	private PropertyDescriptor propertyDescriptor;
-	private String propertyName;
-	private SetChangeListener listener;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		bean = new Bean();
-		propertyName = "set";
-		propertyDescriptor = new PropertyDescriptor(propertyName, Bean.class);
-
-		observableSet = new JavaBeanObservableSet(SWTObservables
-				.getRealm(Display.getDefault()), bean, propertyDescriptor,
-				Bean.class);
-		listener = new SetChangeListener();
-	}
-
-	public void testGetObserved() throws Exception {
-		assertEquals(bean, observableSet.getObserved());
-	}
-
-	public void testGetPropertyDescriptor() throws Exception {
-		assertEquals(propertyDescriptor, observableSet.getPropertyDescriptor());
-	}
-	
-	public void testGetElementType() throws Exception {
-		assertEquals(Bean.class, observableSet.getElementType());
-	}
-	
-	public void testRegistersListenerAfterFirstListenerIsAdded() throws Exception {
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-		observableSet.addSetChangeListener(new SetChangeListener());
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-	}
-    
-    public void testRemovesListenerAfterLastListenerIsRemoved() throws Exception {
-		observableSet.addSetChangeListener(listener);
-		
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-		observableSet.removeSetChangeListener(listener);
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-	}
-	
-	public void testFiresChangeEvents() throws Exception {
-		observableSet.addSetChangeListener(listener);
-		assertEquals(0, listener.count);
-		bean.setSet(new HashSet(Arrays.asList(new String[] {"1"})));
-		assertEquals(1, listener.count);
-	}
-
-	public void testConstructor_RegisterListeners() throws Exception {
-		bean = new Bean();
-
-		observableSet = new JavaBeanObservableSet(new CurrentRealm(true), bean,
-				propertyDescriptor, Bean.class);
-		assertFalse(bean.hasListeners(propertyName));
-		ChangeEventTracker.observe(observableSet);
-		assertTrue(bean.hasListeners(propertyName));
-	}
-
-	public void testConstructor_SkipsRegisterListeners() throws Exception {
-		bean = new Bean();
-
-		observableSet = new JavaBeanObservableSet(new CurrentRealm(true), bean,
-				propertyDescriptor, Bean.class, false);
-		assertFalse(bean.hasListeners(propertyName));
-		ChangeEventTracker.observe(observableSet);
-		assertFalse(bean.hasListeners(propertyName));
-	}
-	
-	static class SetChangeListener implements ISetChangeListener {
-		int count;
-		public void handleSetChange(SetChangeEvent event) {
-			count++;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JavaBeanObservableSetTest.class.getName());
-		suite.addTestSuite(JavaBeanObservableSetTest.class);
-		suite.addTest(MutableObservableSetContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			Bean bean = new Bean();
-			String propertyName = "set";
-			PropertyDescriptor propertyDescriptor;
-			try {
-				propertyDescriptor = new PropertyDescriptor(propertyName,
-						Bean.class);
-			} catch (IntrospectionException e) {
-				throw new RuntimeException(e);
-			}
-
-			IObservableSet set = new JavaBeanObservableSet(realm,
-					bean, propertyDescriptor, String.class);
-			for (int i = 0; i < elementCount; i++)
-				set.add(createElement(set));
-			return set;
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			IObservableSet set = (IObservableSet) observable;
-			set.add(createElement(set));
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableValueTest.java
deleted file mode 100644
index 6765e7d..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableValueTest.java
+++ /dev/null
@@ -1,196 +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
- *     Brad Reynolds - bug 171616
- *     Katarzyna Marszalek - test case for bug 198519
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.beans.JavaBeanObservableValue;
-import org.eclipse.jface.databinding.conformance.MutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.examples.databinding.model.SimplePerson;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- */
-public class JavaBeanObservableValueTest extends AbstractDefaultRealmTestCase {
-	private Bean bean;
-	private JavaBeanObservableValue observableValue;
-	private PropertyDescriptor propertyDescriptor;
-	private String propertyName;
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		bean = new Bean();
-		propertyName = "value";
-		propertyDescriptor = new PropertyDescriptor(propertyName, Bean.class);
-		observableValue = new JavaBeanObservableValue(Realm.getDefault(), bean, propertyDescriptor);
-	}
-
-	public void testGetObserved() throws Exception {
-		assertEquals(bean, observableValue.getObserved());
-	}
-
-	public void testGetPropertyDescriptor() throws Exception {
-    	assertEquals(propertyDescriptor, observableValue.getPropertyDescriptor());
-	}
-
-	public void testSetValueThrowsExceptionThrownByBean() throws Exception {
-		ThrowsSetException temp = new ThrowsSetException();
-		JavaBeanObservableValue observable = new JavaBeanObservableValue(Realm
-				.getDefault(), temp,
-				new PropertyDescriptor("value", ThrowsSetException.class));
-
-		try {
-			observable.setValue("");
-			fail("exception should have been thrown");
-		} catch (RuntimeException e) {	
-			assertEquals(temp.thrownException, e.getCause());
-		}
-	}
-	
-	public void testGetValueThrowsExceptionThrownByBean() throws Exception {
-		ThrowsGetException temp = new ThrowsGetException();
-		JavaBeanObservableValue observable = new JavaBeanObservableValue(Realm
-				.getDefault(), temp,
-				new PropertyDescriptor("value", ThrowsGetException.class));
-
-		try {
-			observable.getValue();
-			fail("exception should have been thrown");
-		} catch (RuntimeException e) {	
-			assertEquals(temp.thrownException, e.getCause());
-		}
-	}
-	
-	public void testBug198519() {
-		final SimplePerson person = new SimplePerson();
-		final ComputedValue cv = new ComputedValue() {
-            final IObservableValue name = BeansObservables.observeValue(person, "name"); //$NON-NLS-1$
-            protected Object calculate() {
-                return Boolean.valueOf(name.getValue() != null);
-            }
-        };
-        cv.addChangeListener(new IChangeListener() {
-        	public void handleChange(ChangeEvent event) {
-        		cv.getValue();
-        	}
-        });
-        person.setName("foo");
-	}
-
-	public void testConstructor_RegistersListeners() throws Exception {
-		JavaBeanObservableValue observable = new JavaBeanObservableValue(Realm.getDefault(), bean, propertyDescriptor);
-		ChangeEventTracker.observe(observable);
-		
-		assertTrue(bean.hasListeners(propertyName));
-	}
-	
-	public void testConstructor_SkipRegisterListeners() throws Exception {
-		JavaBeanObservableValue observable = new JavaBeanObservableValue(Realm.getDefault(), bean, propertyDescriptor, false);
-		ChangeEventTracker.observe(observable);
-		
-		assertFalse(bean.hasListeners(propertyName));
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JavaBeanObservableValueTest.class.getName());
-		suite.addTestSuite(JavaBeanObservableValueTest.class);
-		suite.addTest(MutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */ static class Delegate extends AbstractObservableValueContractDelegate {
-		private Bean bean;
-		
-		public void setUp() {
-			super.setUp();
-			
-			bean = new Bean("");
-		}
-		
-		public IObservableValue createObservableValue(Realm realm) {
-			try {
-				PropertyDescriptor propertyDescriptor = new PropertyDescriptor("value", Bean.class);
-				return new JavaBeanObservableValue(realm, bean,
-						propertyDescriptor);					
-			} catch (IntrospectionException e) {
-				throw new RuntimeException(e);
-			}
-		}
-		
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-		
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-		
-		public Object createValue(IObservableValue observable) {
-			return observable.getValue() + "a";
-		}
-	}
-	
-	/**
-	 * Throws an exception when the value is set.
-	 * 
-	 * @since 3.2
-	 */
-	/* package */class ThrowsSetException {
-		private String value;
-
-		/* package */NullPointerException thrownException;
-
-		public void setValue(String value) {
-			throw thrownException = new NullPointerException();
-		}
-
-		public String getValue() {
-			return value;
-		}
-	}
-
-	/* package */class ThrowsGetException {
-		public String value;
-
-		/* package */NullPointerException thrownException;
-
-		public String getValue() {
-			throw thrownException = new NullPointerException();
-		}
-
-		public void setValue(String value) {
-			this.value = value;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/ListenerSupportTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/ListenerSupportTest.java
deleted file mode 100644
index b55271a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/beans/ListenerSupportTest.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.beans;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.Arrays;
-
-import org.eclipse.core.databinding.util.ILogger;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.beans.ListenerSupport;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 1.1
- */
-public class ListenerSupportTest extends AbstractDefaultRealmTestCase {
-	private PropertyChangeListenerStub listener;
-	private String propertyName;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		listener = new PropertyChangeListenerStub();
-		propertyName = "value";
-	}
-
-	public void testAddPropertyChangeListenerWithPropertyName()
-			throws Exception {
-		SpecificListenerBean bean = new SpecificListenerBean();
-
-		ListenerSupport support = new ListenerSupport(listener, propertyName);
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-		assertNull(support.getHookedTargets());
-		
-		support.hookListener(bean);
-		assertTrue("has listeners", bean.changeSupport.hasListeners(propertyName));
-		assertTrue("hooked target", Arrays.asList(support.getHookedTargets()).contains(bean));
-	}
-
-	public void testAddPropertyChangeListenerWithoutPropertyName()
-			throws Exception {
-		GenericListenerBean bean = new GenericListenerBean();
-
-		ListenerSupport support = new ListenerSupport(listener, propertyName);
-		assertFalse(bean.changeSupport.hasListeners(propertyName));
-		assertNull(support.getHookedTargets());
-		
-		support.hookListener(bean);
-		assertTrue("has listeners", bean.changeSupport.hasListeners(propertyName));
-		assertTrue("hooked target", Arrays.asList(support.getHookedTargets()).contains(bean));
-	}
-
-	public void testChangeListenerIsOnlyNotifiedWhenWatchedPropertyChanges()
-			throws Exception {
-		GenericListenerBean bean = new GenericListenerBean();
-		ListenerSupport support = new ListenerSupport(listener, propertyName);
-		support.hookListener(bean);
-
-		assertEquals(0, listener.count);
-		bean.setValue("1");
-		assertEquals(1, listener.count);
-		assertEquals("value", listener.event.getPropertyName());
-
-		bean.setOther("2");
-		assertEquals(1, listener.count);
-	}
-
-	public void testLogStatusWhenAddPropertyChangeListenerMethodIsNotFound()
-			throws Exception {
-		class BeanStub {
-		}
-
-		class Log implements ILogger {
-			int count;
-			IStatus status;
-
-			public void log(IStatus status) {
-				count++;
-				this.status = status;
-			}
-		}
-
-		Log log = new Log();
-		Policy.setLog(log);
-
-		ListenerSupport support = new ListenerSupport(listener, "value");
-		BeanStub bean = new BeanStub();
-
-		assertEquals(0, log.count);
-		support.hookListener(bean);
-		assertEquals(1, log.count);
-		assertEquals(IStatus.WARNING, log.status.getSeverity());
-	}
-
-	public void testRemovePropertyChangeListenerWithPropertyName()
-			throws Exception {
-		SpecificListenerBean bean = new SpecificListenerBean();
-		ListenerSupport support = new ListenerSupport(listener, propertyName);
-		support.hookListener(bean);
-
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-		assertTrue(Arrays.asList(support.getHookedTargets()).contains(bean));
-		
-		support.unhookListener(bean);
-		assertFalse("has listeners", bean.changeSupport.hasListeners(propertyName));
-		assertNull("unhooked target", support.getHookedTargets());
-	}
-
-	public void testRemovePropertyChangeListenerWithoutPropertyName()
-			throws Exception {
-		GenericListenerBean bean = new GenericListenerBean();
-		ListenerSupport support = new ListenerSupport(listener, propertyName);
-		support.hookListener(bean);
-
-		assertTrue(bean.changeSupport.hasListeners(propertyName));
-		assertTrue(Arrays.asList(support.getHookedTargets()).contains(bean));
-		
-		support.unhookListener(bean);
-		assertFalse("has listeners", bean.changeSupport.hasListeners(propertyName));
-		assertNull("unhooked target", support.getHookedTargets());
-	}
-
-	public void testLogStatusWhenRemovePropertyChangeListenerMethodIsNotFound()
-			throws Exception {
-		class InvalidBean {
-		}
-
-		class Log implements ILogger {
-			int count;
-			IStatus status;
-
-			public void log(IStatus status) {
-				count++;
-				this.status = status;
-			}
-		}
-
-		Log log = new Log();
-		Policy.setLog(log);
-
-		ListenerSupport support = new ListenerSupport(listener, "value");
-		InvalidBean bean = new InvalidBean();
-
-		support.hookListener(bean);
-		log.count = 0;
-		log.status = null;
-		assertEquals(0, log.count);
-		support.unhookListener(bean);
-		assertEquals(1, log.count);
-		assertEquals(IStatus.WARNING, log.status.getSeverity());
-	}
-
-	static class GenericListenerBean {
-		private String other;
-		PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
-		private String value;
-
-		public String getValue() {
-			return value;
-		}
-
-		public void setValue(String value) {
-			changeSupport.firePropertyChange("value", this.value,
-					this.value = value);
-		}
-
-		public String getOther() {
-			return other;
-		}
-
-		public void setOther(String other) {
-			changeSupport.firePropertyChange("other", this.other,
-					this.other = other);
-		}
-
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.addPropertyChangeListener(listener);
-		}
-
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			changeSupport.removePropertyChangeListener(listener);
-		}
-	}
-
-	static class SpecificListenerBean {
-		PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
-		String propertyName;
-		String value;
-
-		public void addPropertyChangeListener(String name,
-				PropertyChangeListener listener) {
-			this.propertyName = name;
-			changeSupport.addPropertyChangeListener(name, listener);
-		}
-
-		public void removePropertyChangeListener(String name,
-				PropertyChangeListener listener) {
-			changeSupport.removePropertyChangeListener(name, listener);
-		}
-
-		public String getValue() {
-			return value;
-		}
-
-		public void setValue(String value) {
-			this.value = value;
-		}
-	}
-
-	static class PropertyChangeListenerStub implements PropertyChangeListener {
-		PropertyChangeEvent event;
-		int count;
-
-		public void propertyChange(PropertyChangeEvent evt) {
-			count++;
-			this.event = evt;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/DateConversionSupportTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/DateConversionSupportTest.java
deleted file mode 100644
index 5e66de4..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/DateConversionSupportTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.internal.databinding.conversion.DateConversionSupport;
-
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.SimpleDateFormat;
-
-/**
- * @since 1.1
- */
-public class DateConversionSupportTest extends TestCase {
-	public void testDatePatternIsExternalized() throws Exception {
-		StubConverter stub = new StubConverter();
-		String key = "DateFormat_DateTime";
-		String format = BindingMessages.getString(key);
-		
-		assertFalse("format is defined", key.equals(format));
-		SimpleDateFormat dateFormat = (SimpleDateFormat) stub.getDateFormat(0);
-		assertEquals(format, dateFormat.toPattern());
-	}
-	
-	public void testTimePatternIsExternalized() throws Exception {
-		StubConverter stub = new StubConverter();
-		String key = "DateFormat_Time";
-		String format = BindingMessages.getString(key);
-		
-		assertFalse("format is defined", key.equals(format));
-		SimpleDateFormat dateFormat = (SimpleDateFormat) stub.getDateFormat(1);
-		assertEquals(format, dateFormat.toPattern());
-	}
-	
-	static class StubConverter extends DateConversionSupport {
-		protected DateFormat getDateFormat(int index) {
-			return super.getDateFormat(index);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/IdentityConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/IdentityConverterTest.java
deleted file mode 100755
index 8076183..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/IdentityConverterTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Matt Carter - bug 197679
- *******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.BindingException;
-import org.eclipse.core.internal.databinding.conversion.IdentityConverter;
-
-/**
- * @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));
-
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Character.class,
-				Character.TYPE));
-		assertTrue(c.isPrimitiveTypeMatchedWithBoxed(Character.TYPE,
-				Character.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.TYPE, Float.class);
-		assertEquals("4.2", new Float(4.2), p2b.convert(new Float(4.2)));
-	}
-
-	public void testConvert_BoxedToPrimitive() 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_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/core/tests/internal/databinding/conversion/IntegerToStringConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/IntegerToStringConverterTest.java
deleted file mode 100644
index a86de2d..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/IntegerToStringConverterTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.conversion.IntegerToStringConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class IntegerToStringConverterTest extends TestCase {
-	private NumberFormat integerFormat;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		integerFormat = NumberFormat.getIntegerInstance();
-	}
-
-	public void testFromTypeShort() throws Exception {
-		assertEquals(Short.class, IntegerToStringConverter.fromShort(false)
-				.getFromType());
-		assertEquals(Short.TYPE, IntegerToStringConverter.fromShort(true)
-				.getFromType());
-		assertEquals(Byte.class, IntegerToStringConverter.fromByte(false)
-				.getFromType());
-		assertEquals(Byte.TYPE, IntegerToStringConverter.fromByte(true)
-				.getFromType());
-	}
-
-	public void testToTypeIsStringClass() throws Exception {
-		assertEquals(String.class, IntegerToStringConverter.fromShort(false)
-				.getToType());
-	}
-
-	public void testConvertShortToString() throws Exception {
-		Short value = new Short((short) 1);
-		String expected = integerFormat.format(value);
-
-		IntegerToStringConverter converter = IntegerToStringConverter
-				.fromShort(integerFormat, false);
-		String result = (String) converter.convert(value);
-		assertEquals(expected, result);
-	}
-
-	public void testConvertByteToString() throws Exception {
-		Byte value = new Byte((byte) 1);
-		String expected = integerFormat.format(value);
-
-		IntegerToStringConverter converter = IntegerToStringConverter.fromByte(
-				integerFormat, false);
-		String result = (String) converter.convert(value);
-		assertEquals(expected, result);
-	}
-
-	public void testNullSourceConvertsToEmptyString() throws Exception {
-		IntegerToStringConverter converter = IntegerToStringConverter
-				.fromByte(false);
-		assertEquals("", converter.convert(null));
-	}
-
-	public void testIllegalArgumentExceptionIfSourceIsNotExpectedType() throws Exception {
-		IntegerToStringConverter converter = IntegerToStringConverter.fromByte(false);
-		try {
-			converter.convert(new Integer(1));
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToBigDecimalTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToBigDecimalTest.java
deleted file mode 100644
index 9cdabd9..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToBigDecimalTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import java.math.BigDecimal;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigDecimalConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToBigDecimalTest extends NumberToNumberTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return null; //does not exist
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToBoxedTypeValidator(Class fromType) {
-		return new NumberToBigDecimalConverter(NumberFormat.getInstance(), fromType);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToPrimitiveValidator(Class fromType) {
-		return null; // does not exist
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToType(boolean)
-	 */
-	protected Class doGetToType(boolean primitive) {
-		return (primitive) ? null : BigDecimal.class;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToBigIntegerConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToBigIntegerConverterTest.java
deleted file mode 100644
index 2d41a6a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToBigIntegerConverterTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import java.math.BigInteger;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToBigIntegerConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToBigIntegerConverterTest extends NumberToNumberTestHarness {
-	private NumberFormat numberFormat;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToBoxedTypeValidator(Class fromType) {
-		return new NumberToBigIntegerConverter(numberFormat, fromType);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToPrimitiveValidator(Class fromType) {
-		return null;  //no such thing
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToType(boolean)
-	 */
-	protected Class doGetToType(boolean primitive) {
-		return (primitive) ? null : BigInteger.class;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToByteConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToByteConverterTest.java
deleted file mode 100644
index 551b684..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToByteConverterTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToByteConverterTest extends NumberToNumberTestHarness {
-	private NumberFormat numberFormat;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		numberFormat = NumberFormat.getInstance();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Integer(Byte.MAX_VALUE + 1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToBoxedTypeValidator(Class fromType) {
-		return new NumberToByteConverter(numberFormat, fromType, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToPrimitiveValidator(Class fromType) {
-		return new NumberToByteConverter(numberFormat, fromType, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToType()
-	 */
-	protected Class doGetToType(boolean primitive) {
-		return (primitive) ? Byte.TYPE : Byte.class;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToDoubleConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToDoubleConverterTest.java
deleted file mode 100644
index 2a5a480..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToDoubleConverterTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import java.math.BigDecimal;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToDoubleConverterTest extends NumberToNumberTestHarness {
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new BigDecimal(Double.MAX_VALUE).add(new BigDecimal(Double.MAX_VALUE));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToBoxedTypeValidator(Class fromType) {
-		return new NumberToDoubleConverter(NumberFormat.getInstance(), fromType, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToPrimitiveValidator(Class fromType) {
-		return new NumberToDoubleConverter(NumberFormat.getInstance(), fromType, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToType(boolean)
-	 */
-	protected Class doGetToType(boolean primitive) {
-		return (primitive) ? Double.TYPE : Double.class;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToFloatConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToFloatConverterTest.java
deleted file mode 100644
index 17752f6..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToFloatConverterTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToFloatConverterTest extends NumberToNumberTestHarness {
-	private NumberFormat numberFormat;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		numberFormat = NumberFormat.getInstance();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Double(Double.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToBoxedTypeValidator(Class fromType) {
-		return new NumberToFloatConverter(numberFormat, fromType, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToPrimitiveValidator(Class fromType) {
-		return new NumberToFloatConverter(numberFormat, fromType, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToType(boolean)
-	 */
-	protected Class doGetToType(boolean primitive) {
-		return (primitive) ? Float.TYPE : Float.class;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToIntegerConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToIntegerConverterTest.java
deleted file mode 100644
index 0734677..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToIntegerConverterTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToIntegerConverterTest extends NumberToNumberTestHarness {
-	private NumberFormat numberFormat;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		numberFormat = NumberFormat.getInstance();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Long((long) Integer.MAX_VALUE + 1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToBoxedTypeValidator(Class fromType) {
-		return new NumberToIntegerConverter(numberFormat, fromType, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToPrimitiveValidator(Class fromType) {
-		return new NumberToIntegerConverter(numberFormat, fromType, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToType(boolean)
-	 */
-	protected Class doGetToType(boolean primitive) {
-		return (primitive) ? Integer.TYPE : Integer.class;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToLongConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToLongConverterTest.java
deleted file mode 100644
index aff8120..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToLongConverterTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToLongConverterTest extends NumberToNumberTestHarness {
-	private NumberFormat numberFormat;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		numberFormat = NumberFormat.getInstance();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Double(Double.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToBoxedTypeValidator(Class fromType) {
-		return new NumberToLongConverter(numberFormat, fromType, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToPrimitiveValidator(Class fromType) {
-		return new NumberToLongConverter(numberFormat, fromType, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToType(boolean)
-	 */
-	protected Class doGetToType(boolean primitive) {
-		return (primitive) ? Long.TYPE : Long.class;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToNumberTestHarness.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToNumberTestHarness.java
deleted file mode 100644
index d6373b3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToNumberTestHarness.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-
-/**
- * @since 1.1
- */
-public abstract class NumberToNumberTestHarness extends TestCase {
-
-	/**
-	 * Invoked when a to primitive validator is needed.
-	 * 
-	 * @param fromType
-	 * @return validator, <code>null</code> if the type does not have a primitive form
-	 */
-	protected abstract IConverter doGetToPrimitiveValidator(Class fromType);
-
-	/**
-	 * Invoked when a to boxed validator is needed.
-	 * 
-	 * @param fromType
-	 * @return
-	 */
-	protected abstract IConverter doGetToBoxedTypeValidator(Class fromType);
-
-	/**
-	 * Invoked when the type is needed.
-	 * 
-	 * @param primitive
-	 * @return type, <code>null</code> if the type does not have a primitive form
-	 */
-	protected abstract Class doGetToType(boolean primitive);
-
-	/**
-	 * Invoked when an out of range number is needed to use for conversion.
-	 * 
-	 * @return out of range number of <code>null</code> if the type has no bounds
-	 */
-	protected abstract Number doGetOutOfRangeNumber();
-
-	public void testFromType() throws Exception {
-		Class from = Integer.class;
-		assertEquals(from, doGetToBoxedTypeValidator(from).getFromType());
-	}
-
-	public void testToTypeIsPrimitive() throws Exception {
-		Class toType = doGetToType(true);
-		
-		if (toType == null) {
-			//return if there is no primitive type
-			return;
-		}
-		assertEquals("to type was not of the correct type", toType, doGetToPrimitiveValidator(Integer.class)
-				.getToType());
-		assertTrue("to type was not primitive", toType.isPrimitive());
-	}
-
-	public void testToTypeIsBoxedType() throws Exception {
-		Class toType = doGetToType(false);
-		assertEquals(toType, doGetToBoxedTypeValidator(Integer.class)
-				.getToType());
-		assertFalse(toType.isPrimitive());
-	}
-
-	public void testValidConversion() throws Exception {
-		Integer value = new Integer(1);
-		Number result = (Number) doGetToBoxedTypeValidator(Integer.class)
-				.convert(value);
-		
-		assertNotNull("result was null", result);
-		
-		// regardless if the converter is for the primitive value the returned
-		// value will be the boxed type
-		assertEquals(doGetToType(false), result.getClass());
-		assertEquals(value, new Integer(result.intValue()));
-	}
-
-	public void testOutOfRangeConversion() throws Exception {
-		Number outOfRange = doGetOutOfRangeNumber();
-		
-		if (outOfRange == null) {
-			//the number does not have bounds (e.g. BigInteger or BigDecimal)
-			return;
-		}
-		try {
-			doGetToBoxedTypeValidator(Integer.class).convert(outOfRange);
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	public void testConvertNullValueForPrimitiveThrowsIllegalArgumentException()
-			throws Exception {
-		if (doGetToType(true) == null) {
-			//return if primitive is not supported
-			
-			return;
-		}
-		
-		try {
-			doGetToPrimitiveValidator(Integer.class).convert(null);
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	public void testConvertNullValueForBoxedTypeReturnsNull() throws Exception {
-		assertNull(doGetToBoxedTypeValidator(Integer.class).convert(null));
-	}
-
-	public void testNonNumberThrowsIllegalArgumentException() throws Exception {
-		try {
-			doGetToBoxedTypeValidator(Integer.class).convert("");
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToShortConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToShortConverterTest.java
deleted file mode 100644
index 4c00cfc..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/NumberToShortConverterTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToShortConverterTest extends NumberToNumberTestHarness {
-	private NumberFormat numberFormat;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		numberFormat = NumberFormat.getInstance();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Integer(Short.MAX_VALUE + 1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToBoxedTypeValidator(Class fromType) {
-		return new NumberToShortConverter(numberFormat, fromType, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected IConverter doGetToPrimitiveValidator(Class fromType) {
-		return new NumberToShortConverter(numberFormat, fromType, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.NumberToNumberTestHarness#doGetToType(boolean)
-	 */
-	protected Class doGetToType(boolean primitive) {
-		return (primitive) ? Short.TYPE : Short.class;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/ObjectToPrimitiveValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/ObjectToPrimitiveValidatorTest.java
deleted file mode 100755
index 9fbfb83..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/ObjectToPrimitiveValidatorTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.validation.ObjectToPrimitiveValidator;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @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#isValid(java.lang.Object)}.
-	 */
-	public void testIsValid() {
-		IStatus result = this.objectToPrimitiveValidator.validate(null);
-		assertEquals("The wrong validation error was found.", result
-				.getMessage(), this.objectToPrimitiveValidator.getNullHint());
-
-		result = this.objectToPrimitiveValidator.validate(new Integer(1));
-		assertTrue("No validation error should be found.", result.isOK());
-
-		result = this.objectToPrimitiveValidator.validate(new Object());
-		assertEquals("The wrong validation error was found.", result
-				.getMessage(), this.objectToPrimitiveValidator.getClassHint());
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StatusToStringConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StatusToStringConverterTest.java
deleted file mode 100644
index 51bb872..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StatusToStringConverterTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.conversion.StatusToStringConverter;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 1.1
- */
-public class StatusToStringConverterTest extends TestCase {
-	private StatusToStringConverter converter;
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		converter = new StatusToStringConverter();
-	}
-	
-	public void testConvertedValueIsMessageOfStatus() throws Exception {
-		String message = "this is my message";
-		IStatus status = ValidationStatus.error(message);
-		assertEquals(message, converter.convert(status));
-	}
-	
-	public void testFromTypeIsIStatus() throws Exception {
-		assertEquals(IStatus.class, converter.getFromType());
-	}
-	
-	public void testToTypeIsString() throws Exception {
-		assertEquals(String.class, converter.getToType());
-	}
-	
-	public void testIllegalArgumentExceptionIsThrownWithNullInput() throws Exception {
-		try {
-			converter.convert(null);
-			fail();
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToBooleanConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToBooleanConverterTest.java
deleted file mode 100644
index b1534ec..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToBooleanConverterTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-
-import org.eclipse.core.internal.databinding.BindingMessages;
-import org.eclipse.core.internal.databinding.conversion.StringToBooleanConverter;
-
-/**
- * @since 1.1
- */
-public class StringToBooleanConverterTest extends TestCase {
-	private StringToBooleanConverter converter;
-
-	private List trueValues;
-
-	private List falseValues;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#run(junit.framework.TestResult)
-	 */
-	public void run(TestResult result) {
-		trueValues = Collections.unmodifiableList(toValues(BindingMessages
-				.getString("ValueDelimiter"), BindingMessages
-				.getString("TrueStringValues")));
-		falseValues = Collections.unmodifiableList(toValues(BindingMessages
-				.getString("ValueDelimiter"), BindingMessages
-				.getString("FalseStringValues")));
-
-		super.run(result);
-	}
-
-	private List toValues(String delimiter, String values) {
-		StringTokenizer tokenizer = new StringTokenizer(values, delimiter);
-		List result = new LinkedList();
-
-		while (tokenizer.hasMoreTokens()) {
-			result.add(tokenizer.nextToken());
-		}
-
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		converter = new StringToBooleanConverter();
-		assertTrue(trueValues.size() > 0);
-		assertTrue(falseValues.size() > 0);
-	}
-
-	public void testConvertsToTrue() throws Exception {
-		Boolean result = (Boolean) converter.convert(trueValues.get(0));
-		assertTrue(result.booleanValue());
-	}
-
-	public void testConvertsToFalse() throws Exception {
-		Boolean result = (Boolean) converter.convert(falseValues.get(0));
-		assertFalse(result.booleanValue());
-	}
-
-	public void testUpperCaseStringConvertsToTrue() throws Exception {
-		Boolean result = (Boolean) converter.convert(((String) trueValues.get(0))
-				.toUpperCase());
-		assertTrue(result.booleanValue());
-	}
-
-	public void testUpperCaseStringConvertsToFalse() throws Exception {
-		Boolean result = (Boolean) converter.convert(((String) falseValues.get(0))
-				.toUpperCase());
-		assertFalse(result.booleanValue());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToByteConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToByteConverterTest.java
deleted file mode 100644
index 1c61468..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToByteConverterTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.conversion.StringToByteConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToByteConverterTest extends TestCase {
-	private NumberFormat numberFormat;
-	private StringToByteConverter converter;
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		numberFormat = NumberFormat.getIntegerInstance();
-		converter = StringToByteConverter.toByte(numberFormat, false);
-	}
-
-	public void testConvertsToByte() throws Exception {
-		Byte value = new Byte((byte) 1);
-		Byte result = (Byte) converter.convert(numberFormat.format(value));
-		
-		assertEquals(value, result);
-	}
-
-	public void testConvertsToBytePrimitive() throws Exception {
-		converter = StringToByteConverter.toByte(numberFormat, true);
-		Byte value = new Byte((byte) 1);
-		Byte result = (Byte) converter.convert(numberFormat.format(value));
-		assertEquals(value, result);
-	}
-
-	public void testFromTypeIsString() throws Exception {
-		assertEquals(String.class, converter.getFromType());
-	}
-
-	public void testToTypeIsShort() throws Exception {
-		assertEquals(Byte.class, converter.getToType());
-	}
-	
-	public void testToTypeIsBytePrimitive() throws Exception {
-		converter = StringToByteConverter.toByte(true);
-		assertEquals(Byte.TYPE, converter.getToType());
-	}
-	
-	public void testReturnsNullBoxedTypeForEmptyString() throws Exception {
-		assertNull(converter.convert(""));
-	}
-
-	public void testThrowsIllegalArgumentExceptionIfAskedToConvertNonString()
-			throws Exception {
-		try {
-			converter.convert(new Integer(1));
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToCharacterConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToCharacterConverterTest.java
deleted file mode 100644
index 21250df..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToCharacterConverterTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) Matt Carter and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matt Carter - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.conversion.StringToCharacterConverter;
-
-/**
- * @since 1.1
- */
-public class StringToCharacterConverterTest extends TestCase {
-
-	private StringToCharacterConverter converter;
-	private StringToCharacterConverter primitiveConverter;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		converter = StringToCharacterConverter.toCharacter(false);
-		primitiveConverter = StringToCharacterConverter.toCharacter(true);
-	}
-
-	public void testConvertsToCharacter() throws Exception {
-		Character value = new Character('X');
-		Character result = (Character) converter.convert(Character
-				.toString(value.charValue()));
-
-		assertEquals(value, result);
-	}
-
-	public void testConvertsToCharacterPrimitive() throws Exception {
-		Character value = new Character('Y');
-		Character result = (Character) primitiveConverter.convert(String
-				.valueOf(value.charValue()));
-		assertEquals(value, result);
-	}
-
-	public void testFromTypeIsString() throws Exception {
-		assertEquals(String.class, converter.getFromType());
-	}
-
-	public void testToTypeIsCharacter() throws Exception {
-		assertEquals(Character.class, converter.getToType());
-	}
-
-	public void testToTypeIsCharacterPrimitive() throws Exception {
-		assertEquals(Character.TYPE, primitiveConverter.getToType());
-	}
-
-	public void testReturnsNullBoxedTypeForEmptyString() throws Exception {
-		assertNull(converter.convert(""));
-	}
-
-	public void testNullCharacterIsOK() throws Exception {
-		assertNull(converter.convert(null));
-	}
-
-	public void testNullCharacterIsNotOKForPrimitive() throws Exception {
-		try {
-			primitiveConverter.convert(null);
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	public void testThrowsIllegalArgumentExceptionIfAskedToConvertNonString()
-			throws Exception {
-		try {
-			converter.convert(new Integer(1));
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserByteTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserByteTest.java
deleted file mode 100644
index dd8b65b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserByteTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * @since 3.2
- *
- */
-public class StringToNumberParserByteTest extends
-		StringToNumberParserTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#assertValid(java.lang.Number)
-	 */
-	protected boolean assertValid(Number number) {
-		return StringToNumberParser.inByteRange(number);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMax()
-	 */
-	protected Number getValidMax() {
-		return new Byte(Byte.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMin()
-	 */
-	protected Number getValidMin() {
-		return new Byte(Byte.MIN_VALUE);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserDoubleTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserDoubleTest.java
deleted file mode 100644
index 485d059..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserDoubleTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * @since 3.2
- *
- */
-public class StringToNumberParserDoubleTest extends
-		StringToNumberParserTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#assertValid(java.lang.Number)
-	 */
-	protected boolean assertValid(Number number) {
-		return StringToNumberParser.inDoubleRange(number);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMax()
-	 */
-	protected Number getValidMax() {
-		return new Double(Double.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMin()
-	 */
-	protected Number getValidMin() {
-		return new Double(-Double.MAX_VALUE);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserFloatTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserFloatTest.java
deleted file mode 100644
index 8a286eb..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserFloatTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * @since 1.1
- *
- */
-public class StringToNumberParserFloatTest extends
-		StringToNumberParserTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#assertValid(java.lang.Number)
-	 */
-	protected boolean assertValid(Number number) {
-		return StringToNumberParser.inFloatRange(number);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMax()
-	 */
-	protected Number getValidMax() {
-		return new Float(Float.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMin()
-	 */
-	protected Number getValidMin() {
-		return new Float(-Float.MAX_VALUE);
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserIntegerTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserIntegerTest.java
deleted file mode 100644
index cd37511..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserIntegerTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * @since 1.1
- */
-public class StringToNumberParserIntegerTest extends
-		StringToNumberParserTestHarness {
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#assertValid(java.lang.Number)
-	 */
-	protected boolean assertValid(Number number) {
-		return StringToNumberParser.inIntegerRange(number);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMax()
-	 */
-	protected Number getValidMax() {
-		return new Integer(Integer.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMin()
-	 */
-	protected Number getValidMin() {
-		return new Integer(Integer.MIN_VALUE);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserLongTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserLongTest.java
deleted file mode 100644
index 3ecef0d..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserLongTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-/**
- * @since 1.1
- *
- */
-public class StringToNumberParserLongTest extends
-		StringToNumberParserTestHarness {
-
-	protected boolean assertValid(Number number) {
-		return StringToNumberParser.inLongRange(number);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMax()
-	 */
-	protected Number getValidMax() {
-		return new Long(Long.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMin()
-	 */
-	protected Number getValidMin() {
-		return new Long(Long.MIN_VALUE);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserShortTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserShortTest.java
deleted file mode 100644
index cf0c0fa..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserShortTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-
-/**
- * @since 1.1
- */
-public class StringToNumberParserShortTest extends StringToNumberParserTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#assertValid(java.lang.Number)
-	 */
-	protected boolean assertValid(Number number) {
-		return StringToNumberParser.inShortRange(number);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMax()
-	 */
-	protected Number getValidMax() {
-		return new Short(Short.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTestHarness#getValidMin()
-	 */
-	protected Number getValidMin() {
-		return new Short(Short.MIN_VALUE);
-	}	
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserTest.java
deleted file mode 100644
index a1329a0..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser.ParseResult;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToNumberParserTest extends TestCase {
-	private NumberFormat integerFormat;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		integerFormat = NumberFormat.getIntegerInstance();
-	}
-
-	public void testParseNonStringThrowsIllegalArgumentException()
-			throws Exception {
-		try {
-			StringToNumberParser.parse(new Integer(0), integerFormat, false);
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	public void testEmptyStringReturnsNullIfNotPrimitive() throws Exception {
-		ParseResult result = StringToNumberParser.parse("",
-				integerFormat, false);
-		assertNull(result.getNumber());
-	}
-
-	public void testReturnsParsePositionWhenValueCannotBeParsed()
-			throws Exception {
-		ParseResult result = StringToNumberParser.parse("adsf",
-				integerFormat, false);
-		assertNotNull(result.getPosition());
-		assertNull(result.getNumber());
-	}
-
-	public void testReturnsNumberWhenSuccessfullyParsed() throws Exception {
-		Integer number = new Integer(5);
-		ParseResult result = StringToNumberParser.parse(integerFormat
-				.format(number.longValue()), integerFormat, false);
-		assertNull(result.getPosition());
-		assertEquals(number.intValue(), result.getNumber().intValue());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserTestHarness.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserTestHarness.java
deleted file mode 100644
index 476ba39..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToNumberParserTestHarness.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-import org.eclipse.core.internal.databinding.conversion.StringToNumberParser;
-
-import junit.framework.TestCase;
-
-/**
- * @since 1.1
- */
-public abstract class StringToNumberParserTestHarness extends TestCase {
-
-	protected abstract Number getValidMax();
-
-	protected abstract Number getValidMin();
-
-	protected abstract boolean assertValid(Number number);
-
-	public void testRanges() throws Exception {
-		Number min = getValidMin();
-		Number max = getValidMax();
-
-		double minDouble = min.doubleValue();
-		double maxDouble = max.doubleValue();
-
-		//test bytes
-		assertTrue("valid byte", assertValid(new Byte((byte) 1)));
-		assertTrue("valid byte min", assertValid(new Byte(Byte.MIN_VALUE)));
-		assertTrue("valid byte max", assertValid(new Byte(Byte.MAX_VALUE)));
-		
-		// test shorts
-		assertTrue("valid short", assertValid(new Short((short) 1)));
-		boolean result = assertValid(new Short(Short.MIN_VALUE));
-		if (minDouble > Short.MIN_VALUE) {
-			assertFalse("invalid short min", result);
-		} else {
-			assertTrue("valid short min", result);
-		}
-
-		result = assertValid(new Short(Short.MAX_VALUE));
-		if (maxDouble < Short.MAX_VALUE) {
-			assertFalse("invalid short max", result);
-		} else {
-			assertTrue("valid short max", result);
-		}
-
-		// test integers
-		assertTrue("valid Integer", assertValid(new Integer(1)));
-
-		result = assertValid(new Integer(Integer.MIN_VALUE));
-		if (minDouble > Integer.MIN_VALUE) {
-			assertFalse("invalid Integer min", result);
-		} else {
-			assertTrue("valid integer min", result);
-		}
-
-		result = assertValid(new Integer(Integer.MAX_VALUE));
-		if (maxDouble < Integer.MAX_VALUE) {
-			assertFalse("valid Integer max", result);
-		} else {
-			assertTrue("valid integer max", result);
-		}
-
-		// test longs
-		assertTrue("valid long", assertValid(new Long(1)));
-		result = assertValid(new Long(Long.MIN_VALUE));
-		if (minDouble > Long.MIN_VALUE) {
-			assertFalse("invalid long min", result);
-		} else {
-			assertTrue("valid long min", result);
-		}
-
-		result = assertValid(new Long(Long.MAX_VALUE));
-		if (maxDouble < Long.MAX_VALUE) {
-			assertFalse("invalid long max", result);
-		} else {
-			assertTrue("valid long max", result);
-		}
-
-		// test floats
-		assertTrue("valid float", assertValid(new Float(1)));
-		result = assertValid(new Float(-Float.MAX_VALUE));
-		if (minDouble > -Float.MAX_VALUE) {
-			assertFalse("invalid float min", result);
-		} else {
-			assertTrue("valid float min", result);
-		}
-
-		result = assertValid(new Float(Float.MAX_VALUE));
-		if (maxDouble < Float.MAX_VALUE) {
-			assertFalse("invalid float max", result);
-		} else {
-			assertTrue("valid float max", result);
-		}
-
-		assertFalse("invalid negative float infinity", assertValid(new Float(
-				Float.NEGATIVE_INFINITY)));
-		assertFalse("invalid positive float infinity", assertValid(new Float(
-				Float.POSITIVE_INFINITY)));
-		assertFalse("invalid float NaN", assertValid(new Float(Float.NaN)));
-
-		// test doubles
-		assertTrue("valid double", assertValid(new Double(1)));
-		result = assertValid(new Double(-Double.MAX_VALUE));
-		if (minDouble > -Double.MAX_VALUE) {
-			assertFalse("invalid double min", result);
-		} else {
-			assertTrue("valid double min", result);
-		}
-
-		result = assertValid(new Double(Double.MAX_VALUE));
-		if (maxDouble < Double.MAX_VALUE) {
-			assertFalse("invalid float max", result);
-		} else {
-			assertTrue("valid float max", result);
-		}
-
-		assertFalse("invalid negative double infinity", assertValid(new Double(
-				Double.NEGATIVE_INFINITY)));
-		assertFalse("invalid positive double infinity", assertValid(new Double(
-				Double.POSITIVE_INFINITY)));
-		assertFalse("invalid double NaN", assertValid(new Double(Double.NaN)));
-
-		// test BigIntegers
-		assertTrue("valid BigInteger", assertValid(BigInteger.valueOf(1)));
-		BigDecimal bigDecimalMin = new BigDecimal(min.doubleValue());
-		bigDecimalMin = bigDecimalMin.subtract(new BigDecimal(1));
-		assertFalse("invalid BigInteger min", assertValid(bigDecimalMin.toBigInteger()));
-
-		BigDecimal bigDecimalMax = new BigDecimal(max.doubleValue());
-		bigDecimalMax = bigDecimalMax.add(new BigDecimal(1));
-		assertFalse("invalid BigInteger max", assertValid(bigDecimalMax.toBigInteger()));
-		
-		// test BigDecimals
-		assertTrue("valid BigDecimal", assertValid(new BigDecimal(1)));
-		assertFalse("invalid BigDecimal min", assertValid(bigDecimalMin));
-		assertFalse("invalid BigDecimal max", assertValid(bigDecimalMax));
-
-		/**
-		 * The ICU4J plugin's NumberFormat will return it's own BigDecimal
-		 * implementation, com.ibm.icu.math.BigDecimal. The issue this causes is
-		 * that we can't reference this class as it's not part of the
-		 * replacement plugin. So in order to ensure that we handle Number's
-		 * that are not part of the JDK stub a number implemenation and ensure
-		 * that the double representation of this number is used.
-		 * 
-		 * @throws Exception
-		 */
-		class MyNumber extends Number {
-			double value;
-			int count;
-
-			MyNumber(double value) {
-				this.value = value;
-			}
-
-			private static final long serialVersionUID = 1L;
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see java.lang.Number#doubleValue()
-			 */
-			public double doubleValue() {
-				count++;
-				return value;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see java.lang.Number#floatValue()
-			 */
-			public float floatValue() {
-				return 0;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see java.lang.Number#intValue()
-			 */
-			public int intValue() {
-				return 0;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see java.lang.Number#longValue()
-			 */
-			public long longValue() {
-				return 0;
-			}
-		}
-
-		MyNumber number = new MyNumber(1);
-		assertEquals(0, number.count);
-		assertTrue(StringToNumberParser.inIntegerRange(number));
-		assertTrue("double value retrieved", number.count > 0);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToShortConverterTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToShortConverterTest.java
deleted file mode 100644
index b37fba1..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/conversion/StringToShortConverterTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.conversion;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.conversion.StringToShortConverter;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToShortConverterTest extends TestCase {
-	private NumberFormat numberFormat;
-	private StringToShortConverter converter;
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		numberFormat = NumberFormat.getIntegerInstance();
-		converter = StringToShortConverter.toShort(numberFormat, false);
-	}
-
-	public void testConvertsToShort() throws Exception {
-		Short value = new Short((short) 1);
-		Short result = (Short) converter.convert(numberFormat.format(value));
-		
-		assertEquals(value, result);
-	}
-
-	public void testConvertsToShortPrimitive() throws Exception {
-		converter = StringToShortConverter.toShort(numberFormat, true);
-		Short value = new Short((short) 1);
-		Short result = (Short) converter.convert(numberFormat.format(value));
-		assertEquals(value, result);
-	}
-
-	public void testFromTypeIsString() throws Exception {
-		assertEquals(String.class, converter.getFromType());
-	}
-
-	public void testToTypeIsShort() throws Exception {
-		assertEquals(Short.class, converter.getToType());
-	}
-	
-	public void testToTypeIsShortPrimitive() throws Exception {
-		converter = StringToShortConverter.toShort(true);
-		assertEquals(Short.TYPE, converter.getToType());
-	}
-	
-	public void testReturnsNullBoxedTypeForEmptyString() throws Exception {
-		assertNull(converter.convert(""));
-	}
-
-	public void testThrowsIllegalArgumentExceptionIfAskedToConvertNonString()
-			throws Exception {
-		try {
-			converter.convert(new Integer(1));
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ConstantObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ConstantObservableValueTest.java
deleted file mode 100644
index 918d990..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ConstantObservableValueTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 212518)
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.observable.ConstantObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests for ConstantObservableValue
- * 
- * @since 1.1
- */
-public class ConstantObservableValueTest extends AbstractDefaultRealmTestCase {
-	public void testConstructor_NullRealm() {
-		try {
-			new ConstantObservableValue(null, null, null);
-			fail("Constructor should throw an exception when null realm is passed in");
-		} catch (RuntimeException expected) {
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite("ConstantValueTest");
-		suite.addTestSuite(ConstantObservableValueTest.class);
-		suite.addTest(UnchangeableObservableValueContractTest
-				.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ConstantObservableValue(realm, new Object(),
-					Object.class);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Object.class;
-		}
-	}
-
-	/**
-	 * Non-API--this class is public so that SuiteBuilder can access it.
-	 */
-	public static class UnchangeableObservableValueContractTest extends
-			ObservableValueContractTest {
-		public UnchangeableObservableValueContractTest(String name,
-				IObservableValueContractDelegate delegate) {
-			super(name, delegate);
-		}
-
-		public void testChange_OrderOfNotifications() {
-			// disabled
-		}
-
-		public void testChange_ValueChangeEvent() {
-			// disabled
-		}
-
-		public void testChange_ValueChangeEventDiff() {
-			// disabled
-		}
-
-		public void testChange_ValueChangeEventFiredAfterValueIsSet() {
-			// disabled
-		}
-
-		public void testRemoveValueChangeListener_RemovesListener()
-				throws Exception {
-			// disabled
-		}
-
-		public void testChange_ChangeEvent() {
-			// disabled
-		}
-
-		public void testChange_EventObservable() {
-			// disabled
-		}
-
-		public void testChange_ObservableRealmIsTheCurrentRealm() {
-			// disabled
-		}
-
-		public void testChange_RealmCheck() {
-			// disabled
-		}
-
-		public void testRemoveChangeListener_RemovesListener() {
-			// disabled
-		}
-
-		public void testIsStale_RealmChecks() {
-			// disabled
-		}
-
-		public void testIsStale_GetterCalled() throws Exception {
-			// disabled
-		}
-
-		public static Test suite(IObservableValueContractDelegate delegate) {
-			return new SuiteBuilder().addObservableContractTest(
-					UnchangeableObservableValueContractTest.class, delegate)
-					.build();
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/EmptyObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/EmptyObservableListTest.java
deleted file mode 100644
index 8548240..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/EmptyObservableListTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208332)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.internal.databinding.observable.EmptyObservableList;
-import org.eclipse.jface.databinding.conformance.ObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.2
- * 
- */
-public class EmptyObservableListTest {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(EmptyObservableListTest.class.getName());
-		suite.addTest(ImmutableObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	public static class ImmutableObservableListContractTest extends
-			ObservableListContractTest {
-		public static Test suite(IObservableCollectionContractDelegate delegate) {
-			return new SuiteBuilder().addObservableContractTest(
-					ImmutableObservableListContractTest.class, delegate)
-					.build();
-		}
-
-		public ImmutableObservableListContractTest(
-				IObservableCollectionContractDelegate delegate) {
-			super(delegate);
-		}
-
-		public ImmutableObservableListContractTest(String name,
-				IObservableCollectionContractDelegate delegate) {
-			super(name, delegate);
-		}
-
-		public void testGet_GetterCalled() {
-			// disabled
-		}
-
-		public void testSubList_GetterCalled() {
-			// disabled
-		}
-
-		public void testChange_ChangeEvent() {
-			// disabled
-		}
-
-		public void testChange_EventObservable() {
-			// disabled
-		}
-
-		public void testChange_ObservableRealmIsTheCurrentRealm() {
-			// disabled
-		}
-
-		public void testChange_RealmCheck() {
-			// disabled
-		}
-
-		public void testRemoveChangeListener_RemovesListener() {
-			// disabled
-		}
-
-		public void testIndexOf_GetterCalled() {
-			// disabled
-		}
-
-		public void testLastIndexOf_GetterCalled() {
-			// disabled
-		}
-
-		public void testListIterator_GetterCalled() {
-			// disabled
-		}
-
-		public void testListIteratorAtIndex_GetterCalled() {
-			// disabled
-		}
-
-		public void testContains_GetterCalled() {
-			// disabled
-		}
-
-		public void testContainsAll_GetterCalled() {
-			// disabled
-		}
-
-		public void testEquals_GetterCalled() {
-			// disabled
-		}
-
-		public void testHashCode_GetterCalled() {
-			// disabled
-		}
-
-		public void testIsEmpty_GetterCalled() {
-			// disabled
-		}
-
-		public void testIterator_GetterCalled() {
-			// disabled
-		}
-
-		public void testSize_GetterCalled() throws Exception {
-			// disabled
-		}
-
-		public void testToArray_GetterCalled() throws Exception {
-			// disabled
-		}
-
-		public void testToArrayWithObjectArray_GetterCalled() throws Exception {
-			// disabled
-		}
-
-		public void testIsStale_GetterCalled() throws Exception {
-			// disabled
-		}
-	}
-
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		private Object elementType = new Object();
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			return new EmptyObservableList(realm, elementType);
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/EmptyObservableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/EmptyObservableSetTest.java
deleted file mode 100644
index 2fa464e..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/EmptyObservableSetTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208332)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.internal.databinding.observable.EmptyObservableSet;
-import org.eclipse.jface.databinding.conformance.ObservableCollectionContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.2
- * 
- */
-public class EmptyObservableSetTest {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(EmptyObservableSetTest.class.getName());
-		suite.addTest(ImmutableObservableSetContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	public static class ImmutableObservableSetContractTest extends
-			ObservableCollectionContractTest {
-		public static Test suite(IObservableCollectionContractDelegate delegate) {
-			return new SuiteBuilder().addObservableContractTest(
-					ImmutableObservableSetContractTest.class, delegate).build();
-		}
-
-		public ImmutableObservableSetContractTest(
-				IObservableCollectionContractDelegate delegate) {
-			super(delegate);
-		}
-
-		public ImmutableObservableSetContractTest(String name,
-				IObservableCollectionContractDelegate delegate) {
-			super(name, delegate);
-		}
-
-		public void testChange_ChangeEvent() {
-			// disabled
-		}
-
-		public void testChange_EventObservable() {
-			// disabled
-		}
-
-		public void testChange_ObservableRealmIsTheCurrentRealm() {
-			// disabled
-		}
-
-		public void testChange_RealmCheck() {
-			// disabled
-		}
-
-		public void testRemoveChangeListener_RemovesListener() {
-			// disabled
-		}
-
-		public void testContains_GetterCalled() {
-			// disabled
-		}
-
-		public void testContainsAll_GetterCalled() {
-			// disabled
-		}
-
-		public void testEquals_GetterCalled() {
-			// disabled
-		}
-
-		public void testHashCode_GetterCalled() {
-			// disabled
-		}
-
-		public void testIsEmpty_GetterCalled() {
-			// disabled
-		}
-
-		public void testIterator_GetterCalled() {
-			// disabled
-		}
-
-		public void testSize_GetterCalled() {
-			// disabled
-		}
-
-		public void testToArray_GetterCalled() {
-			// disabled
-		}
-
-		public void testToArrayWithObjectArray_GetterCalled() {
-			// disabled
-		}
-
-		public void testIsStale_GetterCalled() throws Exception {
-			// disabled
-		}
-	}
-
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		private Object elementType = new Object();
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			return new EmptyObservableSet(realm, elementType);
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/MapEntryObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/MapEntryObservableValueTest.java
deleted file mode 100644
index d27e02a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/MapEntryObservableValueTest.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Marko Topolnik and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Marko Topolnik - initial API and implementation (bug 184830)
- *     Matthew Hall - bugs 184830, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.WritableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.core.internal.databinding.observable.MapEntryObservableValue;
-import org.eclipse.jface.databinding.conformance.MutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.ObservableStaleContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 1.2
- */
-public class MapEntryObservableValueTest extends AbstractDefaultRealmTestCase
-		implements IValueChangeListener {
-	private static final String VALUE1 = "Value1";
-	private static final String VALUE2 = "Value2";
-
-	private final Object key = "mapKey";
-	private IObservableMap map;
-	private ValueDiff diff;
-	private MapEntryObservableValue observedValue;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.map = new WritableMap();
-		this.observedValue = (MapEntryObservableValue) Observables
-				.observeMapEntry(this.map, this.key, String.class);
-		observedValue.addValueChangeListener(this);
-	}
-
-	public void handleValueChange(ValueChangeEvent p_event) {
-		this.diff = p_event.diff;
-	}
-
-	public void testNullValue() {
-		// test entry added with value null
-		this.map.put(this.key, null);
-		assertNull(this.diff);
-		assertNull(this.observedValue.getValue());
-		// test value changed from null to null
-		this.map.put(this.key, null);
-		assertNull(this.diff);
-		assertNull(this.observedValue.getValue());
-		// test null-valued entry removed
-		this.map.remove(this.key);
-		assertNull(this.diff);
-		assertNull(this.observedValue.getValue());
-	}
-
-	public void testNonNullValue() {
-		// test add non-null value
-		this.map.put(this.key, VALUE1);
-		assertNotNull(this.diff);
-		assertNull(this.diff.getOldValue());
-		assertSame(VALUE1, this.diff.getNewValue());
-		assertSame(VALUE1, this.observedValue.getValue());
-
-		// test change to another non-null value
-		this.diff = null;
-		this.map.put(this.key, VALUE2);
-		assertNotNull(this.diff);
-		assertSame(VALUE1, this.diff.getOldValue());
-		assertSame(VALUE2, this.diff.getNewValue());
-		assertSame(VALUE2, this.observedValue.getValue());
-	}
-
-	public void testTransitionBetweenNullAndNonNull() {
-		this.map.put(this.key, null);
-
-		// test transition to non-null
-		this.diff = null;
-		this.map.put(this.key, VALUE1);
-		assertNotNull(this.diff);
-		assertNull(this.diff.getOldValue());
-		assertSame(VALUE1, this.diff.getNewValue());
-
-		// test transition to null
-		this.diff = null;
-		this.map.put(this.key, null);
-		assertNotNull(this.diff);
-		assertSame(VALUE1, this.diff.getOldValue());
-		assertNull(this.diff.getNewValue());
-	}
-
-	public void testRemoveKey() {
-		this.map.put(this.key, VALUE1);
-
-		this.diff = null;
-		this.map.remove(this.key);
-		assertNotNull(this.diff);
-		assertSame(VALUE1, this.diff.getOldValue());
-		assertNull(this.diff.getNewValue());
-	}
-
-	public void testGetAndSetValue() {
-		// test set null value
-		this.observedValue.setValue(null);
-		assertNull(this.observedValue.getValue());
-		assertNull(this.diff);
-
-		// test set non-null value
-		this.observedValue.setValue(VALUE1);
-		assertSame(VALUE1, this.observedValue.getValue());
-		assertNotNull(this.diff);
-		assertNull(this.diff.getOldValue());
-		assertSame(VALUE1, this.diff.getNewValue());
-
-		// test set another non-null value
-		this.diff = null;
-		this.observedValue.setValue(VALUE2);
-		assertSame(VALUE2, this.observedValue.getValue());
-		assertNotNull(this.diff);
-		assertSame(VALUE1, this.diff.getOldValue());
-		assertSame(VALUE2, this.diff.getNewValue());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(MapEntryObservableValueTest.class.getName());
-		suite.addTestSuite(MapEntryObservableValueTest.class);
-		suite.addTest(MutableObservableValueContractTest.suite(new Delegate()));
-		suite.addTest(ObservableStaleContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Object valueType = new Object();
-
-		public IObservableValue createObservableValue(Realm realm) {
-			WritableMap map = new WritableMap(realm);
-			Object key = new Object();
-			map.put(key, new Object());
-			return new MapEntryObservableValueStub(map, key, valueType);
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return new Object();
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return valueType;
-		}
-
-		public void change(IObservable observable) {
-			MapEntryObservableValueStub mapEntryValue = (MapEntryObservableValueStub) observable;
-			mapEntryValue.map
-					.put(mapEntryValue.key, createValue(mapEntryValue));
-		}
-
-		public void setStale(IObservable observable, boolean stale) {
-			MapEntryObservableValueStub mapEntryValue = (MapEntryObservableValueStub) observable;
-			mapEntryValue.map.setStale(stale);
-		}
-	}
-
-	private static class MapEntryObservableValueStub extends
-			MapEntryObservableValue {
-		WritableMap map;
-		Object key;
-
-		MapEntryObservableValueStub(WritableMap map, Object key,
-				Object valueType) {
-			super(map, key, valueType);
-			this.map = map;
-			this.key = key;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ProxyObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ProxyObservableListTest.java
deleted file mode 100644
index a1ceaa3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ProxyObservableListTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208332)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import java.util.ArrayList;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.internal.databinding.observable.ProxyObservableList;
-import org.eclipse.jface.databinding.conformance.ObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-
-/**
- * @since 3.2
- * 
- */
-public class ProxyObservableListTest {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ProxyObservableListTest.class.getName());
-		suite.addTest(ObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		private Object elementType = Object.class;
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			IObservableList wrappedList = new WritableList(realm,
-					new ArrayList(), elementType);
-			for (int i = 0; i < elementCount; i++)
-				wrappedList.add(new Object());
-			return new ProxyObservableListStub(wrappedList);
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-
-		public void change(IObservable observable) {
-			((ProxyObservableListStub) observable).wrappedList
-					.add(new Object());
-		}
-	}
-
-	static class ProxyObservableListStub extends ProxyObservableList {
-		IObservableList wrappedList;
-
-		ProxyObservableListStub(IObservableList wrappedList) {
-			super(wrappedList);
-			this.wrappedList = wrappedList;
-		}
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ProxyObservableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ProxyObservableSetTest.java
deleted file mode 100644
index 1be56d2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ProxyObservableSetTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208332)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import java.util.Collections;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.internal.databinding.observable.ProxyObservableSet;
-import org.eclipse.jface.databinding.conformance.ObservableCollectionContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-
-/**
- * @since 3.2
- * 
- */
-public class ProxyObservableSetTest {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ProxyObservableSetTest.class.getName());
-		suite.addTest(ObservableCollectionContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		private Object elementType = Object.class;
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			IObservableSet wrappedSet = new WritableSet(realm,
-					Collections.EMPTY_SET, elementType);
-			for (int i = 0; i < elementCount; i++)
-				wrappedSet.add(createElement(wrappedSet));
-			return new ProxyObservableSetStub(wrappedSet);
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-
-		public void change(IObservable observable) {
-			ProxyObservableSetStub set = (ProxyObservableSetStub) observable;
-			set.wrappedSet.add(createElement(set));
-		}
-	}
-
-	static class ProxyObservableSetStub extends ProxyObservableSet {
-		IObservableSet wrappedSet;
-
-		ProxyObservableSetStub(IObservableSet wrappedSet) {
-			super(wrappedSet);
-			this.wrappedSet = wrappedSet;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/StalenessObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/StalenessObservableValueTest.java
deleted file mode 100644
index 0d5a5f3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/StalenessObservableValueTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 212468)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.AbstractObservable;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.observable.StalenessObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Tests for StalenessObservableValue
- * 
- * @since 1.1
- */
-public class StalenessObservableValueTest extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(StalenessObservableValueTest.class.getName());
-		suite.addTest(ObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class ObservableStub extends AbstractObservable {
-		boolean stale;
-
-		public ObservableStub(Realm realm) {
-			super(realm);
-		}
-
-		public boolean isStale() {
-			return stale;
-		}
-
-		public void setStale(boolean stale) {
-			if (this.stale == stale)
-				return;
-
-			this.stale = stale;
-			if (stale) {
-				fireStale();
-			} else {
-				fireChange();
-			}
-		}
-	}
-
-	static class StalenessObservableValueStub extends StalenessObservableValue {
-		ObservableStub target;
-
-		StalenessObservableValueStub(ObservableStub target) {
-			super(target);
-			this.target = target;
-		}
-	}
-
-	static class Delegate extends AbstractObservableValueContractDelegate {
-		public IObservableValue createObservableValue(Realm realm) {
-			return new StalenessObservableValueStub(new ObservableStub(realm));
-		}
-
-		public void change(IObservable observable) {
-			ObservableStub target = ((StalenessObservableValueStub) observable).target;
-			target.setStale(!target.isStale());
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Boolean.TYPE;
-		}
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableListTest.java
deleted file mode 100755
index 13e5703..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableListTest.java
+++ /dev/null
@@ -1,239 +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
- *     Matthew Hall - bugs 208332, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.core.databinding.observable.list.ObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableList;
-import org.eclipse.jface.databinding.conformance.ObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class UnmodifiableObservableListTest extends
-		AbstractDefaultRealmTestCase {
-	ObservableList unmodifiable;
-	ObservableList mutable;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		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(StaleEvent event) {
-			count++;
-			this.source = event.getObservable();
-		}
-	}
-
-	private static class ChangeCounter implements IChangeListener {
-		int count;
-		IObservable source;
-
-		public void handleChange(ChangeEvent event) {
-			count++;
-			this.source = event.getObservable();
-		}
-	}
-
-	private static class ListChangeCounter implements IListChangeListener {
-		int count;
-		IObservableList source;
-		ListDiff diff;
-
-		public void handleListChange(ListChangeEvent event) {
-			count++;
-			this.source = event.getObservableList();
-			this.diff = event.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;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(UnmodifiableObservableListTest.class.getName());
-		suite.addTestSuite(UnmodifiableObservableListTest.class);
-		suite.addTest(ObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		private Object elementType = new Object();
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			IObservableList backingList = new WritableList(realm,
-					new ArrayList(), elementType);
-			IObservableList result = new UnmodifiableObservableListStub(
-					backingList);
-			for (int i = 0; i < elementCount; i++)
-				backingList.add(createElement(result));
-			return result;
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-
-		public void change(IObservable observable) {
-			UnmodifiableObservableListStub unmodifiableList = (UnmodifiableObservableListStub) observable;
-			IObservableList wrappedList = unmodifiableList.wrappedList;
-			wrappedList.add(createElement(unmodifiableList));
-		}
-	}
-
-	private static class UnmodifiableObservableListStub extends
-			UnmodifiableObservableList {
-		IObservableList wrappedList;
-
-		UnmodifiableObservableListStub(IObservableList wrappedList) {
-			super(wrappedList);
-			this.wrappedList = wrappedList;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableSetTest.java
deleted file mode 100644
index 2ae7ef1..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableSetTest.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Matthew and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms 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
- *         (through UnmodifiableObservableListTest.java)
- *     Matthew Hall - bugs 208332, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Observables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.ObservableSet;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableSet;
-import org.eclipse.jface.databinding.conformance.ObservableCollectionContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class UnmodifiableObservableSetTest extends AbstractDefaultRealmTestCase {
-	UnmodifiableObservableSet unmodifiable;
-	MutableObservableSet mutable;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		Set set = new HashSet();
-		set.add("1");
-		set.add("2");
-
-		mutable = new MutableObservableSet(set, String.class);
-		unmodifiable = (UnmodifiableObservableSet) Observables
-				.unmodifiableObservableSet(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 testFiresSetChangeEvents() throws Exception {
-		SetChangeCounter mutableListener = new SetChangeCounter();
-		SetChangeCounter unmodifiableListener = new SetChangeCounter();
-
-		mutable.addSetChangeListener(mutableListener);
-		unmodifiable.addSetChangeListener(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.getAdditions().size());
-
-		Object addition = mutableListener.diff.getAdditions().toArray()[0];
-		assertEquals(element, addition);
-		assertEquals(3, mutable.size());
-
-		assertEquals(1, unmodifiableListener.count);
-		assertEquals(unmodifiable, unmodifiableListener.source);
-		assertEquals(1, unmodifiableListener.diff.getAdditions().size());
-
-		addition = unmodifiableListener.diff.getAdditions().toArray()[0];
-		assertEquals(element, addition);
-		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(StaleEvent event) {
-			count++;
-			this.source = event.getObservable();
-		}
-	}
-
-	private static class ChangeCounter implements IChangeListener {
-		int count;
-		IObservable source;
-
-		public void handleChange(ChangeEvent event) {
-			count++;
-			this.source = event.getObservable();
-		}
-	}
-
-	private static class SetChangeCounter implements ISetChangeListener {
-		int count;
-		IObservableSet source;
-		SetDiff diff;
-
-		public void handleSetChange(SetChangeEvent event) {
-			count++;
-			this.source = event.getObservableSet();
-			this.diff = event.diff;
-		}
-	}
-
-	private static class MutableObservableSet extends ObservableSet {
-		/**
-		 * @param wrappedList
-		 * @param elementType
-		 */
-		public MutableObservableSet(Set wrappedSet, Object elementType) {
-			super(wrappedSet, elementType);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.internal.databinding.provisional.observable.list.ObservableList#add(java.lang.Object)
-		 */
-		public boolean add(Object o) {
-			boolean result = wrappedSet.add(o);
-			if (result)
-				fireSetChange(Diffs.createSetDiff(Collections.singleton(o),
-						Collections.EMPTY_SET));
-			return result;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(UnmodifiableObservableSetTest.class.getName());
-		suite.addTestSuite(UnmodifiableObservableSetTest.class);
-		suite.addTest(ObservableCollectionContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-		private Object elementType = new Object();
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			IObservableSet backingList = new WritableSet(realm, new HashSet(),
-					elementType);
-			IObservableSet result = new UnmodifiableObservableSetStub(
-					backingList);
-			for (int i = 0; i < elementCount; i++)
-				backingList.add(createElement(result));
-			return result;
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-
-		public void change(IObservable observable) {
-			UnmodifiableObservableSetStub unmodifiableList = (UnmodifiableObservableSetStub) observable;
-			IObservableSet wrappedList = unmodifiableList.wrappedSet;
-			wrappedList.add(createElement(unmodifiableList));
-		}
-	}
-
-	private static class UnmodifiableObservableSetStub extends
-			UnmodifiableObservableSet {
-		IObservableSet wrappedSet;
-
-		UnmodifiableObservableSetStub(IObservableSet wrappedSet) {
-			super(wrappedSet);
-			this.wrappedSet = wrappedSet;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableValueTest.java
deleted file mode 100644
index 630d4ce..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/UnmodifiableObservableValueTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 219909)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.observable.UnmodifiableObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.2
- * 
- */
-public class UnmodifiableObservableValueTest {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(UnmodifiableObservableValueTest.class.getName());
-		suite.addTest(ObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Object valueType = new Object();
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new UnmodifiableObservableValueStub(new WritableValue(realm,
-					null, valueType));
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return valueType;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return new Object();
-		}
-
-		public void change(IObservable observable) {
-			UnmodifiableObservableValueStub wrapper = (UnmodifiableObservableValueStub) observable;
-			wrapper.wrappedValue.setValue(createValue(wrapper));
-		}
-	}
-
-	private static class UnmodifiableObservableValueStub extends
-			UnmodifiableObservableValue {
-		IObservableValue wrappedValue;
-
-		UnmodifiableObservableValueStub(IObservableValue wrappedValue) {
-			super(wrappedValue);
-			this.wrappedValue = wrappedValue;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableListTest.java
deleted file mode 100644
index 21793a7..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableListTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import java.util.ArrayList;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.observable.ValidatedObservableList;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.conformance.MutableObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class ValidatedObservableListTest extends AbstractDefaultRealmTestCase {
-	public static Test suite() {
-		return MutableObservableListContractTest.suite(new Delegate());
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		private Object elementType = new Object();
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			IObservableList target = new WritableList(realm, new ArrayList(),
-					elementType);
-			for (int i = 0; i < elementCount; i++)
-				target.add(createElement(target));
-			IObservableValue validationStatus = new WritableValue(realm,
-					ValidationStatus.ok(), IStatus.class);
-			return new ValidatedObservableListStub(target, validationStatus);
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-
-		public void change(IObservable observable) {
-			ValidatedObservableListStub validated = (ValidatedObservableListStub) observable;
-			validated.target.add(createElement(validated));
-		}
-
-		public void setStale(IObservable observable, boolean stale) {
-			ValidatedObservableListStub validated = (ValidatedObservableListStub) observable;
-			if (stale) {
-				validated.validationStatus.setValue(ValidationStatus
-						.error("error"));
-				validated.target.add(createElement(validated));
-			} else {
-				validated.validationStatus.setValue(ValidationStatus.ok());
-			}
-		}
-
-	}
-
-	static class ValidatedObservableListStub extends ValidatedObservableList {
-		IObservableList target;
-		IObservableValue validationStatus;
-
-		ValidatedObservableListStub(IObservableList target,
-				IObservableValue validationStatus) {
-			super(target, validationStatus);
-			this.target = target;
-			this.validationStatus = validationStatus;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableSetTest.java
deleted file mode 100644
index 0748e0a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableSetTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import java.util.Collections;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.observable.ValidatedObservableSet;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.conformance.MutableObservableSetContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-public class ValidatedObservableSetTest extends AbstractDefaultRealmTestCase {
-	public static Test suite() {
-		return MutableObservableSetContractTest.suite(new Delegate());
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		private Object elementType = new Object();
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			IObservableSet target = new WritableSet(realm,
-					Collections.EMPTY_SET, elementType);
-			for (int i = 0; i < elementCount; i++)
-				target.add(createElement(target));
-			IObservableValue validationStatus = new WritableValue(realm,
-					ValidationStatus.ok(), IStatus.class);
-			return new ValidatedObservableSetStub(target, validationStatus);
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-
-		public void change(IObservable observable) {
-			ValidatedObservableSetStub validated = (ValidatedObservableSetStub) observable;
-			validated.target.add(createElement(validated));
-		}
-
-		public void setStale(IObservable observable, boolean stale) {
-			ValidatedObservableSetStub validated = (ValidatedObservableSetStub) observable;
-			if (stale) {
-				validated.validationStatus.setValue(ValidationStatus
-						.error("error"));
-				validated.target.add(createElement(validated));
-			} else {
-				validated.validationStatus.setValue(ValidationStatus.ok());
-			}
-		}
-
-	}
-
-	static class ValidatedObservableSetStub extends ValidatedObservableSet {
-		IObservableSet target;
-		IObservableValue validationStatus;
-
-		ValidatedObservableSetStub(IObservableSet target,
-				IObservableValue validationStatus) {
-			super(target, validationStatus);
-			this.target = target;
-			this.validationStatus = validationStatus;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableValueTest.java
deleted file mode 100644
index fd2e0e4..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/ValidatedObservableValueTest.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 218269)
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.observable.ValidatedObservableValue;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.conformance.MutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- * 
- */
-public class ValidatedObservableValueTest extends AbstractDefaultRealmTestCase {
-	private ValidatedObservableValue validated;
-	private ObservableValueStub target;
-	private IObservableValue validationStatus;
-
-	private Object oldValue;
-	private Object newValue;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		oldValue = new Object();
-		newValue = new Object();
-		target = new ObservableValueStub(Realm.getDefault());
-		target.setValue(oldValue);
-		validationStatus = new WritableValue(ValidationStatus.ok(),
-				IStatus.class);
-		validated = new ValidatedObservableValue(target, validationStatus);
-	}
-
-	public void testConstructor_RequireObservablesOnSameRealm() {
-		CurrentRealm realm1 = new CurrentRealm(true);
-		CurrentRealm realm2 = new CurrentRealm(true);
-		target = new ObservableValueStub(realm1);
-		validationStatus = new WritableValue(realm2);
-		try {
-			new ValidatedObservableValue(target, validationStatus);
-			fail("Expected exception--target and validation status should have the same realm");
-		} catch (RuntimeException expected) {
-		}
-	}
-
-	public void testIsStale_WhenTargetIsStale() {
-		assertFalse(target.isStale());
-		assertFalse(validated.isStale());
-
-		target.fireStale();
-
-		assertTrue(target.isStale());
-		assertTrue(validated.isStale());
-	}
-
-	public void testIsStale_WhileChangesPending() {
-		assertFalse(target.isStale());
-		assertFalse(validated.isStale());
-
-		validationStatus.setValue(ValidationStatus.error("error"));
-
-		// The validated observable goes stale only when the target changes
-		// value but the validation status is not OK.
-		assertFalse(target.isStale());
-		assertFalse(validated.isStale());
-
-		target.setValue(newValue);
-
-		assertFalse(target.isStale());
-		assertTrue(validated.isStale());
-
-		validationStatus.setValue(ValidationStatus.ok());
-
-		assertFalse(validated.isStale());
-	}
-
-	public void testGetValueType_SameAsTarget() {
-		assertEquals(target.getValueType(), validated.getValueType());
-	}
-
-	public void testGetValue_InitialValue() {
-		assertEquals(oldValue, target.getValue());
-		assertEquals(oldValue, validated.getValue());
-	}
-
-	public void testGetValue_WhileChangesPending() {
-		assertEquals(oldValue, target.getValue());
-		assertEquals(oldValue, validated.getValue());
-
-		validationStatus.setValue(ValidationStatus.error("error"));
-
-		assertEquals(oldValue, target.getValue());
-		assertEquals(oldValue, validated.getValue());
-
-		target.setValue(newValue);
-
-		assertEquals(newValue, target.getValue());
-		assertEquals(oldValue, validated.getValue());
-
-		validationStatus.setValue(ValidationStatus.ok());
-
-		assertEquals(newValue, validated.getValue());
-	}
-
-	public void testSetValue_PropagatesToTarget() {
-		validated.setValue(newValue);
-
-		assertEquals(newValue, validated.getValue());
-		assertEquals(newValue, target.getValue());
-	}
-
-	public void testSetValue_PropagatesToTargetWhileStatusNotOK() {
-		validationStatus.setValue(ValidationStatus.error("error"));
-
-		validated.setValue(newValue);
-
-		assertEquals(newValue, validated.getValue());
-		assertEquals(newValue, target.getValue());
-		assertFalse(validated.isStale());
-	}
-
-	public void testSetValue_CachesGetValueFromTarget() {
-		Object overrideValue = target.overrideValue = new Object();
-
-		assertEquals(oldValue, validated.getValue());
-		assertEquals(oldValue, target.getValue());
-
-		validationStatus.setValue(ValidationStatus.error("error"));
-
-		validated.setValue(newValue);
-
-		assertEquals(overrideValue, target.getValue());
-		assertEquals(overrideValue, validated.getValue());
-	}
-
-	public void testSetValue_SingleValueChangeEvent() {
-		ValueChangeEventTracker tracker = ValueChangeEventTracker
-				.observe(validated);
-
-		validated.setValue(newValue);
-		assertEquals(1, tracker.count);
-		assertEquals(oldValue, tracker.event.diff.getOldValue());
-		assertEquals(newValue, tracker.event.diff.getNewValue());
-	}
-
-	public void testSetValue_SingleValueChangeEventWhileInvalid() {
-		ValueChangeEventTracker tracker = ValueChangeEventTracker
-				.observe(validated);
-
-		validationStatus.setValue(ValidationStatus.error("error"));
-		validated.setValue(newValue);
-		assertEquals(1, tracker.count);
-		assertEquals(oldValue, tracker.event.diff.getOldValue());
-		assertEquals(newValue, tracker.event.diff.getNewValue());
-	}
-
-	public void testSetValue_FiresSingleValueChangeEventWithTargetOverride() {
-		ValueChangeEventTracker tracker = ValueChangeEventTracker
-				.observe(validated);
-
-		Object overrideValue = new Object();
-		target.overrideValue = overrideValue;
-		validated.setValue(newValue);
-
-		assertEquals(1, tracker.count);
-		assertEquals(oldValue, tracker.event.diff.getOldValue());
-		assertEquals(overrideValue, tracker.event.diff.getNewValue());
-	}
-
-	public void testSetValue_FiresValueChangeEvent() {
-		ValueChangeEventTracker targetTracker = ValueChangeEventTracker
-				.observe(target);
-		ValueChangeEventTracker validatedTracker = ValueChangeEventTracker
-				.observe(validated);
-
-		validated.setValue(newValue);
-
-		assertEquals(1, targetTracker.count);
-		assertEquals(oldValue, targetTracker.event.diff.getOldValue());
-		assertEquals(newValue, targetTracker.event.diff.getNewValue());
-
-		assertEquals(1, validatedTracker.count);
-		assertEquals(oldValue, validatedTracker.event.diff.getOldValue());
-		assertEquals(newValue, validatedTracker.event.diff.getNewValue());
-	}
-
-	public void testIsStale_MatchTargetStaleness() {
-		target.forceStale = true;
-		target.fireStale();
-
-		assertTrue(target.isStale());
-		assertTrue(validated.isStale());
-
-		target.setValue(newValue);
-
-		assertTrue(target.isStale());
-		assertTrue(validated.isStale());
-	}
-
-	static class ObservableValueStub extends AbstractObservableValue {
-		private Object value;
-		private boolean stale;
-		private boolean forceStale;
-
-		Object overrideValue;
-
-		public ObservableValueStub(Realm realm) {
-			super(realm);
-		}
-
-		protected Object doGetValue() {
-			return value;
-		}
-
-		protected void doSetValue(Object value) {
-			Object oldValue = this.value;
-			if (overrideValue != null)
-				value = overrideValue;
-			this.value = value;
-			stale = forceStale;
-			fireValueChange(Diffs.createValueDiff(oldValue, value));
-		}
-
-		public Object getValueType() {
-			return Object.class;
-		}
-
-		protected void fireStale() {
-			stale = true;
-			super.fireStale();
-		}
-
-		public boolean isStale() {
-			return stale;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ValidatedObservableValueTest.class.getName());
-		suite.addTestSuite(ValidatedObservableValueTest.class);
-		suite.addTest(MutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableValueContractDelegate {
-		private Object valueType = new Object();
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ValidatedObservableValueStub(realm, valueType);
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return new Object();
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return valueType;
-		}
-
-		public void change(IObservable observable) {
-			ValidatedObservableValueStub validated = (ValidatedObservableValueStub) observable;
-			IObservableValue target = validated.target;
-			target.setValue(createValue(validated));
-		}
-	}
-
-	static class ValidatedObservableValueStub extends ValidatedObservableValue {
-		final IObservableValue target;
-		final IObservableValue validationStatus;
-
-		ValidatedObservableValueStub(Realm realm, Object valueType) {
-			this(new WritableValue(realm, null, valueType), new WritableValue(
-					realm, ValidationStatus.ok(), IStatus.class));
-		}
-
-		private ValidatedObservableValueStub(IObservableValue target,
-				IObservableValue validationStatus) {
-			super(target, validationStatus);
-			this.target = target;
-			this.validationStatus = validationStatus;
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableListTest.java
deleted file mode 100644
index 264ba34..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableListTest.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 208858, 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable.masterdetail;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableList;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jface.databinding.conformance.MutableObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- */
-public class DetailObservableListTest extends AbstractDefaultRealmTestCase {
-	/**
-	 * Asserts the use case of specifying null on construction for the detail
-	 * type of the detail list.
-	 * 
-	 * @throws Exception
-	 */
-	public void testElementTypeNull() throws Exception {
-		WritableValue observableValue = new WritableValue(new WritableList(new ArrayList(), Object.class), null);
-
-		class Factory implements IObservableFactory {
-			Object type = Object.class;
-
-			public IObservable createObservable(Object target) {
-				return new WritableList(new ArrayList(), type);
-			}
-		}
-
-		Factory factory = new Factory();
-		DetailObservableList detailObservable = new DetailObservableList(
-				factory, observableValue, null);
-		assertNull(detailObservable.getElementType());
-
-		//change the type returned from the factory
-		factory.type = String.class;
-		observableValue.setValue(new WritableList(new ArrayList(), String.class));
-		assertNull("element type not null", detailObservable.getElementType());
-	}
-	
-	/**
-	 * Asserts that you can't change the type across multiple inner observables.
-	 * 
-	 * @throws Exception
-	 */
-	public void testElementTypeNotNull() throws Exception {
-		WritableValue observableValue = new WritableValue(new WritableList(new ArrayList(), Object.class),
-				null);
-
-		class Factory implements IObservableFactory {
-			Object type = Object.class;
-
-			public IObservable createObservable(Object target) {
-				return new WritableList(new ArrayList(), type);
-			}
-		}
-
-		Factory factory = new Factory();
-		DetailObservableList detailObservable = new DetailObservableList(factory,
-				observableValue, Object.class);
-		assertEquals(factory.type, detailObservable.getElementType());
-
-		try {
-			factory.type = String.class;
-			observableValue.setValue(new WritableList(Arrays
-					.asList(new Object[] { new Object() }), String.class));
-			fail("if an element type is set this cannot be changed");
-		} catch (AssertionFailedException e) {
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(DetailObservableListTest.class.getName());
-		suite.addTestSuite(DetailObservableListTest.class);
-		suite.addTest(MutableObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		Object elementType = Object.class;
-
-		public IObservableCollection createObservableCollection(
-				final Realm realm, final int elementCount) {
-
-			IObservableValue master = new WritableValue(realm, new Integer(
-					elementCount), Integer.class);
-			IObservableFactory factory = new FactoryStub(realm, elementType);
-			return new DetailObservableListStub(factory, master, elementType);
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-
-		public void change(IObservable observable) {
-			final IObservableValue master = ((DetailObservableListStub)observable).master;
-			master.setValue(new Integer(((Integer)master.getValue()).intValue()+1));
-		}
-	}
-
-	static class FactoryStub implements IObservableFactory {
-		private Realm realm;
-		private Object elementType;
-
-		FactoryStub(Realm realm, Object elementType) {
-			this.realm = realm;
-			this.elementType = elementType;
-		}
-
-		Object type = Object.class;
-
-		public IObservable createObservable(Object target) {
-			int elementCount = ((Integer) target).intValue();
-			final ArrayList wrappedList = new ArrayList();
-			for (int i = 0; i < elementCount; i++)
-				wrappedList.add(new Object());
-			return new WritableList(realm, wrappedList, elementType);
-		}
-	}
-
-	static class DetailObservableListStub extends DetailObservableList {
-		IObservableValue master;
-		DetailObservableListStub(IObservableFactory factory,
-				IObservableValue master, Object elementType) {
-			super(factory, master, elementType);
-			this.master = master;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableSetTest.java
deleted file mode 100644
index b4edbd4..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableSetTest.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable.masterdetail;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jface.databinding.conformance.MutableObservableSetContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- * 
- */
-public class DetailObservableSetTest extends AbstractDefaultRealmTestCase {
-	/**
-	 * Asserts the use case of specifying null on construction for the detail
-	 * type of the detail set.
-	 * 
-	 * @throws Exception
-	 */
-	public void testElementTypeNull() throws Exception {
-		WritableValue observableValue = new WritableValue(new WritableSet(new HashSet(), Object.class),
-				null);
-
-		class Factory implements IObservableFactory {
-			Object type;
-
-			public IObservable createObservable(Object target) {
-				return new WritableSet(new HashSet(), type);
-			}
-		}
-
-		Factory factory = new Factory();
-		DetailObservableSet detailObservable = new DetailObservableSet(factory,
-				observableValue, null);
-		assertNull(detailObservable.getElementType());
-
-		factory.type = Object.class;
-		observableValue.setValue(new WritableSet(Arrays
-				.asList(new Object[] { new Object() }), String.class));
-		assertNull("element type not null", detailObservable.getElementType());
-
-		factory.type = String.class;
-		// set the value again to ensure that the observable doesn't update the
-		// element type with that of the new element type
-		observableValue.setValue(new WritableSet(Arrays
-				.asList(new String[] { "1" }), Object.class));
-		assertNull("element type not null", detailObservable.getElementType());
-	}
-
-	/**
-	 * Asserts that you can't change the type across multiple inner observables.
-	 * 
-	 * @throws Exception
-	 */
-	public void testElementTypeNotNull() throws Exception {
-		WritableValue observableValue = new WritableValue(new WritableSet(new HashSet(), Object.class),
-				null);
-
-		class Factory implements IObservableFactory {
-			Object type = Object.class;
-
-			public IObservable createObservable(Object target) {
-				return new WritableSet(new HashSet(), type);
-			}
-		}
-
-		Factory factory = new Factory();
-		DetailObservableSet detailObservable = new DetailObservableSet(factory,
-				observableValue, Object.class);
-		assertEquals(factory.type, detailObservable.getElementType());
-
-		try {
-			factory.type = String.class;
-			observableValue.setValue(new WritableSet(Arrays
-					.asList(new Object[] { new Object() }), String.class));
-			fail("if an element type is set this cannot be changed");
-		} catch (AssertionFailedException e) {
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(DetailObservableSetTest.class.getName());
-		suite.addTestSuite(DetailObservableSetTest.class);
-		suite.addTest(MutableObservableSetContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		Object elementType = Object.class;
-
-		public IObservableCollection createObservableCollection(
-				final Realm realm, final int elementCount) {
-
-			IObservableValue master = new WritableValue(realm, new Integer(
-					elementCount), Integer.class);
-			IObservableFactory factory = new FactoryStub(realm, elementType);
-			return new DetailObservableSetStub(factory, master, elementType);
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return elementType;
-		}
-
-		public void change(IObservable observable) {
-			final IObservableValue master = ((DetailObservableSetStub) observable).master;
-			master.setValue(new Integer(((Integer) master.getValue())
-					.intValue() + 1));
-		}
-	}
-
-	static class FactoryStub implements IObservableFactory {
-		private Realm realm;
-		private Object elementType;
-
-		FactoryStub(Realm realm, Object elementType) {
-			this.realm = realm;
-			this.elementType = elementType;
-		}
-
-		Object type = Object.class;
-
-		public IObservable createObservable(Object target) {
-			int elementCount = ((Integer) target).intValue();
-			final Set wrappedSet = new HashSet();
-			for (int i = 0; i < elementCount; i++)
-				wrappedSet.add(new Object());
-			return new WritableSet(realm, wrappedSet, elementType);
-		}
-	}
-
-	static class DetailObservableSetStub extends DetailObservableSet {
-		IObservableValue master;
-
-		DetailObservableSetStub(IObservableFactory factory,
-				IObservableValue master, Object elementType) {
-			super(factory, master, elementType);
-			this.master = master;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableValueTest.java
deleted file mode 100755
index 35abc20..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/observable/masterdetail/DetailObservableValueTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Brad Reynolds - bug 147515
- *     Matthew Hall - bugs 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.observable.masterdetail;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableValue;
-import org.eclipse.jface.databinding.conformance.MutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.2
- */
-public class DetailObservableValueTest extends AbstractDefaultRealmTestCase {
-	private WritableValue outerObservable;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		outerObservable = new WritableValue();
-	}
-
-	public void testSetValue() throws Exception {
-		WritableValueFactory factory = new WritableValueFactory();
-		outerObservable.setValue("");
-
-		IObservableValue detailObservable = MasterDetailObservables
-				.detailValue(outerObservable, factory, null);
-		WritableValue innerObservable = factory.innerObservable;
-		Object value = new Object();
-
-		assertFalse(value.equals(innerObservable.getValue()));
-		detailObservable.setValue(value);
-		assertEquals("inner value", value, innerObservable.getValue());
-	}
-
-	public void testGetValueType() throws Exception {
-		DetailObservableValue detailObservable = new DetailObservableValue(outerObservable, null, String.class);
-		assertEquals(String.class, detailObservable.getValueType());
-	}
-	
-	/**
-	 * Asserts that when a null value type is set for the detail observable no
-	 * type checking is performed and the value type is always <code>null</code>.
-	 */
-	public void testGetValueTypeNullValueType() throws Exception {
-		WritableValueFactory factory = new WritableValueFactory();
-		DetailObservableValue detailObservable = new DetailObservableValue(
-				outerObservable, factory, null);
-		assertNull(detailObservable.getValueType());
-		factory.type = String.class;
-
-		// force the inner observable to be recreated
-		outerObservable.setValue("1");
-		assertNull("value type should be ignored", detailObservable.getValueType());
-		
-		factory.type = Object.class;
-
-		// force the inner observable to be recreated
-		outerObservable.setValue("2");
-		assertNull("value type should be ignored", detailObservable.getValueType());
-	}
-	
-	/**
-	 * Factory that creates WritableValues with the target as the value.
-	 */
-	static class WritableValueFactory implements IObservableFactory {
-		Realm realm;
-		WritableValue innerObservable;
-		Object type;
-
-		public IObservable createObservable(Object target) {
-			return innerObservable = new WritableValue(realm == null ? Realm
-					.getDefault() : realm, target, type);
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(DetailObservableValueTest.class.getName());
-		suite.addTestSuite(DetailObservableValueTest.class);
-		suite.addTest(MutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class DetailObservableValueStub extends
-			DetailObservableValue {
-		IObservableValue outerObservableValue;
-
-		DetailObservableValueStub(IObservableValue outerObservableValue,
-				IObservableFactory valueFactory, Object detailType) {
-			super(outerObservableValue, valueFactory, detailType);
-			this.outerObservableValue = outerObservableValue;
-		}
-	}
-
-	private static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Object valueType;
-		private Realm previousRealm;
-
-		public void setUp() {
-			super.setUp();
-			valueType = new Object();
-			previousRealm = Realm.getDefault();
-
-			RealmTester.setDefault(new CurrentRealm());
-		}
-
-		public void tearDown() {
-			RealmTester.setDefault(previousRealm);
-			super.tearDown();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			WritableValueFactory valueFactory = new WritableValueFactory();
-			valueFactory.realm = realm;
-			valueFactory.type = valueType;
-			WritableValue masterObservableValue = new WritableValue(realm,
-					new Object(), null);
-			return new DetailObservableValueStub(masterObservableValue,
-					valueFactory, valueType);
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return new Object();
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return valueType;
-		}
-
-		public void change(IObservable observable) {
-			DetailObservableValueStub value = (DetailObservableValueStub) observable;
-			value.outerObservableValue.setValue(createValue(value));
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/AbstractStringToNumberValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/AbstractStringToNumberValidatorTest.java
deleted file mode 100644
index cf58d35..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/AbstractStringToNumberValidatorTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.internal.databinding.validation.AbstractStringToNumberValidator;
-import org.eclipse.core.internal.databinding.validation.NumberFormatConverter;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Tests for AbstractStringToNumberValidator. Most tests should be included in
- * StringToNumberValidatorTestHarness. This class is for the edge cases.
- * 
- * @since 3.2
- */
-public class AbstractStringToNumberValidatorTest extends TestCase {
-	/**
-	 * Test for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=194353.
-	 * 
-	 * @throws Exception
-	 */
-	public void testErrorMessagesAreNotCached() throws Exception {
-		NumberFormatConverter c = StringToNumberConverter.toInteger(false);
-		ValidatorStub v = new ValidatorStub(c);
-
-		IStatus status1 = v.validate("1a");
-		assertEquals(IStatus.ERROR, status1.getSeverity());
-
-		IStatus status2 = v.validate("2b");
-		assertEquals(IStatus.ERROR, status2.getSeverity());
-
-		assertFalse("messages should not be equal", status1.getMessage().equals(status2.getMessage()));
-	}
-	
-	static class ValidatorStub extends AbstractStringToNumberValidator {
-		ValidatorStub(NumberFormatConverter c) {
-			super(c, new Integer(Integer.MIN_VALUE), new Integer(Integer.MAX_VALUE));
-		}
-		
-		protected boolean isInRange(Number number) {
-			return true;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToByteValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToByteValidatorTest.java
deleted file mode 100644
index 88f2750..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToByteValidatorTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToByteConverter;
-import org.eclipse.core.internal.databinding.validation.NumberToByteValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToNumberValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToByteValidatorTest extends NumberToNumberValidatorTestHarness {
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Integer(Byte.MAX_VALUE + 1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToBoxedTypeValidator()
-	 */
-	protected NumberToNumberValidator doGetToBoxedTypeValidator(Class fromType) {
-		NumberToByteConverter converter = new NumberToByteConverter(NumberFormat.getInstance(),
-				fromType, false);
-		return new NumberToByteValidator(converter);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToPrimitiveValidator()
-	 */
-	protected NumberToNumberValidator doGetToPrimitiveValidator(Class fromType) {
-		NumberToByteConverter converter = new NumberToByteConverter(NumberFormat.getInstance(),
-				fromType, true);
-		return new NumberToByteValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToDoubleValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToDoubleValidatorTest.java
deleted file mode 100644
index 38c7a29..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToDoubleValidatorTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import java.math.BigDecimal;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToDoubleConverter;
-import org.eclipse.core.internal.databinding.validation.NumberToDoubleValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToNumberValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToDoubleValidatorTest extends
-		NumberToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new BigDecimal(Double.MAX_VALUE).add(new BigDecimal(Double.MAX_VALUE));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToBoxedTypeValidator(Class fromType) {
-		NumberToDoubleConverter converter = new NumberToDoubleConverter(NumberFormat.getInstance(), fromType, false);
-		return new NumberToDoubleValidator(converter);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToPrimitiveValidator(Class fromType) {
-		NumberToDoubleConverter converter = new NumberToDoubleConverter(NumberFormat.getInstance(), fromType, true);
-		return new NumberToDoubleValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToFloatValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToFloatValidatorTest.java
deleted file mode 100644
index f2f8a58..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToFloatValidatorTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToFloatConverter;
-import org.eclipse.core.internal.databinding.validation.NumberToFloatValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToNumberValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToFloatValidatorTest extends
-		NumberToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Double(Double.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToBoxedTypeValidator(Class fromType) {
-		NumberToFloatConverter converter = new NumberToFloatConverter(NumberFormat.getInstance(), fromType, false);
-		return new NumberToFloatValidator(converter);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToPrimitiveValidator(Class fromType) {
-		NumberToFloatConverter converter = new NumberToFloatConverter(NumberFormat.getInstance(), fromType, true);
-		return new NumberToFloatValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToIntegerValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToIntegerValidatorTest.java
deleted file mode 100644
index 37015a2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToIntegerValidatorTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToIntegerConverter;
-import org.eclipse.core.internal.databinding.validation.NumberToIntegerValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToNumberValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToIntegerValidatorTest extends
-		NumberToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Long((long) Integer.MAX_VALUE + 1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToBoxedTypeValidator(Class fromType) {
-		NumberToIntegerConverter converter = new NumberToIntegerConverter(NumberFormat.getInstance(), fromType, false);
-		return new NumberToIntegerValidator(converter);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToPrimitiveValidator(Class fromType) {
-		NumberToIntegerConverter converter = new NumberToIntegerConverter(NumberFormat.getInstance(), fromType, true);
-		return new NumberToIntegerValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToLongValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToLongValidatorTest.java
deleted file mode 100644
index 7821d75..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToLongValidatorTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToLongConverter;
-import org.eclipse.core.internal.databinding.validation.NumberToLongValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToNumberValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToLongValidatorTest extends
-		NumberToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Double(Double.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToBoxedTypeValidator(Class fromType) {
-		NumberToLongConverter converter = new NumberToLongConverter(NumberFormat.getInstance(), fromType, false);
-		return new NumberToLongValidator(converter);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToPrimitiveValidator(Class fromType) {
-		NumberToLongConverter converter = new NumberToLongConverter(NumberFormat.getInstance(), fromType, true);
-		return new NumberToLongValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToNumberValidatorTestHarness.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToNumberValidatorTestHarness.java
deleted file mode 100644
index 817241c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToNumberValidatorTestHarness.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToNumberValidator;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @since 1.1
- */
-public abstract class NumberToNumberValidatorTestHarness extends TestCase {
-	protected abstract NumberToNumberValidator doGetToPrimitiveValidator(Class fromType);
-	protected abstract NumberToNumberValidator doGetToBoxedTypeValidator(Class fromType);
-	protected abstract Number doGetOutOfRangeNumber();
-	
-	public void testValidateNullForBoxedTypeIsOK() throws Exception {
-		IStatus status = doGetToBoxedTypeValidator(Integer.class).validate(null);
-		assertTrue(status.isOK());
-	}
-
-	public void testValidateNullForPrimitiveThrowsIllegalArgumentException()
-			throws Exception {
-		IValidator validator = doGetToPrimitiveValidator(Integer.class);
-		
-		if (validator == null) {
-			//return if a primitive validator does not exist (e.g. BigInteger, BigDecimal, etc.)
-			return;
-		}
-		
-		try {
-			doGetToPrimitiveValidator(Integer.class).validate(null);
-			
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	public void testValidReturnsOK() throws Exception {
-		assertTrue(doGetToBoxedTypeValidator(Integer.class).validate(new Integer(1)).isOK());
-	}
-
-	public void testOutOfRangeReturnsError() throws Exception {
-		Number number = doGetOutOfRangeNumber();
-		
-		if (number == null) {
-			//return if there is no value out of range (e.g. BigInteger, BigDecimal, etc.)
-			return;
-		}
-		
-		IStatus status = doGetToBoxedTypeValidator(Integer.class).validate(number);
-		
-		assertEquals(IStatus.ERROR, status.getSeverity());
-		assertTrue(status.getMessage() != null);
-	}
-	
-	public void testValidateIncorrectTypeThrowsIllegalArgumentException() throws Exception {
-		try {
-			doGetToBoxedTypeValidator(Integer.class).validate("");
-			fail("exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToShortValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToShortValidatorTest.java
deleted file mode 100644
index df91593..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToShortValidatorTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToShortConverter;
-import org.eclipse.core.internal.databinding.validation.NumberToNumberValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToShortValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToShortValidatorTest extends NumberToNumberValidatorTestHarness {
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return new Integer(Short.MAX_VALUE + 1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToBoxedTypeValidator(Class fromType) {
-		NumberToShortConverter converter = new NumberToShortConverter(NumberFormat.getInstance(),
-				Integer.class, false);
-		return new NumberToShortValidator(converter);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToPrimitiveValidator(Class fromType) {
-		NumberToShortConverter converter = new NumberToShortConverter(NumberFormat.getInstance(),
-				Integer.class, true);
-		return new NumberToShortValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToUnboundedNumberValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToUnboundedNumberValidatorTest.java
deleted file mode 100644
index da5fa74..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/NumberToUnboundedNumberValidatorTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.internal.databinding.conversion.NumberToBigIntegerConverter;
-import org.eclipse.core.internal.databinding.validation.NumberToNumberValidator;
-import org.eclipse.core.internal.databinding.validation.NumberToUnboundedNumberValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class NumberToUnboundedNumberValidatorTest extends
-		NumberToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetOutOfRangeNumber()
-	 */
-	protected Number doGetOutOfRangeNumber() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToBoxedTypeValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToBoxedTypeValidator(Class fromType) {
-		NumberToBigIntegerConverter converter = new NumberToBigIntegerConverter(NumberFormat.getInstance(), fromType);
-		return new NumberToUnboundedNumberValidator(converter);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.NumberToNumberValidatorTestHarness#doGetToPrimitiveValidator(java.lang.Class)
-	 */
-	protected NumberToNumberValidator doGetToPrimitiveValidator(Class fromType) {
-		return null;  // primitive BigInteger does not exist
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToByteValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToByteValidatorTest.java
deleted file mode 100644
index 7e33bc2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToByteValidatorTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.internal.databinding.conversion.StringToByteConverter;
-import org.eclipse.core.internal.databinding.validation.StringToByteValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToByteValidatorTest extends
-		StringToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInRangeNumber()
-	 */
-	protected Number getInRangeNumber() {
-		return new Byte(Byte.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInvalidString()
-	 */
-	protected String getInvalidString() {
-		return "1.1";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getOutOfRangeNumber()
-	 */
-	protected Number getOutOfRangeNumber() {
-		return new Integer(Byte.MAX_VALUE + 1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupNumberFormat()
-	 */
-	protected NumberFormat setupNumberFormat() {
-		return NumberFormat.getIntegerInstance();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupValidator(com.ibm.icu.text.NumberFormat)
-	 */
-	protected IValidator setupValidator(NumberFormat numberFormat) {
-		StringToByteConverter converter = StringToByteConverter.toByte(numberFormat, false);
-		return new StringToByteValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToCharacterValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToCharacterValidatorTest.java
deleted file mode 100644
index ca753fd..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToCharacterValidatorTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) Matt Carter and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matt Carter - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.databinding.conversion.StringToCharacterConverter;
-import org.eclipse.core.internal.databinding.validation.StringToCharacterValidator;
-
-/**
- * @since 1.1
- */
-public class StringToCharacterValidatorTest extends TestCase {
-
-	private StringToCharacterValidator validator;
-	private StringToCharacterValidator primitiveValidator;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		StringToCharacterConverter converter = StringToCharacterConverter
-				.toCharacter(false);
-		StringToCharacterConverter primitiveConverter = StringToCharacterConverter
-				.toCharacter(true);
-		validator = new StringToCharacterValidator(converter);
-		primitiveValidator = new StringToCharacterValidator(primitiveConverter);
-	}
-
-	public void testValidatesCharacter() throws Exception {
-		assertTrue(validator.validate("X").isOK());
-	}
-
-	public void testValidatesCharacterPrimitive() throws Exception {
-		assertTrue(primitiveValidator.validate("X").isOK());
-	}
-
-	public void testNullCharacterIsValid() throws Exception {
-		assertTrue(validator.validate(null).isOK());
-	}
-
-	public void testEmptyStringCharacterIsValid() throws Exception {
-		assertTrue(validator.validate("").isOK());
-	}
-
-	public void testNullCharacterIsInvalidForPrimitive() throws Exception {
-		assertFalse(primitiveValidator.validate(null).isOK());
-	}
-
-	public void testNonStringIsInvalid() throws Exception {
-		assertFalse(primitiveValidator.validate(new Integer(4)).isOK());
-	}
-
-	public void testLongerThanOneCharacterIsInvalid() throws Exception {
-		assertFalse(primitiveValidator.validate("XYZ").isOK());
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToDoubleValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToDoubleValidatorTest.java
deleted file mode 100644
index 71d6f3f..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToDoubleValidatorTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import java.math.BigDecimal;
-
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.internal.databinding.validation.StringToDoubleValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToDoubleValidatorTest extends
-		StringToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInRangeNumber()
-	 */
-	protected Number getInRangeNumber() {
-		return new Double(1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInvalidString()
-	 */
-	protected String getInvalidString() {
-		return "1a";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getOutOfRangeNumber()
-	 */
-	protected Number getOutOfRangeNumber() {
-		BigDecimal decimal = new BigDecimal(Double.MAX_VALUE);
-		return decimal.add(new BigDecimal(Double.MAX_VALUE));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupNumberFormat()
-	 */
-	protected NumberFormat setupNumberFormat() {
-		return NumberFormat.getInstance();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupValidator(com.ibm.icu.text.NumberFormat)
-	 */
-	protected IValidator setupValidator(NumberFormat numberFormat) {
-		StringToNumberConverter converter = StringToNumberConverter.toDouble(numberFormat, false);
-		return new StringToDoubleValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToFloatValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToFloatValidatorTest.java
deleted file mode 100644
index d7ec032..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToFloatValidatorTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.internal.databinding.validation.StringToFloatValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToFloatValidatorTest extends
-		StringToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInRangeNumber()
-	 */
-	protected Number getInRangeNumber() {
-		return new Float(1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInvalidString()
-	 */
-	protected String getInvalidString() {
-		return "1a";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getOutOfRangeNumber()
-	 */
-	protected Number getOutOfRangeNumber() {
-		return new Double(Double.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupNumberFormat()
-	 */
-	protected NumberFormat setupNumberFormat() {
-		return NumberFormat.getInstance();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupValidator(com.ibm.icu.text.NumberFormat)
-	 */
-	protected IValidator setupValidator(NumberFormat numberFormat) {
-		StringToNumberConverter converter = StringToNumberConverter.toFloat(numberFormat, false);
-		return new StringToFloatValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToIntegerValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToIntegerValidatorTest.java
deleted file mode 100644
index d854d0b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToIntegerValidatorTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.internal.databinding.validation.StringToIntegerValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToIntegerValidatorTest extends
-		StringToNumberValidatorTestHarness {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupNumberFormat()
-	 */
-	protected NumberFormat setupNumberFormat() {
-		return NumberFormat.getIntegerInstance();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupValidator(com.ibm.icu.text.NumberFormat)
-	 */
-	protected IValidator setupValidator(NumberFormat numberFormat) {
-		StringToNumberConverter converter = StringToNumberConverter.toInteger(
-				numberFormat, false);
-		return new StringToIntegerValidator(converter);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInRangeNumber()
-	 */
-	protected Number getInRangeNumber() {
-		return new Integer(1);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInvalidString()
-	 */
-	protected String getInvalidString() {
-		return "1.1";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getOutOfRangeNumber()
-	 */
-	protected Number getOutOfRangeNumber() {
-		return new Double(Double.MAX_VALUE);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToLongValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToLongValidatorTest.java
deleted file mode 100644
index 97f7647..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToLongValidatorTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.internal.databinding.validation.NumberFormatConverter;
-import org.eclipse.core.internal.databinding.validation.StringToLongValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToLongValidatorTest extends StringToNumberValidatorTestHarness {
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInRangeNumber()
-	 */
-	protected Number getInRangeNumber() {
-		return new Long(1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInvalidString()
-	 */
-	protected String getInvalidString() {
-		return "1.1";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getOutOfRangeNumber()
-	 */
-	protected Number getOutOfRangeNumber() {
-		return new Double(Double.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupNumberFormat()
-	 */
-	protected NumberFormat setupNumberFormat() {
-		return NumberFormat.getIntegerInstance();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupValidator()
-	 */
-	protected IValidator setupValidator(NumberFormat numberFormat) {
-		NumberFormatConverter converter = StringToNumberConverter.toInteger(numberFormat, false);
-		return new StringToLongValidator(converter);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToNumberValidatorTestHarness.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToNumberValidatorTestHarness.java
deleted file mode 100644
index 9e62ec3..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToNumberValidatorTestHarness.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.runtime.IStatus;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * A test harness for testing string to number validators.
- * 
- * @since 1.1
- */
-public abstract class StringToNumberValidatorTestHarness extends TestCase {
-	private NumberFormat numberFormat;
-	private IValidator validator;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		numberFormat = setupNumberFormat();
-		validator = setupValidator(numberFormat);
-	}
-	
-	/**
-	 * Invoked during setup to instantiate the number format.
-	 * 
-	 * @return number format
-	 */
-	protected abstract NumberFormat setupNumberFormat();
-	
-	/**
-	 * Invoked during setup to instantiate the validator.
-	 * 
-	 * @param numberFormat
-	 * @return validator
-	 */
-	protected abstract IValidator setupValidator(NumberFormat numberFormat);
-
-	/**
-	 * Returns a string value that will not parse.
-	 * 
-	 * @return string
-	 */
-	protected abstract String getInvalidString();
-
-	/**
-	 * Returns a number value that is out of range for the validator.
-	 * 
-	 * @return number
-	 */
-	protected abstract Number getOutOfRangeNumber();
-	
-	/**
-	 * Returns a number that is in range for the validator.
-	 * 
-	 * @return number
-	 */
-	protected abstract Number getInRangeNumber();
-	
-	public void testInvalidValueReturnsError() throws Exception {
-		IStatus status = validator.validate(getInvalidString());
-		assertEquals("error severify", IStatus.ERROR, status.getSeverity());
-		assertNotNull("message not null", status.getMessage());
-	}
-	
-	public void testOutOfRangeValueReturnsError() throws Exception {
-		String string = numberFormat.format(getOutOfRangeNumber());
-		IStatus status = validator.validate(string);
-		assertEquals(IStatus.ERROR, status.getSeverity());
-		assertNotNull(status.getMessage());
-	}
-
-	public void testValidateValidValue() throws Exception {
-		String string = numberFormat.format(getInRangeNumber());
-		assertTrue(validator.validate(string).isOK());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToShortValidatorTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToShortValidatorTest.java
deleted file mode 100644
index 9de5b38..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/internal/databinding/validation/StringToShortValidatorTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.tests.internal.databinding.validation;
-
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.internal.databinding.conversion.StringToShortConverter;
-import org.eclipse.core.internal.databinding.validation.StringToShortValidator;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * @since 1.1
- */
-public class StringToShortValidatorTest extends
-		StringToNumberValidatorTestHarness {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInRangeNumber()
-	 */
-	protected Number getInRangeNumber() {
-		return new Short(Short.MAX_VALUE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getInvalidString()
-	 */
-	protected String getInvalidString() {
-		return "1.1";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#getOutOfRangeNumber()
-	 */
-	protected Number getOutOfRangeNumber() {
-		return new Integer(Short.MAX_VALUE + 1);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupNumberFormat()
-	 */
-	protected NumberFormat setupNumberFormat() {
-		return NumberFormat.getIntegerInstance();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.tests.internal.databinding.validation.StringToNumberValidatorTestHarness#setupValidator(com.ibm.icu.text.NumberFormat)
-	 */
-	protected IValidator setupValidator(NumberFormat numberFormat) {
-		StringToShortConverter converter = StringToShortConverter.toShort(numberFormat, false);
-		return new StringToShortValidator(converter);
-	}
-
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/AbstractDefaultRealmTestCase.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/AbstractDefaultRealmTestCase.java
deleted file mode 100644
index c6fd4a9..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/AbstractDefaultRealmTestCase.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Base class that sets the default realm to be the SWT realm.
- * 
- * @since 3.3
- */
-public class AbstractDefaultRealmTestCase extends TestCase {
-	private Realm previousRealm;
-
-	/**
-	 * Sets the default realm to be the realm for the default display.
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		previousRealm = Realm.getDefault();
-
-		Display display = Display.getCurrent() != null
-				&& !Display.getCurrent().isDisposed() ? Display.getCurrent()
-				: Display.getDefault();
-		RealmTester.setDefault(SWTObservables.getRealm(display));
-	}
-
-	/**
-	 * Removes the default realm.
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		RealmTester.setDefault(previousRealm);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/AbstractSWTTestCase.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/AbstractSWTTestCase.java
deleted file mode 100644
index 32f0cdb..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/AbstractSWTTestCase.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Ashley Cambrell - bug 198904
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding;
-
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Abstract test case that handles disposing of the Shell after each test.
- * 
- * @since 1.1
- */
-public abstract class AbstractSWTTestCase extends AbstractDefaultRealmTestCase {
-	private Shell shell;
-	
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		
-		if (shell != null && !shell.isDisposed()) {
-			shell.dispose();
-		}
-	}
-	
-	/**
-	 * Returns a Shell to be used in a test.
-	 * 
-	 * @return shell
-	 */
-	protected Shell getShell() {
-		if (shell == null || shell.isDisposed()) {
-			shell = new Shell();
-		}
-		
-		return shell;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSetup.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSetup.java
deleted file mode 100644
index 7ef5f67..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSetup.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding;
-
-import java.util.Locale;
-
-import org.eclipse.core.databinding.util.ILogger;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.IStatus;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-
-/**
- * @since 3.2
- * 
- */
-public class BindingTestSetup extends TestSetup {
-
-	private Locale oldLocale;
-	private ILogger oldLogger;
-	private org.eclipse.jface.util.ILogger oldJFaceLogger;
-
-	public BindingTestSetup(Test test) {
-		super(test);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		oldLocale = Locale.getDefault();
-		Locale.setDefault(Locale.US);
-		oldLogger = Policy.getLog();
-		Policy.setLog(new ILogger() {
-			public void log(IStatus status) {
-				// we are not expecting anything in the log while we test.
-				if (status.getException() != null) {
-					throw new RuntimeException(status.getException());
-				}
-				fail();
-			}
-		});
-		oldJFaceLogger = org.eclipse.jface.util.Policy.getLog();
-		org.eclipse.jface.util.Policy.setLog(new org.eclipse.jface.util.ILogger(){
-			public void log(IStatus status) {
-				// we are not expecting anything in the log while we test.
-				if (status.getException() != null) {
-					throw new RuntimeException(status.getException());
-				}
-				fail();
-			}
-		});
-	}
-
-	protected void tearDown() throws Exception {
-		Locale.setDefault(oldLocale);
-		Policy.setLog(oldLogger);
-		org.eclipse.jface.util.Policy.setLog(oldJFaceLogger);
-		super.tearDown();
-	}
-}
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 cc7a99e..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/BindingTestSuite.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bugs 137877, 152543, 152540, 116920, 164247, 164653,
- *                     159768, 170848, 147515
- *     Bob Smith - bug 198880
- *     Ashley Cambrell - bugs 198903, 198904
- *     Matthew Hall - bugs 210115, 212468, 212223, 206839, 208858, 208322,
- *                    212518, 215531, 221351, 184830, 213145, 218269, 239015
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.tests.databinding.AggregateValidationStatusTest;
-import org.eclipse.core.tests.databinding.DatabindingContextTest;
-import org.eclipse.core.tests.databinding.ListBindingTest;
-import org.eclipse.core.tests.databinding.ObservablesManagerTest;
-import org.eclipse.core.tests.databinding.UpdateStrategyTest;
-import org.eclipse.core.tests.databinding.UpdateValueStrategyTest;
-import org.eclipse.core.tests.databinding.ValueBindingTest;
-import org.eclipse.core.tests.databinding.beans.BeansObservablesTest;
-import org.eclipse.core.tests.databinding.beans.PojoObservablesTest;
-import org.eclipse.core.tests.databinding.conversion.NumberToStringConverterTest;
-import org.eclipse.core.tests.databinding.conversion.StringToNumberConverterTest;
-import org.eclipse.core.tests.databinding.observable.AbstractObservableTest;
-import org.eclipse.core.tests.databinding.observable.DiffsTest;
-import org.eclipse.core.tests.databinding.observable.Diffs_ListDiffTests;
-import org.eclipse.core.tests.databinding.observable.ObservableTrackerTest;
-import org.eclipse.core.tests.databinding.observable.ObservablesTest;
-import org.eclipse.core.tests.databinding.observable.RealmTest;
-import org.eclipse.core.tests.databinding.observable.list.AbstractObservableListTest;
-import org.eclipse.core.tests.databinding.observable.list.ComputedListTest;
-import org.eclipse.core.tests.databinding.observable.list.ListDiffTest;
-import org.eclipse.core.tests.databinding.observable.list.ListDiffVisitorTest;
-import org.eclipse.core.tests.databinding.observable.list.ObservableListTest;
-import org.eclipse.core.tests.databinding.observable.list.WritableListTest;
-import org.eclipse.core.tests.databinding.observable.map.AbstractObservableMapTest;
-import org.eclipse.core.tests.databinding.observable.map.CompositeMapTest;
-import org.eclipse.core.tests.databinding.observable.map.ObservableMapTest;
-import org.eclipse.core.tests.databinding.observable.map.WritableMapTest;
-import org.eclipse.core.tests.databinding.observable.set.AbstractObservableSetTest;
-import org.eclipse.core.tests.databinding.observable.set.ObservableSetTest;
-import org.eclipse.core.tests.databinding.observable.set.UnionSetTest;
-import org.eclipse.core.tests.databinding.observable.set.WritableSetTest;
-import org.eclipse.core.tests.databinding.observable.value.AbstractObservableValueTest;
-import org.eclipse.core.tests.databinding.observable.value.AbstractVetoableValueTest;
-import org.eclipse.core.tests.databinding.observable.value.ComputedValueTest;
-import org.eclipse.core.tests.databinding.observable.value.WritableValueTest;
-import org.eclipse.core.tests.databinding.validation.MultiValidatorTest;
-import org.eclipse.core.tests.databinding.validation.ValidationStatusTest;
-import org.eclipse.core.tests.internal.databinding.BindingMessagesTest;
-import org.eclipse.core.tests.internal.databinding.BindingStatusTest;
-import org.eclipse.core.tests.internal.databinding.QueueTest;
-import org.eclipse.core.tests.internal.databinding.RandomAccessListIteratorTest;
-import org.eclipse.core.tests.internal.databinding.beans.BeanObservableListDecoratorTest;
-import org.eclipse.core.tests.internal.databinding.beans.BeanObservableSetDecoratorTest;
-import org.eclipse.core.tests.internal.databinding.beans.BeanObservableValueDecoratorTest;
-import org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableArrayBasedListTest;
-import org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableArrayBasedSetTest;
-import org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableListTest;
-import org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableMapTest;
-import org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableSetTest;
-import org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableValueTest;
-import org.eclipse.core.tests.internal.databinding.beans.ListenerSupportTest;
-import org.eclipse.core.tests.internal.databinding.conversion.DateConversionSupportTest;
-import org.eclipse.core.tests.internal.databinding.conversion.IdentityConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.IntegerToStringConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.NumberToBigDecimalTest;
-import org.eclipse.core.tests.internal.databinding.conversion.NumberToBigIntegerConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.NumberToByteConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.NumberToDoubleConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.NumberToFloatConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.NumberToIntegerConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.NumberToLongConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.NumberToShortConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.ObjectToPrimitiveValidatorTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StatusToStringConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToBooleanConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToByteConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToCharacterConverterTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserByteTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserDoubleTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserFloatTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserIntegerTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserLongTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserShortTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToNumberParserTest;
-import org.eclipse.core.tests.internal.databinding.conversion.StringToShortConverterTest;
-import org.eclipse.core.tests.internal.databinding.observable.ConstantObservableValueTest;
-import org.eclipse.core.tests.internal.databinding.observable.EmptyObservableListTest;
-import org.eclipse.core.tests.internal.databinding.observable.EmptyObservableSetTest;
-import org.eclipse.core.tests.internal.databinding.observable.MapEntryObservableValueTest;
-import org.eclipse.core.tests.internal.databinding.observable.ProxyObservableListTest;
-import org.eclipse.core.tests.internal.databinding.observable.ProxyObservableSetTest;
-import org.eclipse.core.tests.internal.databinding.observable.StalenessObservableValueTest;
-import org.eclipse.core.tests.internal.databinding.observable.UnmodifiableObservableListTest;
-import org.eclipse.core.tests.internal.databinding.observable.UnmodifiableObservableSetTest;
-import org.eclipse.core.tests.internal.databinding.observable.ValidatedObservableListTest;
-import org.eclipse.core.tests.internal.databinding.observable.ValidatedObservableSetTest;
-import org.eclipse.core.tests.internal.databinding.observable.ValidatedObservableValueTest;
-import org.eclipse.core.tests.internal.databinding.observable.masterdetail.DetailObservableListTest;
-import org.eclipse.core.tests.internal.databinding.observable.masterdetail.DetailObservableSetTest;
-import org.eclipse.core.tests.internal.databinding.observable.masterdetail.DetailObservableValueTest;
-import org.eclipse.core.tests.internal.databinding.validation.AbstractStringToNumberValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.NumberToByteValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.NumberToDoubleValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.NumberToFloatValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.NumberToIntegerValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.NumberToLongValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.NumberToShortValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.NumberToUnboundedNumberValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.StringToByteValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.StringToCharacterValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.StringToDoubleValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.StringToFloatValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.StringToIntegerValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.StringToLongValidatorTest;
-import org.eclipse.core.tests.internal.databinding.validation.StringToShortValidatorTest;
-import org.eclipse.jface.tests.databinding.scenarios.BindingScenariosTestSuite;
-import org.eclipse.jface.tests.databinding.swt.SWTObservablesTest;
-import org.eclipse.jface.tests.databinding.viewers.ObservableListTreeContentProviderTest;
-import org.eclipse.jface.tests.databinding.viewers.ObservableMapLabelProviderTest;
-import org.eclipse.jface.tests.databinding.viewers.ObservableSetContentProviderTest;
-import org.eclipse.jface.tests.databinding.viewers.ObservableSetTreeContentProviderTest;
-import org.eclipse.jface.tests.databinding.viewers.ViewersObservablesTest;
-import org.eclipse.jface.tests.examples.databinding.mask.internal.EditMaskLexerAndTokenTest;
-import org.eclipse.jface.tests.examples.databinding.mask.internal.EditMaskParserTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ButtonObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.CComboObservableValueSelectionTest;
-import org.eclipse.jface.tests.internal.databinding.swt.CComboObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.CComboObservableValueTextTest;
-import org.eclipse.jface.tests.internal.databinding.swt.CComboSingleSelectionObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.CLabelObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ComboObservableValueSelectionTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ComboObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ComboObservableValueTextTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ComboSingleSelectionObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ControlObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.DelayedObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.LabelObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ListSingleSelectionObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.SWTObservableListTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ScaleObservableValueMaxTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ScaleObservableValueMinTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ScaleObservableValueSelectionTest;
-import org.eclipse.jface.tests.internal.databinding.swt.ShellObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.SpinnerObservableValueMaxTest;
-import org.eclipse.jface.tests.internal.databinding.swt.SpinnerObservableValueMinTest;
-import org.eclipse.jface.tests.internal.databinding.swt.SpinnerObservableValueSelectionTest;
-import org.eclipse.jface.tests.internal.databinding.swt.SpinnerObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.TableObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.TableSingleSelectionObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.TextEditableObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.swt.TextObservableValueFocusOutTest;
-import org.eclipse.jface.tests.internal.databinding.swt.TextObservableValueModifyTest;
-import org.eclipse.jface.tests.internal.databinding.swt.TextObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.viewers.ObservableCollectionTreeContentProviderTest;
-import org.eclipse.jface.tests.internal.databinding.viewers.ObservableViewerElementSetTest;
-import org.eclipse.jface.tests.internal.databinding.viewers.SelectionProviderMultiSelectionObservableListTest;
-import org.eclipse.jface.tests.internal.databinding.viewers.SelectionProviderSingleSelectionObservableValueTest;
-import org.eclipse.jface.tests.internal.databinding.viewers.ViewerElementMapTest;
-import org.eclipse.jface.tests.internal.databinding.viewers.ViewerElementSetTest;
-import org.eclipse.jface.tests.internal.databinding.viewers.ViewerElementWrapperTest;
-import org.eclipse.jface.tests.internal.databinding.viewers.ViewerInputObservableValueTest;
-
-public class BindingTestSuite extends TestSuite {
-
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(suite());
-	}
-
-	public static Test suite() {
-		return new BindingTestSetup(new BindingTestSuite());
-	}
-
-	public BindingTestSuite() {
-		// org.eclipse.core.tests.databinding
-		addTestSuite(AggregateValidationStatusTest.class);
-		addTestSuite(DatabindingContextTest.class);
-		addTestSuite(ListBindingTest.class);
-		addTestSuite(UpdateStrategyTest.class);
-		addTestSuite(UpdateValueStrategyTest.class);
-		addTestSuite(ValueBindingTest.class);
-		addTestSuite(ObservablesManagerTest.class);
-
-		// org.eclipse.core.tests.databinding.beans
-		addTestSuite(BeansObservablesTest.class);
-		addTestSuite(PojoObservablesTest.class);
-
-		// org.eclipse.core.tests.databinding.conversion
-		addTestSuite(NumberToStringConverterTest.class);
-		addTestSuite(StringToNumberConverterTest.class);
-
-		// org.eclipse.core.tests.databinding.observable
-		addTest(AbstractObservableTest.suite());
-		addTestSuite(Diffs_ListDiffTests.class);
-		addTestSuite(DiffsTest.class);
-		addTestSuite(ObservablesTest.class);
-		addTestSuite(ObservableTrackerTest.class);
-		addTestSuite(RealmTest.class);
-
-		// org.eclipse.core.tests.databinding.observable.list
-		addTest(AbstractObservableListTest.suite());
-		addTest(ComputedListTest.suite());
-		addTestSuite(ListDiffTest.class);
-		addTestSuite(ListDiffVisitorTest.class);
-		addTest(ObservableListTest.suite());
-		addTest(WritableListTest.suite());
-
-		// org.eclipse.core.tests.databinding.observable.map
-		addTestSuite(AbstractObservableMapTest.class);
-		addTestSuite(ObservableMapTest.class);
-		addTestSuite(WritableMapTest.class);
-		addTestSuite(CompositeMapTest.class);
-
-		// org.eclipse.core.tests.databinding.observable.set
-		addTest(AbstractObservableSetTest.suite());
-		addTest(ObservableSetTest.suite());
-		addTest(UnionSetTest.suite());
-		addTest(WritableSetTest.suite());
-		
-		//org.eclipse.core.tests.databinding.observable.value
-		addTestSuite(AbstractObservableValueTest.class);
-		addTestSuite(AbstractVetoableValueTest.class);
-		addTestSuite(ComputedValueTest.class);
-		addTest(WritableValueTest.suite());
-		
-		//org.eclipse.core.tests.databinding.validation
-		addTestSuite(MultiValidatorTest.class);
-		addTestSuite(ValidationStatusTest.class);
-		
-		// org.eclipse.core.tests.internal.databinding
-		addTestSuite(BindingMessagesTest.class);
-		addTestSuite(BindingStatusTest.class);
-		addTestSuite(RandomAccessListIteratorTest.class);
-		addTestSuite(QueueTest.class);
-
-		// org.eclipse.core.tests.internal.databinding.conversion
-		addTestSuite(DateConversionSupportTest.class);
-		addTestSuite(IdentityConverterTest.class);
-		addTestSuite(IntegerToStringConverterTest.class);
-		addTestSuite(NumberToBigDecimalTest.class);
-		addTestSuite(NumberToBigIntegerConverterTest.class);
-		addTestSuite(NumberToByteConverterTest.class);
-		addTestSuite(NumberToDoubleConverterTest.class);
-		addTestSuite(NumberToFloatConverterTest.class);
-		addTestSuite(NumberToIntegerConverterTest.class);
-		addTestSuite(NumberToLongConverterTest.class);
-		addTestSuite(NumberToShortConverterTest.class);
-		addTestSuite(ObjectToPrimitiveValidatorTest.class);
-		addTestSuite(StatusToStringConverterTest.class);
-		addTestSuite(StringToBooleanConverterTest.class);
-		addTestSuite(StringToByteConverterTest.class);
-		addTestSuite(StringToCharacterConverterTest.class);
-		addTestSuite(StringToNumberParserByteTest.class);
-		addTestSuite(StringToNumberParserDoubleTest.class);
-		addTestSuite(StringToNumberParserFloatTest.class);
-		addTestSuite(StringToNumberParserIntegerTest.class);
-		addTestSuite(StringToNumberParserLongTest.class);
-		addTestSuite(StringToNumberParserShortTest.class);
-		addTestSuite(StringToNumberParserTest.class);
-		addTestSuite(StringToShortConverterTest.class);
-
-		//org.eclipse.core.tests.internal.databinding.internal.beans
-		addTest(BeanObservableListDecoratorTest.suite());
-		addTestSuite(BeanObservableSetDecoratorTest.class);
-		addTestSuite(BeanObservableValueDecoratorTest.class);
-		addTestSuite(BeanObservableListDecoratorTest.class);
-		addTest(JavaBeanObservableArrayBasedListTest.suite());
-		addTest(JavaBeanObservableArrayBasedSetTest.suite());
-		addTest(JavaBeanObservableListTest.suite());
-		addTest(JavaBeanObservableMapTest.suite());
-		addTest(JavaBeanObservableSetTest.suite());
-		addTest(JavaBeanObservableValueTest.suite());
-		addTestSuite(ListenerSupportTest.class);
-		
-		//org.eclipse.core.tests.internal.databinding.observable
-		addTest(ConstantObservableValueTest.suite());
-		addTest(EmptyObservableListTest.suite());
-		addTest(EmptyObservableSetTest.suite());
-		addTest(MapEntryObservableValueTest.suite());
-		addTest(ProxyObservableListTest.suite());
-		addTest(ProxyObservableSetTest.suite());
-		addTest(StalenessObservableValueTest.suite());
-		addTest(UnmodifiableObservableListTest.suite());
-		addTest(UnmodifiableObservableSetTest.suite());
-		addTest(ValidatedObservableValueTest.suite());
-		addTest(ValidatedObservableListTest.suite());
-		addTest(ValidatedObservableSetTest.suite());
-//		addTest(ValidatedObservableMapTest.suite());
-		
-		// org.eclipse.core.tests.internal.databinding.observable.masterdetail
-		addTest(DetailObservableListTest.suite());
-		addTest(DetailObservableSetTest.suite());
-		addTest(DetailObservableValueTest.suite());
-
-		// org.eclipse.core.tests.internal.databinding.validation
-		addTestSuite(AbstractStringToNumberValidatorTest.class);
-		addTestSuite(NumberToByteValidatorTest.class);
-		addTestSuite(NumberToDoubleValidatorTest.class);
-		addTestSuite(NumberToFloatValidatorTest.class);
-		addTestSuite(NumberToIntegerValidatorTest.class);
-		addTestSuite(NumberToLongValidatorTest.class);
-		addTestSuite(NumberToShortValidatorTest.class);
-		addTestSuite(NumberToUnboundedNumberValidatorTest.class);
-		addTestSuite(StringToByteValidatorTest.class);
-		addTestSuite(StringToCharacterValidatorTest.class);
-		addTestSuite(StringToDoubleValidatorTest.class);
-		addTestSuite(StringToFloatValidatorTest.class);
-		addTestSuite(StringToIntegerValidatorTest.class);
-		addTestSuite(StringToLongValidatorTest.class);
-		addTestSuite(StringToShortValidatorTest.class);
-
-		// org.eclipse.jface.tests.databinding.scenarios
-		addTest(BindingScenariosTestSuite.suite());
-		// The files in this package are in the above test suite
-
-		//org.eclipse.jface.tests.databinding.swt
-		addTestSuite(SWTObservablesTest.class);
-		
-		// org.eclipse.jface.tests.databinding.viewers
-		addTestSuite(ObservableListTreeContentProviderTest.class);
-		addTestSuite(ObservableMapLabelProviderTest.class);
-		addTestSuite(ObservableSetContentProviderTest.class);
-		addTestSuite(ObservableSetTreeContentProviderTest.class);
-		addTestSuite(ViewersObservablesTest.class);
-		
-		//org.eclipse.jface.tests.example.databinding.mask.internal
-		addTestSuite(EditMaskLexerAndTokenTest.class);
-		addTestSuite(EditMaskParserTest.class);
-
-		//org.eclipse.jface.tests.internal.databinding.internal.swt
-		addTest(ButtonObservableValueTest.suite());
-		addTestSuite(CComboObservableValueTest.class);
-		addTest(CComboObservableValueSelectionTest.suite());
-		addTest(CComboObservableValueTextTest.suite());
-		addTestSuite(CComboSingleSelectionObservableValueTest.class);
-		addTest(CComboSingleSelectionObservableValueTest.suite());
-		addTest(CLabelObservableValueTest.suite());
-		addTestSuite(ComboObservableValueTest.class);
-		addTest(ComboObservableValueSelectionTest.suite());
-		addTest(ComboObservableValueTextTest.suite());
-		addTestSuite(ComboSingleSelectionObservableValueTest.class);
-		addTest(DelayedObservableValueTest.suite());
-		
-		addTest(SWTObservableListTest.suite());
-		
-		addTestSuite(ControlObservableValueTest.class);
-		addTest(LabelObservableValueTest.suite());
-		addTestSuite(ListSingleSelectionObservableValueTest.class);
-		addTest(ScaleObservableValueMinTest.suite());
-		addTest(ScaleObservableValueMaxTest.suite());
-		addTest(ScaleObservableValueSelectionTest.suite());
-		
-		addTest(ShellObservableValueTest.suite());
-		
-		addTestSuite(SpinnerObservableValueTest.class);
-		addTest(SpinnerObservableValueMinTest.suite());
-		addTest(SpinnerObservableValueMaxTest.suite());
-		addTest(SpinnerObservableValueSelectionTest.suite());
-		
-		addTestSuite(TableObservableValueTest.class);
-		addTest(TableSingleSelectionObservableValueTest.suite());
-		addTest(TextEditableObservableValueTest.suite());
-		addTest(TextObservableValueFocusOutTest.suite());
-		addTest(TextObservableValueModifyTest.suite());
-		addTestSuite(TextObservableValueTest.class);
-		
-		//org.eclipse.jface.tests.internal.databinding.internal.viewers
-		addTest(ObservableViewerElementSetTest.suite());
-		addTestSuite(ObservableCollectionTreeContentProviderTest.class);
-		addTestSuite(SelectionProviderMultiSelectionObservableListTest.class);
-		addTestSuite(SelectionProviderSingleSelectionObservableValueTest.class);
-		addTestSuite(ViewerElementMapTest.class);
-		addTestSuite(ViewerElementSetTest.class);
-		addTestSuite(ViewerElementWrapperTest.class);
-		addTest(ViewerInputObservableValueTest.suite());
-	}
-
-	/**
-	 * @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/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 93fb3cb..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/BindingScenariosTestSuite.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
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-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();
-                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(ButtonControlScenario.class);
-        addTestSuite(ComboScenarios.class);
-        addTestSuite(ComboUpdatingTest.class);
-        addTestSuite(ComboViewerScenario.class);
-        addTestSuite(CustomConverterScenarios.class);
-        addTestSuite(CustomScenarios.class);
-        addTestSuite(ListViewerScenario.class);
-        addTestSuite(MasterDetailScenarios.class);
-        addTestSuite(NewTableScenarios.class);
-        addTestSuite(NPETestScenario.class);
-        addTestSuite(PropertyScenarios.class);
-        addTestSuite(SpinnerControlScenario.class);
-        addTestSuite(TableScenarios.class);
-        addTestSuite(TextControlScenario.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 5f1ac5a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ButtonControlScenario.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-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().bindValue(SWTObservables.observeSelection(button),
-                BeansObservables.observeValue(adventure, "petsAllowed"),
-                null, 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().bindValue(SWTObservables.observeSelection(button),
-                BeansObservables.observeValue(adventure, "petsAllowed"),
-                null, 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().bindValue(SWTObservables.observeSelection(button),
-                BeansObservables.observeValue(adventure, "petsAllowed"),
-                null, 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 aefc9e2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboScenarios.java
+++ /dev/null
@@ -1,563 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 160000
- *******************************************************************************/
-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.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.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.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() {
-		IObservableList lodgings = BeansObservables.observeList(Realm
-				.getDefault(), catalog, "lodgings");
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				contentProvider.getKnownElements(), Lodging.class,
-				new String[] { "name" });
-
-		// Bind the ComboViewer's content to the available lodging
-		cviewer.setContentProvider(contentProvider);
-		cviewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps));
-		cviewer.setInput(lodgings);
-
-		Adventure skiAdventure = SampleData.WINTER_HOLIDAY; // selection will
-
-		// 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());
-
-		getDbc().bindValue(ViewersObservables.observeSingleSelection(cviewer),
-				BeansObservables.observeValue(skiAdventure, "defaultLodging"),
-				null, 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() {
-		// column binding
-		// Bind the ComboViewer's content to the available lodging
-		IObservableList lodgings = BeansObservables.observeList(Realm
-				.getDefault(), catalog, "lodgings");
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				contentProvider.getKnownElements(), Lodging.class,
-				new String[] { "name" });
-
-		cviewer.setContentProvider(contentProvider);
-		cviewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps));
-		cviewer.setInput(lodgings);
-
-		// 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];
-		assertEquals(combo.getItem(0), l.getName());
-		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
-
-		// Bind the ComboViewer's content to the available lodging
-		IObservableList lodgings = BeansObservables.observeList(Realm
-				.getDefault(), catalog, "lodgings");
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				contentProvider.getKnownElements(), Lodging.class,
-				new String[] { "name" });
-
-		cviewer.setContentProvider(contentProvider);
-		cviewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps));
-		cviewer.setInput(lodgings);
-
-		// 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);
-		lodgings = BeansObservables.observeList(Realm.getDefault(), catalog,
-				"lodgings");
-		contentProvider = new ObservableListContentProvider();
-
-		attributeMaps = BeansObservables.observeMaps(contentProvider
-				.getKnownElements(), Lodging.class, new String[] { "name" });
-
-		otherViewer.setContentProvider(contentProvider);
-		otherViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMaps));
-		otherViewer.setInput(lodgings);
-
-		// Ensure that cv's content now has the catalog's lodgings
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(otherViewer)
-				.toArray());
-
-		// Bind both selections to the same thing
-		IObservableValue selection = ViewersObservables
-				.observeSingleSelection(cviewer);
-		getDbc().bindValue(selection,
-				BeansObservables.observeValue(skiAdventure, "defaultLodging"),
-				null, null);
-
-		IObservableValue otherSelection = ViewersObservables
-				.observeSingleSelection(otherViewer);
-		getDbc().bindValue(otherSelection,
-				BeansObservables.observeValue(skiAdventure, "defaultLodging"),
-				null, 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().bindList(SWTObservables.observeItems(ccombo), list, null, null);
-		assertEquals(Arrays.asList(ccombo.getItems()), list);
-
-		Account account = catalog.getAccounts()[0];
-
-		// simple Combo's selection bound to the Account's country property
-		IObservableValue comboSelection = SWTObservables.observeSelection(ccombo);
-		getDbc().bindValue(comboSelection,
-				BeansObservables.observeValue(account, "country"), null, 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().bindList(SWTObservables.observeItems(ccombo), list, null, null);
-		assertEquals(Arrays.asList(ccombo.getItems()), list);
-
-		Account account = catalog.getAccounts()[0];
-
-		// simple Combo's selection bound to the Account's country property
-		IObservableValue comboSelection = SWTObservables.observeSelection(ccombo);
-		getDbc().bindValue(comboSelection,
-				BeansObservables.observeValue(account, "country"), null, 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().bindList(SWTObservables.observeItems(swtlist), list, null, null);
-		assertEquals(Arrays.asList(swtlist.getItems()), list);
-
-		Account account = catalog.getAccounts()[0];
-
-		// simple Combo's selection bound to the Account's country property
-		IObservableValue listSelection = SWTObservables.observeSelection(swtlist);
-		getDbc().bindValue(listSelection,
-				BeansObservables.observeValue(account, "country"), null, 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 31c683b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboUpdatingTest.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-
-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.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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().bindValue(SWTObservables.observeText(comboEditable), BeansObservables.observeValue(this, "text"), null, 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";
-        
-        getDbc().bindValue(SWTObservables.observeText(comboEditable), BeansObservables.observeValue(this, PROP_TEXT), null, null);
-        
-		spinEventLoop(0);
-		assertEquals("Should find value of text", text, comboEditable.getText());
-        
-        IObservableList list = new WritableList(getChoices(), null);
-        getDbc().bindList(SWTObservables.observeItems(comboEditable), list, null, 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;
-		}
-        
-        getDbc().bindValue(SWTObservables.observeText(comboEditable), BeansObservables.observeValue(this, PROP_TEXT), null, null);
-
-		spinEventLoop(0);
-		assertEquals("Should find value of text", text, comboEditable.getText());
-        
-        IObservableList list = new WritableList(new ArrayList(), String.class);
-        list.addAll(getChoices());
-        getDbc().bindList(SWTObservables.observeItems(comboEditable), list, null, 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 4cf8176..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ComboViewerScenario.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 160000
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.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.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
-		IObservableList lodgings = BeansObservables.observeList(realm, catalog,
-				"lodgings");
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-
-		IObservableMap attributeMap = BeansObservables.observeMap(
-				contentProvider.getKnownElements(), Lodging.class, "name");
-		comboViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMap));
-		comboViewer.setContentProvider(contentProvider);
-		comboViewer.setInput(lodgings);
-
-		// 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;
-		IObservableValue selection = ViewersObservables
-				.observeSingleSelection(comboViewer);
-		getDbc().bindValue(selection,
-				BeansObservables.observeValue(adventure, "defaultLodging"),
-				null, 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/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/CustomBeanUpdateValueStrategy.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanUpdateValueStrategy.java
deleted file mode 100644
index e244710..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomBeanUpdateValueStrategy.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920, 159768
- *******************************************************************************/
-// TODO djo: copyright
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-
-/**
- * A BindSpec 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.
- * 
- */
-public class CustomBeanUpdateValueStrategy extends UpdateValueStrategy {
-
-	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 super.createConverter(fromType, toType);
-	}
-
-	protected void fillDefaults(IObservableValue source,
-			IObservableValue destination) {
-		if (destination.getValueType() instanceof CustomBeanModelType) {
-			if (beforeSetValidator==null) {
-				CustomBeanModelType property = (CustomBeanModelType) destination.getValueType();
-				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 });
-					beforeSetValidator= (IValidator) getValidator.invoke(property
-								.getObject(), new Object[0]);
-				} catch (Exception e) {
-					// ignore
-				}
-
-			}
- 		}
-		super.fillDefaults(source, destination);
-	}
-
-	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 super.isAssignableFromTo(fromType, toType);
-	}
-}
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 d350778..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomConverterScenarios.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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.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() {
-        DataBindingContext dbc = getDbc();
-        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();
-
-        dbc.bindValue(BeansObservables.observeValue(priceModel, "price"), BeansObservables.observeValue(skiTrip,
-                "price"), null, null);
-
-        dbc.bindValue(SWTObservables.observeSelection(spinner_dollars),
-                BeansObservables.observeValue(priceModel, "dollars"),
-                null, null);
-
-        dbc.bindValue(SWTObservables.observeSelection(spinner_cents),
-                BeansObservables.observeValue(priceModel, "cents"),
-                null, 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 c6eb678..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/CustomScenarios.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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.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 = BeansObservables.observeValue(adventure, "description");
-        IObservableValue nameObservable = BeansObservables.observeValue(adventure, "name");
-        AggregateObservableValue customObservable_comma = new AggregateObservableValue(new IObservableValue[] {
-                descriptionObservable, nameObservable }, ",");
-
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.Modify), customObservable_comma, null, 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 ad234a6..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/LabelControlScenario.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-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().bindValue(SWTObservables.observeText(label), BeansObservables.observeValue(adventure, "name"), null, 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 0fe7dda..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ListViewerScenario.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 160000
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.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.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
-		IObservableList lodgings = BeansObservables.observeList(Realm
-				.getDefault(), catalog, "lodgings");
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				contentProvider.getKnownElements(), Lodging.class,
-				new String[] { "name" });
-		listViewer.setContentProvider(contentProvider);
-		listViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMaps));
-		listViewer.setInput(lodgings);
-
-		// 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;
-
-		IObservableValue selection = ViewersObservables
-				.observeSingleSelection(listViewer);
-		getDbc().bindValue(selection,
-				BeansObservables.observeValue(adventure, "defaultLodging"),
-				null, 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 d8b8b76..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/MasterDetailScenarios.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 160000
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.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.viewers.ContentViewer;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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 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);
-		Realm realm = SWTObservables.getRealm(listViewer.getControl()
-				.getDisplay());
-		listViewer.getList().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, false, false));
-		Catalog catalog = SampleData.CATALOG_2005;
-
-		IObservableList lodgings = BeansObservables.observeList(realm, catalog,
-				"lodgings");
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				contentProvider.getKnownElements(), Lodging.class,
-				new String[] { "name" });
-		listViewer.setContentProvider(contentProvider);
-		listViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMaps));
-		listViewer.setInput(lodgings);
-
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(listViewer)
-				.toArray());
-
-		IObservableValue selectedLodging = ViewersObservables
-				.observeSingleSelection(listViewer);
-
-		selectedLodging.setValue(SampleData.CAMP_GROUND);
-
-		assertEquals(SampleData.CAMP_GROUND, getViewerSelection(listViewer));
-		Text txtName = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bindValue(
-				SWTObservables.observeText(txtName, SWT.Modify),
-				BeansObservables.observeDetailValue(realm, selectedLodging,
-						"name", String.class), null, 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;
-
-		IObservableList lodgings = BeansObservables.observeList(realm, catalog,
-				"lodgings");
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				contentProvider.getKnownElements(), Lodging.class,
-				new String[] { "name" });
-		listViewer.setContentProvider(contentProvider);
-		listViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMaps));
-		listViewer.setInput(lodgings);
-
-		assertArrayEquals(catalog.getLodgings(), getViewerContent(listViewer)
-				.toArray());
-
-		final IObservableValue selectedLodgingObservable = ViewersObservables
-				.observeSingleSelection(listViewer);
-
-		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().bindValue(SWTObservables.observeEnabled(txtName),
-				selectionExistsObservable, null, null);
-		getDbc().bindValue(
-				SWTObservables.observeText(txtName, SWT.Modify),
-				BeansObservables.observeDetailValue(realm,
-						selectedLodgingObservable, "name", String.class), null, null);
-
-		assertEquals(txtName.getText(), "");
-		assertFalse(txtName.getEnabled());
-
-		final Text txtDescription = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bindValue(SWTObservables.observeEnabled(txtDescription),
-				selectionExistsObservable, null, null);
-		getDbc().bindValue(
-				SWTObservables.observeText(txtDescription, SWT.Modify),
-				MasterDetailObservables.detailValue(
-						selectedLodgingObservable, BeansObservables
-								.valueFactory(realm, "description"),
-						String.class), null, 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));
-
-		IObservableList categories = BeansObservables.observeList(realm,
-				catalog, "categories");
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				contentProvider.getKnownElements(), Category.class,
-				new String[] { "name" });
-		categoryListViewer.setContentProvider(contentProvider);
-		categoryListViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMaps));
-		categoryListViewer.setInput(categories);
-
-		assertArrayEquals(catalog.getCategories(), getViewerContent(
-				categoryListViewer).toArray());
-
-		final IObservableValue selectedCategoryObservable = ViewersObservables
-				.observeSingleSelection(categoryListViewer);
-
-		final ListViewer adventureListViewer = new ListViewer(getComposite(),
-				SWT.BORDER);
-		adventureListViewer.getList().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, false, false));
-
-		IObservableList adventures = BeansObservables.observeDetailList(realm,
-				selectedCategoryObservable, "adventures", Adventure.class);
-		contentProvider = new ObservableListContentProvider();
-		attributeMaps = BeansObservables.observeMaps(contentProvider
-				.getKnownElements(), Adventure.class, new String[] { "name" });
-		adventureListViewer.setContentProvider(contentProvider);
-		adventureListViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMaps));
-		adventureListViewer.setInput(adventures);
-
-		ComputedValue categorySelectionExistsObservable = new ComputedValue() {
-			protected Object calculate() {
-				return new Boolean(
-						selectedCategoryObservable.getValue() != null);
-			}
-		};
-
-		getDbc().bindValue(
-				SWTObservables.observeEnabled(adventureListViewer.getList()),
-				categorySelectionExistsObservable, null, null);
-
-		final IObservableValue selectedAdventureObservable = ViewersObservables
-				.observeSingleSelection(adventureListViewer);
-
-		ComputedValue adventureSelectionExistsObservable = new ComputedValue() {
-			protected Object calculate() {
-				return new Boolean(
-						selectedAdventureObservable.getValue() != null);
-			}
-		};
-
-		final Text txtName = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bindValue(SWTObservables.observeEnabled(txtName),
-				adventureSelectionExistsObservable, null, null);
-		getDbc().bindValue(
-				SWTObservables.observeText(txtName, SWT.Modify),
-				BeansObservables.observeDetailValue(realm,
-						selectedAdventureObservable, "name", String.class),
-				null, null);
-
-		assertEquals(txtName.getText(), "");
-		assertFalse(txtName.getEnabled());
-
-		final Text txtDescription = new Text(getComposite(), SWT.BORDER);
-
-		getDbc().bindValue(SWTObservables.observeEnabled(txtDescription),
-				adventureSelectionExistsObservable, null, null);
-		getDbc().bindValue(
-				SWTObservables.observeText(txtDescription, SWT.Modify),
-				BeansObservables.observeDetailValue(realm,
-						selectedAdventureObservable, "description",
-						String.class), null, 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));
-		assertEquals(Boolean.TRUE, adventureSelectionExistsObservable
-				.getValue());
-		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 b7e4aed..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NPETestScenario.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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());
-
-        System.out.println("Expecting message about not being able to attach a listener");
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.Modify),
-                BeansObservables.observeValue(person, "name"),
-                null, 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 6a32325..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/NewTableScenarios.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.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() {
-//		// 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/PropertyScenarios.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/PropertyScenarios.java
deleted file mode 100644
index 719ceed..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/PropertyScenarios.java
+++ /dev/null
@@ -1,579 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920, 159768
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import java.text.ParseException;
-import java.util.Date;
-import java.util.Locale;
-
-import org.eclipse.core.databinding.AggregateValidationStatus;
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.conversion.Converter;
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.conversion.NumberToStringConverter;
-import org.eclipse.core.databinding.conversion.StringToNumberConverter;
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.internal.databinding.conversion.IdentityConverter;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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.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;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * 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().bindValue(SWTObservables.observeText(text, SWT.Modify),
-                BeansObservables.observeValue(adventure, "name"),
-                null, null);
-
-        // 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().bindValue(SWTObservables.observeText(text, SWT.None),
-                BeansObservables.observeValue(adventure, "name"),
-                null, 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);
-
-        System.out.println("Expecting message about not being able to attach a listener");
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.Modify),
-                BeansObservables.observeValue(cart, "lodgingDays"),
-                null, null);
-
-        assertEquals(new Integer(cart.getLodgingDays()).toString(), text.getText());
-    }
-
-    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 =BeansObservables.observeDetailValue(realm, BeansObservables.observeValue(adventure,
-        "defaultLodging"), "description", String.class); 
-
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.Modify), defaultLodging, null, 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");
-
-        IConverter converter1 = 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();
-            }
-        };
-        IConverter converter2 = new IConverter() {
-            public Object getFromType() {
-                return String.class;
-            }
-
-            public Object getToType() {
-                return String.class;
-            }
-
-            public Object convert(Object fromObject) {
-                return ((String) fromObject).toUpperCase();
-            }
-        };
-
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.Modify),
-                BeansObservables.observeValue(adventure, "name"),
-                new UpdateValueStrategy().setConverter(converter2), new UpdateValueStrategy().setConverter(converter1));
-
-        // 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");
-
-        IValidator validator = new IValidator() {
-            public IStatus validate(Object value) {
-                String stringValue = (String) value;
-                if (stringValue.length() > 15) {
-                    return ValidationStatus.error(max15CharactersMessage);
-                } else if (stringValue.indexOf(' ') != -1) {
-                    return ValidationStatus.cancel(noSpacesMessage);
-                } else {
-                    return Status.OK_STATUS;
-                }
-            }
-        };
-
-//        BindSpec bindSpec = new DefaultBindSpec().setModelToTargetConverter(new IdentityConverter(String.class))
-//                .setTargetToModelConverter(new IdentityConverter(String.class))
-//                .addTargetValidator(BindingEvent.PIPELINE_VALUE_CHANGING, validator);
-
-        Binding binding = getDbc().bindValue(
-				SWTObservables.observeText(text, SWT.Modify),
-				BeansObservables.observeValue(adventure, "name"),
-				new UpdateValueStrategy().setConverter(new IdentityConverter(
-						String.class)).setAfterGetValidator(validator),
-				new UpdateValueStrategy().setConverter(new IdentityConverter(
-						String.class)));
-
-        // no validation message
-        assertTrue(((IStatus)binding.getValidationStatus().getValue()).isOK());
-        enterText(text, "Invalid Value");
-        assertEquals(noSpacesMessage, ((IStatus) binding.getValidationStatus().getValue()).getMessage());
-        assertEquals("ValidValue", adventure.getName());
-        text.setText("InvalidValueBecauseTooLong");
-        assertEquals(max15CharactersMessage,
-                ((IStatus) binding.getValidationStatus().getValue()).getMessage());
-        assertEquals("ValidValue", adventure.getName());
-        enterText(text, "anothervalid");
-        assertTrue(((IStatus)binding.getValidationStatus().getValue()).isOK());
-        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.";
-
-        IValidator validator = new IValidator() {
-            public IStatus validate(Object value) {
-                String stringValue = (String) value;
-                try {
-                    double doubleValue = new Double(stringValue).doubleValue();
-                    if (doubleValue < 0.0) {
-                        return ValidationStatus.error(cannotBeNegativeMessage);
-                    }
-                    return Status.OK_STATUS;
-                } catch (NumberFormatException ex) {
-                    return ValidationStatus.error(mustBeCurrencyMessage);
-                }
-            }
-        };
-        
-        //Create a number formatter that will display one decimal position.
-		NumberFormat numberFormat = NumberFormat.getInstance();
-		numberFormat.setMinimumFractionDigits(1);
-
-		IConverter targetToModelConverter = StringToNumberConverter.toDouble(
-				numberFormat, true);
-		IConverter modelToTargetConverter = NumberToStringConverter.fromDouble(
-				numberFormat, true);
-
-		getDbc().bindValue(
-				SWTObservables.observeText(text, SWT.Modify),
-				BeansObservables.observeValue(adventure, "price"),
-				new UpdateValueStrategy().setAfterGetValidator(validator)
-						.setConverter(targetToModelConverter),
-				new UpdateValueStrategy().setConverter(modelToTargetConverter));
-
-		String expected = numberFormat.format(adventure.getPrice());
-        assertEquals(expected, text.getText());
-        assertTrue(AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).isOK());
-        
-        String toEnter = numberFormat.format(0.65);
-        enterText(text, toEnter);
-        assertTrue(AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).isOK());
-        assertEquals(0.65, adventure.getPrice(), 0.0001);
-        
-        adventure.setPrice(42.24);
-        expected = numberFormat.format(adventure.getPrice());
-        assertEquals(expected, text.getText());
-        assertTrue(AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).isOK());
-        
-        enterText(text, "jygt");
-        assertEquals(mustBeCurrencyMessage, AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).getMessage());
-        
-        toEnter = numberFormat.format(-23.9);
-        enterText(text, toEnter);
-        assertEquals(cannotBeNegativeMessage, AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).getMessage());
-        assertEquals(42.24, adventure.getPrice(), 0.0001);
-        
-        adventure.setPrice(0.0);
-        assertTrue(AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).isOK());
-    }
-
-    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);
-
-        IConverter toCurrency = new Converter(double.class, String.class) {
-            public Object convert(Object toObject) {
-                return currencyFormat.format(((Double) toObject).doubleValue());
-            }
-        };
-
-        IConverter toDouble = new Converter(String.class, double.class) {
-            public Object convert(Object fromObject) {
-                try {
-                    return new Double(currencyFormat.parse((String) fromObject).doubleValue());
-                } catch (ParseException e) {
-                    // TODO throw something like
-                    // IllegalConversionException?
-                    return new Double(0);
-                }
-            }
-        };
-
-        IValidator validator = new IValidator() {
-            public IStatus validate(Object value) {
-                String stringValue = (String) value;
-                try {
-                    double doubleValue = currencyFormat.parse(stringValue).doubleValue();
-                    if (doubleValue < 0.0) {
-                        return ValidationStatus.error(cannotBeNegativeMessage);
-                    }
-                    return Status.OK_STATUS;
-                } catch (ParseException e) {
-                    return ValidationStatus.error(mustBeCurrencyMessage);
-                }
-            }
-        };
-
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.Modify),
-                BeansObservables.observeValue(adventure, "price"),
-new UpdateValueStrategy().setConverter(toDouble).setAfterGetValidator(validator),new UpdateValueStrategy().setConverter(toCurrency));
-
-        String expected = currencyFormat.format(5);
-        assertEquals(expected, text.getText());
-        assertTrue(AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).isOK());
-        
-        String toEnter = currencyFormat.format(0.65);
-        enterText(text, toEnter);
-        assertTrue(AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).isOK());
-        assertEquals(0.65, adventure.getPrice(), 0.0001);
-        
-        adventure.setPrice(42.24);
-        expected = currencyFormat.format(adventure.getPrice());
-        assertEquals(expected, text.getText());
-        
-        assertTrue(AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).isOK());
-        enterText(text, "jygt");
-        assertEquals(mustBeCurrencyMessage, AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).getMessage());
-        
-        toEnter = currencyFormat.format(-23.9);
-        enterText(text, toEnter);
-        
-        assertEquals(cannotBeNegativeMessage, AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).getMessage());
-        assertEquals(42.24, adventure.getPrice(), 0.0001);
-        adventure.setPrice(0.0);
-        assertTrue(AggregateValidationStatus.getStatusMaxSeverity(getDbc().getBindings()).isOK());
-    }
-
-    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().bindValue(SWTObservables.observeSelection(checkbox),
-                BeansObservables.observeValue(adventure, "petsAllowed"),
-                null, 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().bindValue(SWTObservables.observeSelection(spinner1), SWTObservables.observeMax(spinner2), null, 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 = SWTObservables.observeSelection(checkbox1);
-        IObservableValue checkbox2Selected = SWTObservables.observeSelection(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().bindValue(checkbox1Selected,
-                checkbox2Selected,new UpdateValueStrategy().setConverter(negatingConverter),
-                new UpdateValueStrategy().setConverter(negatingConverter));
-        
-        // bind the enabled state of the two text widgets to one of the
-        // checkboxes each.
-        
-        getDbc().bindValue(SWTObservables.observeEnabled(text1), checkbox1Selected, null, null);
-        getDbc().bindValue(SWTObservables.observeEnabled(text2), checkbox2Selected, null, 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() {
-        Text text = new Text(getComposite(), SWT.BORDER);
-        
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.FocusOut), BeansObservables.observeValue(adventure, "name"), null, 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);
-  
-        getDbc().bindValue(SWTObservables.observeText(t1, SWT.Modify), BeansObservables.observeValue(adventure, "name"), null, null);
-        getDbc().bindValue(SWTObservables.observeText(t2, SWT.Modify), BeansObservables.observeValue(adventure, "name"), null, null);
-        
-        final int[] counter = { 0 };
-        
-        IObservableValue uv = BeansObservables.observeValue(adventure, "name");
-        
-        uv.addChangeListener(new IChangeListener() {
-            public void handleChange(ChangeEvent event) {
-                // 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().bindValue(SWTObservables.observeText(text, SWT.Modify), BeansObservables.observeValue(account, "expiryDate"), null, null);
-        Text errorText = new Text(getComposite(), SWT.NONE);
-        
-        getDbc().bindValue(SWTObservables.observeText(errorText, SWT.Modify), b.getValidationStatus(), new UpdateValueStrategy(false, UpdateValueStrategy.POLICY_NEVER), null);
-        assertTrue(((IStatus)b.getValidationStatus().getValue()).isOK());
-        enterText(text, "foo");
-        assertFalse(((IStatus)b.getValidationStatus().getValue()).isOK());
-    }
-}
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 b55c59b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/ScenariosTestCase.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import java.util.Arrays;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-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;
-	protected Realm realm;
-
-	protected Composite getComposite() {
-		return composite;
-	}
-
-	protected DataBindingContext getDbc() {
-		return dbc;
-	}
-
-	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 {
-		realm = SWTObservables.getRealm(Display.getDefault());
-		RealmTester.setDefault(realm);
-
-		composite = new Composite(getShell(), SWT.NONE);
-		composite.setLayout(new FillLayout());
-		SampleData.initializeData(); // test may manipulate the data... let
-		// all start from fresh
-		dbc = new DataBindingContext();
-		dummyText = new Text(getComposite(), SWT.NONE);
-		dummyText.setText("dummy");
-	}
-
-	protected void tearDown() throws Exception {
-		realm = null;
-		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 b1d2ad2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/SpinnerControlScenario.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.examples.databinding.model.Adventure;
-import org.eclipse.jface.examples.databinding.model.SampleData;
-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().bindValue(SWTObservables.observeSelection(spinner),
-                BeansObservables.observeValue(adventure, "maxNumberOfPeople"),
-                null, 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 70c38ac..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TableScenarios.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 160000
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-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.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * 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;
-	}
-
-	public void testScenario01() {
-		// Show that a TableViewer with three columns renders the accounts
-		Account[] accounts = catalog.getAccounts();
-
-		IObservableList list = new WritableList(new ArrayList(), Account.class);
-		list.addAll(Arrays.asList(accounts));
-
-		ObservableListContentProvider contentProvider = new ObservableListContentProvider();
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				contentProvider.getKnownElements(), Account.class,
-				new String[] { "firstName", "lastName", "state" });
-
-		tableViewer.setContentProvider(contentProvider);
-		tableViewer.setLabelProvider(new ObservableMapLabelProvider(
-				attributeMaps));
-		tableViewer.setInput(list);
-
-		Table table = tableViewer.getTable();
-
-		// Verify the data in the table columns matches the accounts
-		for (int i = 0; i < accounts.length; i++) {
-			Account account = catalog.getAccounts()[i];
-			TableItem item = table.getItem(i);
-
-			assertEquals(account.getFirstName(), item.getText(0));
-			assertEquals(account.getLastName(), item.getText(1));
-			assertEquals(account.getState(), item.getText(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 500b09b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/TextControlScenario.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.databinding.scenarios;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-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.tests.databinding.BindingTestSuite;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-import com.ibm.icu.text.NumberFormat;
-
-/**
- * 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().bindValue(SWTObservables.observeText(text, SWT.Modify),
-                BeansObservables.observeValue(adventure, "name"),
-                null, 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().bindValue(SWTObservables.observeText(text, SWT.Modify),
-                BeansObservables.observeValue(transportation, "price"),
-                null, null);
-
-        NumberFormat numberFormat = NumberFormat.getInstance();
-        
-        assertEquals(numberFormat.format(transportation.getPrice()), text.getText());
-        text.setText("9876.54");
-        text.notifyListeners(SWT.FocusOut, null);
-        assertEquals(9876.54, transportation.getPrice(), 0);
-        
-        transportation.setPrice(1234.56);
-        assertEquals(numberFormat.format(transportation.getPrice()), 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
-//        getDbc().bindValue(SWTObservables.observeText(text, SWT.FocusOut),
-//                BeansObservables.observeValue(adventure, "name"),
-//                null, 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
-//        getDbc().bindValue(SWTObservables.observeText(text, SWT.Modify),
-//                BeansObservables.observeValue(adventure, "name"),
-//                null, 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
-
-        DataBindingContext dbc = getDbc();
-        
-        dbc.bindValue(SWTObservables.observeText(text, SWT.Modify),
-				BeansObservables.observeValue(adventure, "maxNumberOfPeople"),
-				new CustomBeanUpdateValueStrategy(), 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());
-        dbc.dispose();
-    }
-
-    public void testScenario09() {
-        // Verify direct binding between a Text and Label following bugzilla
-        // 118696        
-        Label label = new Label(getComposite(), SWT.NONE);
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.FocusOut), SWTObservables.observeText(label), null, 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
-        Label label = new Label(getComposite(), SWT.NONE);
-        getDbc().bindValue(SWTObservables.observeText(text, SWT.Modify), SWTObservables.observeText(label), null, 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/SWTObservablesTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/SWTObservablesTest.java
deleted file mode 100644
index eab532f..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/SWTObservablesTest.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.swt;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.swt.ISWTObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.ButtonObservableValue;
-import org.eclipse.jface.internal.databinding.swt.CComboObservableList;
-import org.eclipse.jface.internal.databinding.swt.CComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.CLabelObservableValue;
-import org.eclipse.jface.internal.databinding.swt.ComboObservableList;
-import org.eclipse.jface.internal.databinding.swt.ComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.LabelObservableValue;
-import org.eclipse.jface.internal.databinding.swt.ListObservableList;
-import org.eclipse.jface.internal.databinding.swt.ListObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.ScaleObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SpinnerObservableValue;
-import org.eclipse.jface.internal.databinding.swt.TableSingleSelectionObservableValue;
-import org.eclipse.jface.internal.databinding.swt.TextEditableObservableValue;
-import org.eclipse.jface.internal.databinding.swt.TextObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * @since 1.1
- */
-public class SWTObservablesTest extends AbstractSWTTestCase {
-	private Shell shell;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		shell = getShell();
-		RealmTester.setDefault(SWTObservables.getRealm(shell.getDisplay()));
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		
-		RealmTester.setDefault(null);
-	}
-
-	public void testObserveForeground() throws Exception {
-		ISWTObservableValue value = SWTObservables.observeForeground(shell);
-		assertNotNull(value);
-		assertEquals(Color.class, value.getValueType());
-	}
-
-	public void testObserveBackground() throws Exception {
-		ISWTObservableValue value = SWTObservables.observeBackground(shell);
-		assertNotNull(value);
-		assertEquals(Color.class, value.getValueType());
-	}
-
-	public void testObserveFont() throws Exception {
-		ISWTObservableValue value = SWTObservables.observeFont(shell);
-		assertNotNull(value);
-		assertEquals(Font.class, value.getValueType());
-	}
-
-	public void testObserveSelectionOfSpinner() throws Exception {
-		Spinner spinner = new Spinner(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeSelection(spinner);
-		assertNotNull(value);
-		assertTrue(value instanceof SpinnerObservableValue);
-
-		SpinnerObservableValue spinnerObservable = (SpinnerObservableValue) value;
-		assertEquals(SWTProperties.SELECTION, spinnerObservable.getAttribute());
-	}
-
-	public void testObserveSelectionOfButton() throws Exception {
-		Button button = new Button(shell, SWT.PUSH);
-		ISWTObservableValue value = SWTObservables.observeSelection(button);
-		assertNotNull(value);
-		assertTrue(value instanceof ButtonObservableValue);
-	}
-
-	public void testObserveSelectionOfCombo() throws Exception {
-		Combo combo = new Combo(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeSelection(combo);
-		assertNotNull(value);
-		assertTrue(value instanceof ComboObservableValue);
-
-		ComboObservableValue comboObservable = (ComboObservableValue) value;
-		assertEquals(SWTProperties.SELECTION, comboObservable.getAttribute());
-	}
-
-	public void testObserveSelectionOfCCombo() throws Exception {
-		CCombo combo = new CCombo(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeSelection(combo);
-		assertNotNull(value);
-		assertTrue(value instanceof CComboObservableValue);
-
-		CComboObservableValue ccomboObservable = (CComboObservableValue) value;
-		assertEquals(SWTProperties.SELECTION, ccomboObservable.getAttribute());
-	}
-
-	public void testObserveSelectionOfList() throws Exception {
-		List list = new List(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeSelection(list);
-		assertNotNull(value);
-		assertTrue(value instanceof ListObservableValue);
-	}
-	
-	public void testObserveSelectionOfScale() throws Exception {
-		Scale scale = new Scale(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeSelection(scale);
-		assertNotNull(value);
-		assertTrue(value instanceof ScaleObservableValue);
-		
-		ScaleObservableValue scaleObservable = (ScaleObservableValue) value;
-		assertEquals(SWTProperties.SELECTION, scaleObservable.getAttribute());
-	}
-
-	public void testObserveSelectionOfUnsupportedControl() throws Exception {
-		try {
-			Text text = new Text(shell, SWT.NONE);
-			SWTObservables.observeSelection(text);
-			fail("Exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	public void testObserveTextOfText() throws Exception {
-		Text text = new Text(shell, SWT.NONE);
-		assertFalse(text.isListening(SWT.FocusOut));
-
-		ISWTObservableValue value = SWTObservables.observeText(text,
-				SWT.FocusOut);
-		assertNotNull(value);
-		assertTrue(value instanceof TextObservableValue);
-		assertTrue(text.isListening(SWT.FocusOut));
-	}
-
-	public void testObserveTextWithEventOfUnsupportedControl() throws Exception {
-		Label label = new Label(shell, SWT.NONE);
-		try {
-			SWTObservables.observeText(label, SWT.FocusOut);
-			fail("Exception should have been thrown");
-		} catch (Exception e) {
-		}
-	}
-
-	public void testObserveTextOfLabel() throws Exception {
-		Label label = new Label(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeText(label);
-		assertNotNull(label);
-		assertTrue(value instanceof LabelObservableValue);
-	}
-
-	public void testObserveTextOfCLabel() throws Exception {
-		CLabel label = new CLabel(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeText(label);
-		assertNotNull(label);
-		assertTrue(value instanceof CLabelObservableValue);
-	}
-
-	public void testObserveTextOfCombo() throws Exception {
-		Combo combo = new Combo(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeText(combo);
-		assertNotNull(value);
-		assertTrue(value instanceof ComboObservableValue);
-
-		ComboObservableValue comboObservable = (ComboObservableValue) value;
-		assertEquals(SWTProperties.TEXT, comboObservable.getAttribute());
-	}
-
-	public void testObserveTextOfCCombo() throws Exception {
-		CCombo combo = new CCombo(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeText(combo);
-		assertNotNull(value);
-		assertTrue(value instanceof CComboObservableValue);
-
-		CComboObservableValue ccomboObservable = (CComboObservableValue) value;
-		assertEquals(SWTProperties.TEXT, ccomboObservable.getAttribute());
-	}
-
-	public void testObserveTextOfUnsupportedControl() throws Exception {
-		Table table = new Table(shell, SWT.NONE);
-		try {
-			SWTObservables.observeText(table);
-			fail("Exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	public void testObserveItemsOfCombo() throws Exception {
-		Combo combo = new Combo(shell, SWT.NONE);
-		IObservableList list = SWTObservables.observeItems(combo);
-		assertNotNull(list);
-		assertTrue(list instanceof ComboObservableList);
-	}
-
-	public void testObserveItemsOfCCombo() throws Exception {
-		CCombo ccombo = new CCombo(shell, SWT.NONE);
-		IObservableList list = SWTObservables.observeItems(ccombo);
-		assertNotNull(list);
-		assertTrue(list instanceof CComboObservableList);
-	}
-
-	public void testObserveItemsOfList() throws Exception {
-		List list = new List(shell, SWT.NONE);
-		IObservableList observableList = SWTObservables.observeItems(list);
-		assertNotNull(observableList);
-		assertTrue(observableList instanceof ListObservableList);
-	}
-
-	public void testObserveItemsOfUnsupportedControl() throws Exception {
-		Table table = new Table(shell, SWT.NONE);
-		try {
-			SWTObservables.observeItems(table);
-			fail("Exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-
-	public void testObserveSingleSelectionIndexOfTable() throws Exception {
-		Table table = new Table(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables
-				.observeSingleSelectionIndex(table);
-		assertNotNull(value);
-		assertTrue(value instanceof TableSingleSelectionObservableValue);
-	}
-
-	public void testObserveSingleSelectionIndexOfUnsupportedControl()
-			throws Exception {
-		Tree tree = new Tree(shell, SWT.NONE);
-		try {
-			SWTObservables.observeSingleSelectionIndex(tree);
-			fail("Exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-
-		}
-	}
-	
-	public void testObserveMinOfSpinner() throws Exception {
-		Spinner spinner = new Spinner(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeMin(spinner);
-		assertNotNull(value);
-		assertTrue(value instanceof SpinnerObservableValue);
-		
-		SpinnerObservableValue spinnerObservable = (SpinnerObservableValue) value;
-		assertEquals(SWTProperties.MIN, spinnerObservable.getAttribute());
-	}
-	
-	public void testObserveMinOfScale() throws Exception {
-		Scale scale = new Scale(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeMin(scale);
-		assertNotNull(value);
-		assertTrue(value instanceof ScaleObservableValue);
-		
-		ScaleObservableValue scaleObservable = (ScaleObservableValue) value;
-		assertEquals(SWTProperties.MIN, scaleObservable.getAttribute());
-	}
-
-	public void testObserveMinOfUnsupportedControl() throws Exception {
-		Text text = new Text(shell, SWT.NONE);
-		try {
-			SWTObservables.observeMin(text);
-			fail("Exception should have been thrown");
-		} catch (IllegalArgumentException e) {	
-		}
-	}
-	
-	public void testObserveMaxOfSpinner() throws Exception {
-		Spinner spinner = new Spinner(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeMax(spinner);
-		assertNotNull(value);
-		assertTrue(value instanceof SpinnerObservableValue);
-		
-		SpinnerObservableValue spinnerObservable = (SpinnerObservableValue) value;
-		assertEquals(SWTProperties.MAX, spinnerObservable.getAttribute());
-	}
-	
-	public void testObserveMaxOfScale() throws Exception {
-		Scale scale = new Scale(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeMax(scale);
-		assertNotNull(value);
-		assertTrue(value instanceof ScaleObservableValue);
-		
-		ScaleObservableValue scaleObservable = (ScaleObservableValue) value;
-		assertEquals(SWTProperties.MAX, scaleObservable.getAttribute());
-	}
-	
-	public void testObserveMaxOfUnsupportedControl() throws Exception {
-		Text text = new Text(shell, SWT.NONE);
-		try {
-			SWTObservables.observeMax(text);
-			fail("Exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-	
-	public void testObserveEditableOfText() throws Exception {
-		Text text = new Text(shell, SWT.NONE);
-		ISWTObservableValue value = SWTObservables.observeEditable(text);
-		assertNotNull(value);
-		assertTrue(value instanceof TextEditableObservableValue);
-	}
-	
-	public void testObserveEditableOfUnsupportedControl() throws Exception {
-		Label label = new Label(shell, SWT.NONE);
-		try {
-			SWTObservables.observeEditable(label);
-			fail("Exception should have been thrown");
-		} catch (IllegalArgumentException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableListContentProviderTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableListContentProviderTest.java
deleted file mode 100644
index 9154e71..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableListContentProviderTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- ******************************************************************************/
-package org.eclipse.jface.tests.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-
-public class ObservableListContentProviderTest extends
-		AbstractDefaultRealmTestCase {
-	private Shell shell;
-	private TableViewer viewer;
-	private ObservableListContentProvider contentProvider;
-	private IObservableList input;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		shell = new Shell();
-		viewer = new TableViewer(shell, SWT.NONE);
-
-		contentProvider = new ObservableListContentProvider();
-		viewer.setContentProvider(contentProvider);
-
-		input = new WritableList();
-		viewer.setInput(input);
-	}
-
-	protected void tearDown() throws Exception {
-		shell.dispose();
-		viewer = null;
-		input = null;
-		super.tearDown();
-	}
-
-	public void testViewerUpdate_RemoveElementAfterMutation() {
-		Mutable element = new Mutable(1);
-		input.add(element);
-
-		assertEquals(1, viewer.getTable().getItemCount());
-
-		element.id++;
-		input.remove(element);
-
-		assertEquals(0, viewer.getTable().getItemCount());
-	}
-
-	static class Mutable {
-		public int id;
-
-		public Mutable(int id) {
-			this.id = id;
-		}
-
-		public boolean equals(Object obj) {
-			if (obj == this)
-				return true;
-			if (obj == null)
-				return false;
-			if (getClass() != obj.getClass())
-				return false;
-			Mutable that = (Mutable) obj;
-			return this.id == that.id;
-		}
-
-		public int hashCode() {
-			return id;
-		}
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableListTreeContentProviderTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableListTreeContentProviderTest.java
deleted file mode 100644
index 3d2bb24..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableListTreeContentProviderTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 207858)
- *******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.viewers;
-
-import java.util.Arrays;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-
-public class ObservableListTreeContentProviderTest extends
-		AbstractDefaultRealmTestCase {
-	private Shell shell;
-	private TreeViewer viewer;
-	private Tree tree;
-	private ObservableListTreeContentProvider contentProvider;
-	private Object input;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		shell = new Shell();
-		tree = new Tree(shell, SWT.NONE);
-		viewer = new TreeViewer(tree);
-		input = new Object();
-	}
-
-	protected void tearDown() throws Exception {
-		shell.dispose();
-		tree = null;
-		viewer = null;
-		input = null;
-		super.tearDown();
-	}
-
-	private void initContentProvider(IObservableFactory listFactory) {
-		contentProvider = new ObservableListTreeContentProvider(listFactory, null);
-		viewer.setContentProvider(contentProvider);
-		viewer.setInput(input);
-	}
-
-	public void testConstructor_NullArgumentThrowsException() {
-		try {
-			initContentProvider(null);
-			fail("Constructor should have thrown AssertionFailedException");
-		} catch (AssertionFailedException expected) {
-		}
-	}
-
-	public void testGetElements_ChangesFollowObservedList() {
-		final IObservableList elements = new WritableList();
-		final Object input = new Object();
-		initContentProvider(new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return target == input ? elements : null;
-			}
-		});
-
-		assertTrue(Arrays.equals(new Object[0], contentProvider
-				.getElements("unknown input")));
-
-		Object element0 = new Object();
-		elements.add(element0);
-
-		assertTrue(Arrays.equals(new Object[] { element0 }, contentProvider
-				.getElements(input)));
-
-		Object element1 = new Object();
-		elements.add(element1);
-
-		assertTrue(Arrays.equals(new Object[] { element0, element1 },
-				contentProvider.getElements(input)));
-	}
-
-	public void testViewerUpdate_RemoveElementAfterMutation() {
-		final IObservableList children = new WritableList();
-		initContentProvider(new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return target == input ? children : null;
-			}
-		});
-
-		Mutable element = new Mutable();
-		children.add(element);
-		assertEquals(1, tree.getItemCount());
-
-		element.mutate();
-		children.remove(element);
-		assertEquals(0, tree.getItemCount());
-	}
-
-	static class Mutable {
-		private int id;
-
-		public Mutable() {
-			this(0);
-		}
-
-		public Mutable(int id) {
-			this.id = id;
-		}
-
-		public void mutate() {
-			id++;
-		}
-
-		public boolean equals(Object obj) {
-			if (obj == this)
-				return true;
-			if (obj == null)
-				return false;
-			if (getClass() != obj.getClass())
-				return false;
-			Mutable that = (Mutable) obj;
-			return this.id == that.id;
-		}
-
-		public int hashCode() {
-			return id;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableMapLabelProviderTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableMapLabelProviderTest.java
deleted file mode 100644
index cffed54..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableMapLabelProviderTest.java
+++ /dev/null
@@ -1,62 +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
- *     Brad Reynolds - bug 164247
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.viewers;
-
-import java.util.HashSet;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.examples.databinding.ModelObject;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 1.1
- */
-public class ObservableMapLabelProviderTest extends AbstractDefaultRealmTestCase {
-    
-    public void testGetColumnText() throws Exception {
-        WritableSet set = new WritableSet(new HashSet(), Item.class);
-        Item item = new Item();
-        String value = "value";
-        item.setValue(value);
-        set.add(item);
-        
-        ObservableMapLabelProvider labelProvider = new ObservableMapLabelProvider(BeansObservables.observeMap(set, Item.class, "value"));
-        assertEquals(item.getValue(), labelProvider.getColumnText(item, 0));
-    }
-    
-    public void testGetColumnTextNullValue() throws Exception {
-        WritableSet set = new WritableSet(new HashSet(), Item.class);
-        Item item = new Item();
-        set.add(item);   
-        
-        ObservableMapLabelProvider labelProvider = new ObservableMapLabelProvider(BeansObservables.observeMap(set, Item.class, "value"));
-        assertNull(item.getValue());
-        assertEquals("", labelProvider.getColumnText(item, 0));
-    }
-    
-    private static class Item extends ModelObject {
-        private String value;
-        
-        public String getValue() {
-            return value;
-        }
-        
-        public void setValue(String value) {
-            String old = this.value;
-            
-            firePropertyChange("value", old, this.value = value);
-        }
-    }
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableSetContentProviderTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableSetContentProviderTest.java
deleted file mode 100644
index 2d02ff5..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableSetContentProviderTest.java
+++ /dev/null
@@ -1,45 +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
- *     Boris Bokowski, IBM - bug 209484
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.viewers;
-
-import java.util.Arrays;
-
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @since 3.3
- * 
- */
-public class ObservableSetContentProviderTest extends AbstractSWTTestCase {
-	public void testKnownElementsRealm() throws Exception {
-		ObservableSetContentProvider contentProvider = new ObservableSetContentProvider();
-		assertSame("realm for the known elements should be the SWT realm",
-				SWTObservables.getRealm(Display.getDefault()), contentProvider
-						.getKnownElements().getRealm());
-	}
-	
-	public void testKnownElementsAfterSetInput() {
-		ObservableSetContentProvider contentProvider = new ObservableSetContentProvider();
-		TableViewer tableViewer = new TableViewer(getShell());
-		tableViewer.setContentProvider(contentProvider);
-		assertEquals(0, contentProvider.getKnownElements().size());
-		WritableSet input = new WritableSet(Arrays.asList(new String[] {"one","two","three"}), String.class);
-		tableViewer.setInput(input);
-		assertEquals(3, contentProvider.getKnownElements().size());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableSetTreeContentProviderTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableSetTreeContentProviderTest.java
deleted file mode 100644
index 1d5fc47..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableSetTreeContentProviderTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 207858)
- *******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.viewers;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.WritableSet;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jface.databinding.viewers.ObservableSetTreeContentProvider;
-import org.eclipse.jface.internal.databinding.viewers.ObservableViewerElementSet;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-
-public class ObservableSetTreeContentProviderTest extends
-		AbstractDefaultRealmTestCase {
-	private Shell shell;
-	private TreeViewer viewer;
-	private Tree tree;
-	private ObservableSetTreeContentProvider contentProvider;
-	private Object input;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		shell = new Shell();
-		tree = new Tree(shell, SWT.NONE);
-		viewer = new TreeViewer(tree);
-		input = new Object();
-	}
-
-	protected void tearDown() throws Exception {
-		shell.dispose();
-		tree = null;
-		viewer = null;
-		input = null;
-		super.tearDown();
-	}
-
-	private void initContentProvider(IObservableFactory listFactory) {
-		contentProvider = new ObservableSetTreeContentProvider(listFactory, null);
-		viewer.setContentProvider(contentProvider);
-		viewer.setInput(input);
-	}
-
-	public void testConstructor_NullArgumentThrowsException() {
-		try {
-			initContentProvider(null);
-			fail("Constructor should have thrown AssertionFailedException");
-		} catch (AssertionFailedException expected) {
-		}
-	}
-
-	public void testGetElements_ChangesFollowObservedList() {
-		final IObservableSet elements = new WritableSet();
-		final Object input = new Object();
-		initContentProvider(new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return target == input ? elements : null;
-			}
-		});
-
-		assertTrue(Arrays.equals(new Object[0], contentProvider
-				.getElements("unknown input")));
-
-		Object element0 = new Object();
-		elements.add(element0);
-
-		assertTrue(Arrays.equals(new Object[] { element0 }, contentProvider
-				.getElements(input)));
-
-		Object element1 = new Object();
-		elements.add(element1);
-
-		List elementList = Arrays.asList(contentProvider.getElements(input));
-		assertEquals(2, elementList.size());
-		assertTrue(elementList.containsAll(Arrays.asList(new Object[] {
-				element0, element1 })));
-	}
-
-	public void testViewerUpdate_RemoveElementAfterMutation() {
-		IElementComparer comparer = new IElementComparer() {
-			public boolean equals(Object a, Object b) {
-				return a == b;
-			}
-
-			public int hashCode(Object element) {
-				return System.identityHashCode(element);
-			}
-		};
-		viewer.setComparer(comparer);
-
-		final IObservableSet children = ObservableViewerElementSet
-				.withComparer(Realm.getDefault(), null, comparer);
-		initContentProvider(new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return target == input ? children : null;
-			}
-		});
-
-		Mutable element = new Mutable();
-		children.add(element);
-		assertEquals(1, tree.getItemCount());
-
-		element.mutate();
-		assertTrue(children.remove(element));
-		assertEquals(0, tree.getItemCount());
-	}
-
-	static class Mutable {
-		private int id;
-
-		public Mutable() {
-			this(0);
-		}
-
-		public Mutable(int id) {
-			this.id = id;
-		}
-
-		public void mutate() {
-			id++;
-		}
-
-		public boolean equals(Object obj) {
-			if (obj == this)
-				return true;
-			if (obj == null)
-				return false;
-			if (getClass() != obj.getClass())
-				return false;
-			Mutable that = (Mutable) obj;
-			return this.id == that.id;
-		}
-
-		public int hashCode() {
-			return id;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableValueEditingSupportTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableValueEditingSupportTest.java
deleted file mode 100644
index a0f2856..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ObservableValueEditingSupportTest.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.viewers;
-
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.tests.internal.databinding.beans.Bean;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class ObservableValueEditingSupportTest extends AbstractSWTTestCase {
-	private Shell shell;
-
-	private ObservableValueEditingSupportStub editingSupport;
-
-	private DataBindingContext dbc;
-
-	private TableViewer viewer;
-
-	private Bean bean;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.databinding.AbstractSWTTestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		shell = getShell();
-		dbc = new DataBindingContext();
-
-		viewer = new TableViewer(shell);
-		TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
-
-		// Create a standard content provider
-		ObservableListContentProvider peopleViewerContentProvider = new ObservableListContentProvider();
-		viewer.setContentProvider(peopleViewerContentProvider);
-
-		// And a standard label provider that maps columns
-		IObservableMap[] attributeMaps = BeansObservables.observeMaps(
-				peopleViewerContentProvider.getKnownElements(), Bean.class,
-				new String[] { "value" });
-		viewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps));
-
-		editingSupport = new ObservableValueEditingSupportStub(viewer, dbc);
-		column.setEditingSupport(editingSupport);
-
-		WritableList input = WritableList.withElementType(String.class);
-		bean = new Bean();
-		bean.setValue("value");
-		input.add(bean);
-		viewer.setInput(input);
-	}
-
-	public void testInitializeCellEditorValue_OrderOfOperations()
-			throws Exception {
-		assertEquals("precondition", 0, editingSupport.events.length());
-
-		viewer.editElement(bean, 0);
-		assertEquals(
-				"createCellEditorObservable createElementObservable createBinding",
-				editingSupport.events.toString());
-	}
-
-	public void testSaveCellEditorValue_UpdatesModel() throws Exception {
-		Text text = new Text(shell, SWT.NONE);
-		shell.open();
-
-		String newValue = bean.getValue() + "a";
-
-		viewer.editElement(bean, 0);
-		editingSupport.editor.setValue(newValue);
-
-		// force the focus to leave the editor updating the value
-		text.setFocus();
-
-		assertEquals(newValue, bean.getValue());
-	}
-
-	public void testDisposesBinding() throws Exception {
-		Text text = new Text(shell, SWT.NONE);
-		shell.open();
-
-		viewer.editElement(bean, 0);
-		assertFalse("precondition", editingSupport.binding.isDisposed());
-
-		text.setFocus();
-		assertTrue(editingSupport.binding.isDisposed());
-	}
-
-	public void testDisposesTargetObservable() throws Exception {
-		Text text = new Text(shell, SWT.NONE);
-		shell.open();
-
-		viewer.editElement(bean, 0);
-		assertEquals("precondition", 0, editingSupport.target.disposed);
-
-		text.setFocus();
-		assertEquals(1, editingSupport.target.disposed);
-	}
-
-	public void testDisposesModelObservable() throws Exception {
-		Text text = new Text(shell, SWT.NONE);
-		shell.open();
-
-		viewer.editElement(bean, 0);
-		assertEquals("precondition", 0, editingSupport.model.disposed);
-
-		text.setFocus();
-		assertEquals(1, editingSupport.model.disposed);
-	}
-
-	public void testCanEdit_DefaultIsTrue() throws Exception {
-		assertTrue(editingSupport.canEdit(bean));
-	}
-
-	private static class ObservableValueEditingSupportStub extends
-			ObservableValueEditingSupport {
-		StringBuffer events = new StringBuffer();
-
-		TextCellEditor editor;
-
-		Binding binding;
-
-		ObservableValueDecorator target;
-
-		ObservableValueDecorator model;
-
-		/**
-		 * @param viewer
-		 * @param dbc
-		 */
-		public ObservableValueEditingSupportStub(ColumnViewer viewer,
-				DataBindingContext dbc) {
-			super(viewer, dbc);
-			editor = new TextCellEditor((Composite) viewer.getControl());
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport#canEdit(java.lang.Object)
-		 */
-		protected boolean canEdit(Object element) {
-			return super.canEdit(element);
-		}
-
-		public CellEditor getCellEditor() {
-			return editor;
-		}
-
-		private void event(String event) {
-			if (events.length() > 0) {
-				events.append(" ");
-			}
-
-			events.append(event);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport#createCellEditorObservable(org.eclipse.jface.viewers.CellEditor)
-		 */
-		protected IObservableValue doCreateCellEditorObservable(
-				CellEditor cellEditor) {
-			event("createCellEditorObservable");
-
-			return target = new ObservableValueDecorator(SWTObservables
-					.observeText(cellEditor.getControl(), SWT.NONE));
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport#createElementObservable(java.lang.Object,
-		 *      org.eclipse.jface.viewers.ViewerCell)
-		 */
-		protected IObservableValue doCreateElementObservable(Object element,
-				ViewerCell cell) {
-			event("createElementObservable");
-			return model = new ObservableValueDecorator(BeansObservables
-					.observeValue(element, "value"));
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport#createBinding(org.eclipse.core.databinding.observable.value.IObservableValue,
-		 *      org.eclipse.core.databinding.observable.value.IObservableValue)
-		 */
-		protected Binding createBinding(IObservableValue target,
-				IObservableValue model) {
-			event("createBinding");
-
-			return binding = super.createBinding(target, model);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.EditingSupport#getCellEditor(java.lang.Object)
-		 */
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-	}
-
-	/**
-	 * Decorator that will allow for tracking calls to dispose(). We really need
-	 * an isDisposed() method on IObservable...
-	 */
-	private static class ObservableValueDecorator implements IObservableValue {
-		int disposed;
-
-		IObservableValue delegate;
-
-		ObservableValueDecorator(IObservableValue delegate) {
-			this.delegate = delegate;
-		}
-
-		public synchronized void dispose() {
-			disposed++;
-			delegate.dispose();
-		}
-
-		public void addChangeListener(IChangeListener listener) {
-			delegate.addChangeListener(listener);
-		}
-
-		public void addStaleListener(IStaleListener listener) {
-			delegate.addStaleListener(listener);
-		}
-
-		public void addValueChangeListener(IValueChangeListener listener) {
-			delegate.addValueChangeListener(listener);
-		}
-
-		public Realm getRealm() {
-			return delegate.getRealm();
-		}
-
-		public Object getValue() {
-			return delegate.getValue();
-		}
-
-		public Object getValueType() {
-			return delegate.getValueType();
-		}
-
-		public boolean isStale() {
-			return delegate.isStale();
-		}
-
-		public void removeChangeListener(IChangeListener listener) {
-			delegate.removeChangeListener(listener);
-		}
-
-		public void removeStaleListener(IStaleListener listener) {
-			delegate.removeStaleListener(listener);
-		}
-
-		public void removeValueChangeListener(IValueChangeListener listener) {
-			delegate.removeValueChangeListener(listener);
-		}
-
-		public void setValue(Object value) {
-			delegate.setValue(value);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ViewersObservablesTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ViewersObservablesTest.java
deleted file mode 100644
index 56d24ef..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/viewers/ViewersObservablesTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 206839)
- ******************************************************************************/
-
-package org.eclipse.jface.tests.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.internal.databinding.viewers.ViewerInputObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Tests for ViewersObservables
- * 
- * @since 1.2
- */
-public class ViewersObservablesTest extends AbstractDefaultRealmTestCase {
-	TableViewer viewer;
-	Realm realm;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		realm = SWTObservables.getRealm(Display.getCurrent());
-		Shell shell = new Shell();
-		viewer = new TableViewer(shell, SWT.NONE);
-	}
-
-	protected void tearDown() throws Exception {
-		Shell shell = viewer.getTable().getShell();
-		if (!shell.isDisposed())
-			shell.dispose();
-		shell = null;
-		realm = null;
-		super.tearDown();
-	}
-
-	public void testObserveInput_InstanceOfViewerInputObservableValue() {
-		IObservableValue observable = ViewersObservables.observeInput(viewer);
-		assertTrue(observable instanceof ViewerInputObservableValue);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/databinding/mask/internal/EditMaskLexerAndTokenTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/databinding/mask/internal/EditMaskLexerAndTokenTest.java
deleted file mode 100755
index 040ae6c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/databinding/mask/internal/EditMaskLexerAndTokenTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.examples.databinding.mask.internal;
-
-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/examples/databinding/mask/internal/EditMaskParserTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/databinding/mask/internal/EditMaskParserTest.java
deleted file mode 100755
index 8a2ceb4..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/examples/databinding/mask/internal/EditMaskParserTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.examples.databinding.mask.internal;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.examples.databinding.mask.EditMaskParseException;
-import org.eclipse.jface.examples.databinding.mask.internal.EditMaskParser;
-
-/**
- * @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/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/swt/ButtonObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ButtonObservableValueTest.java
deleted file mode 100644
index 9b84d92..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ButtonObservableValueTest.java
+++ /dev/null
@@ -1,153 +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
- *     Ashley Cambrell - bug 198904
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.internal.databinding.swt.ButtonObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class ButtonObservableValueTest extends AbstractSWTTestCase {
-	private Button button;
-	private ButtonObservableValue observableValue;
-	private ValueChangeEventTracker listener;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		Shell shell = getShell();
-		button = new Button(shell, SWT.CHECK);
-		observableValue = new ButtonObservableValue(
-				button);
-		listener = new ValueChangeEventTracker();
-	}
-	
-	public void testSelection_ChangeNotifiesObservable() throws Exception {
-		observableValue.addValueChangeListener(listener);
-		button.setSelection(true);
-
-		// precondition
-		assertEquals(0, listener.count);
-		button.notifyListeners(SWT.Selection, null);
-
-		assertEquals("Selection event should notify observable.", 1,
-				listener.count);
-	}
-	
-	public void testSelection_NoChange() throws Exception {
-		button.setSelection(true);
-		button.notifyListeners(SWT.Selection, null);
-		observableValue.addValueChangeListener(listener);
-		
-		//precondition
-		assertEquals(0, listener.count);
-		
-		button.notifyListeners(SWT.Selection, null);
-		assertEquals("Value did not change.  Listeners should not have been notified.", 0, listener.count);
-	}
-	
-	public void testSetValue_NullConvertedToFalse() {
-		button.setSelection(true);
-		assertEquals(Boolean.TRUE, observableValue.getValue());
-
-		observableValue.setValue(null);
-		assertEquals(Boolean.FALSE, observableValue.getValue());
-	}
-
-	public void testDispose() throws Exception {
-		ValueChangeEventTracker testCounterValueChangeListener = new ValueChangeEventTracker();
-		observableValue.addValueChangeListener(testCounterValueChangeListener);
-
-		assertEquals(Boolean.FALSE, observableValue.getValue());
-		assertFalse(button.getSelection());
-
-		button.setSelection(true);
-		button.notifyListeners(SWT.Selection, null);
-
-		assertEquals(1, testCounterValueChangeListener.count);
-		assertEquals(Boolean.TRUE, observableValue.getValue());
-		assertTrue(button.getSelection());
-
-		observableValue.dispose();
-
-		button.setSelection(false);
-		button.notifyListeners(SWT.Selection, null);
-
-		assertEquals(1, testCounterValueChangeListener.count);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ButtonObservableValueTest.class.getName());
-		suite.addTestSuite(ButtonObservableValueTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		Shell shell;
-
-		Button button;
-
-		public void setUp() {
-			super.setUp();
-
-			shell = new Shell();
-			button = new Button(shell, SWT.CHECK);
-		}
-
-		public void tearDown() {
-			super.tearDown();
-
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ButtonObservableValue(realm, button);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Boolean.TYPE;
-		}
-
-		public void change(IObservable observable) {
-			button.setSelection(changeValue(button));
-			button.notifyListeners(SWT.Selection, null);
-		}
-		
-		public Object createValue(IObservableValue observable) {
-			return Boolean.valueOf(changeValue(button));
-		}
-		
-		private boolean changeValue(Button button) {
-			return !button.getSelection();
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueSelectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueSelectionTest.java
deleted file mode 100644
index dc48c2a..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueSelectionTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.databinding.swt.ISWTObservable;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.CComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class CComboObservableValueSelectionTest extends TestCase {
-	private Delegate delegate;
-
-	private CCombo combo;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = new Delegate();
-		delegate.setUp();
-		combo = delegate.combo;
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		delegate.tearDown();
-	}
-
-	public void testSelection_NotifiesObservable() throws Exception {
-		IObservableValue observable = (IObservableValue) delegate
-				.createObservable(SWTObservables.getRealm(Display.getDefault()));
-
-		ValueChangeEventTracker listener = ValueChangeEventTracker.observe(observable);
-		combo.select(0);
-
-		assertEquals("Observable was not notified.", 1, listener.count);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(CComboObservableValueSelectionTest.class.getName());
-		suite.addTestSuite(CComboObservableValueSelectionTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		/* package */CCombo combo;
-
-		public void setUp() {
-			shell = new Shell();
-			combo = new CCombo(shell, SWT.NONE);
-			combo.add("a");
-			combo.add("b");
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new CComboObservableValue(realm, combo,
-					SWTProperties.SELECTION);
-		}
-
-		public void change(IObservable observable) {
-			int index = combo
-					.indexOf((String) createValue((IObservableValue) observable));
-
-			combo.select(index);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			CCombo combo = ((CCombo) ((ISWTObservable) observable).getWidget());
-			switch (combo.getSelectionIndex()) {
-			case -1:
-				// fall thru
-			case 1:
-				return combo.getItem(0);
-			case 0:
-				return combo.getItem(1);
-			default:
-				throw new RuntimeException("Unexpected selection.");
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueTest.java
deleted file mode 100644
index e89fe42..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueTest.java
+++ /dev/null
@@ -1,73 +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
- *     Ashley Cambrell - bug 198904
- *     Eric Rizzo - bug 134884
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.internal.databinding.swt.CComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-
-/**
- * @since 3.2
- */
-public class CComboObservableValueTest extends AbstractSWTTestCase {
-	public void testDispose() throws Exception {
-		CCombo combo = new CCombo(getShell(), SWT.NONE);
-		CComboObservableValue observableValue = new CComboObservableValue(
-				combo, SWTProperties.TEXT);
-
-		ValueChangeEventTracker testCounterValueChangeListener = new ValueChangeEventTracker();
-		observableValue.addValueChangeListener(testCounterValueChangeListener);
-
-		assertEquals("", combo.getText());
-		assertEquals("", observableValue.getValue());
-
-		String expected1 = "Test123";
-		combo.setText(expected1);
-
-		assertEquals(1, testCounterValueChangeListener.count);
-		assertEquals(expected1, combo.getText());
-		assertEquals(expected1, observableValue.getValue());
-
-		observableValue.dispose();
-
-		String expected2 = "NewValue123";
-		combo.setText(expected2);
-
-		assertEquals(1, testCounterValueChangeListener.count);
-		assertEquals(expected2, combo.getText());
-	}
-
-	public void testSetValueWithNull() {
-		testSetValueWithNull(SWTProperties.TEXT);
-		testSetValueWithNull(SWTProperties.SELECTION);
-	}
-
-	protected void testSetValueWithNull(String observableMode) {
-		CCombo combo = new CCombo(getShell(), SWT.NONE);
-		combo.setItems(new String[] {"one", "two", "three"});
-		CComboObservableValue observable = new CComboObservableValue(
-				combo, observableMode);
-
-		observable.doSetValue("two");
-		assertEquals("two", combo.getText());
-		assertEquals(1, combo.getSelectionIndex());
-
-		observable.doSetValue(null);
-		assertEquals("", combo.getText());
-		assertEquals(-1, combo.getSelectionIndex());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueTextTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueTextTest.java
deleted file mode 100644
index 246879f..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboObservableValueTextTest.java
+++ /dev/null
@@ -1,107 +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
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.databinding.swt.ISWTObservable;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.CComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class CComboObservableValueTextTest extends TestCase {
-	private Delegate delegate;
-
-	private CCombo combo;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = new Delegate();
-		delegate.setUp();
-		combo = delegate.combo;
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		delegate.tearDown();
-	}
-
-	public void testModify_NotifiesObservable() throws Exception {
-		IObservableValue observable = delegate
-				.createObservableValue(SWTObservables.getRealm(Display
-						.getDefault()));
-		ValueChangeEventTracker listener = ValueChangeEventTracker
-				.observe(observable);
-
-		combo.setText((String) delegate.createValue(observable));
-
-		assertEquals("Observable was not notified.", 1, listener.count);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(CComboObservableValueTextTest.class.getName());
-		suite.addTestSuite(CComboObservableValueTextTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		/* package */CCombo combo;
-
-		private Shell shell;
-
-		public void setUp() {
-			shell = new Shell();
-			combo = new CCombo(shell, SWT.NONE);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new CComboObservableValue(realm, combo, SWTProperties.TEXT);
-		}
-
-		public void change(IObservable observable) {
-			CCombo combo = (CCombo) ((ISWTObservable) observable).getWidget();
-			combo.setText(combo.getText() + "a");
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return observable.getValue() + "a";
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboSingleSelectionObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboSingleSelectionObservableValueTest.java
deleted file mode 100644
index 36d0bc7..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CComboSingleSelectionObservableValueTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Ashley Cambrell - bug 198903
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.ISWTObservable;
-import org.eclipse.jface.internal.databinding.swt.CComboSingleSelectionObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class CComboSingleSelectionObservableValueTest extends AbstractSWTTestCase {
-	public void testSetValue() throws Exception {
-		CCombo combo = new CCombo(getShell(), SWT.NONE);
-		CComboSingleSelectionObservableValue observableValue = new CComboSingleSelectionObservableValue(
-				combo);
-		combo.add("Item1");
-		combo.add("Item2");
-
-		assertEquals(-1, combo.getSelectionIndex());
-		assertEquals(-1, ((Integer) observableValue.getValue()).intValue());
-
-		Integer value = new Integer(1);
-		observableValue.setValue(value);
-		assertEquals("combo selection index", value.intValue(), combo
-				.getSelectionIndex());
-		assertEquals("observable value", value, observableValue.getValue());
-
-		assertEquals("Item2", combo.getText());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(CComboSingleSelectionObservableValueTest.class.getName());
-		suite.addTestSuite(CComboSingleSelectionObservableValueTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private CCombo combo;
-		private Shell shell;
-
-		public void setUp() {
-			shell = new Shell();
-			combo = new CCombo(shell, SWT.NONE);
-			combo.add("0");
-			combo.add("1");
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new CComboSingleSelectionObservableValue(realm, combo);
-		}
-
-		public void change(IObservable observable) {
-			int index = _createValue((IObservableValue) observable);
-			combo.select(index);
-			combo.notifyListeners(SWT.Selection, null);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Integer.TYPE;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return new Integer(_createValue(observable));
-		}
-		
-		private int _createValue(IObservableValue observable) {
-			CCombo combo = ((CCombo) ((ISWTObservable) observable).getWidget());
-			int value = Math.max(0, combo.getSelectionIndex());
-			
-			//returns either 0 or 1 depending upon current value
-			return Math.abs(value - 1);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CLabelObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CLabelObservableValueTest.java
deleted file mode 100644
index abdf4e4..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/CLabelObservableValueTest.java
+++ /dev/null
@@ -1,106 +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
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.CLabelObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- * 
- */
-public class CLabelObservableValueTest extends TestCase {
-	private Delegate delegate;
-	private IObservableValue observable;
-	private CLabel label;
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		delegate = new Delegate();
-		delegate.setUp();
-		label = delegate.label;
-		observable = delegate.createObservableValue(SWTObservables.getRealm(Display.getDefault()));
-	}
-	
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		
-		delegate.tearDown();
-		observable.dispose();
-	}
-	
-    public void testSetValue() throws Exception {
-    	//preconditions
-        assertEquals(null, label.getText());
-        assertEquals(null, observable.getValue());
-        
-        String value = "value";
-        observable.setValue(value);
-        assertEquals("label text", value, label.getText());
-        assertEquals("observable value", value, observable.getValue());
-    }
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(CLabelObservableValueTest.class.getName());
-		suite.addTestSuite(CLabelObservableValueTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		CLabel label;
-
-		public void setUp() {
-			shell = new Shell();
-			label = new CLabel(shell, SWT.NONE);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new CLabelObservableValue(realm, label);
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue value = (IObservableValue) observable;
-			value.setValue(value.getValue() + "a");
-		}
-		
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-		
-		public Object createValue(IObservableValue observable) {
-			return observable.getValue() + "a";
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueSelectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueSelectionTest.java
deleted file mode 100644
index 48d431d..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueSelectionTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.databinding.swt.ISWTObservable;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.ComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- *
- */
-public class ComboObservableValueSelectionTest extends TestCase {
-	private Delegate delegate;
-
-	private Combo combo;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = new Delegate();
-		delegate.setUp();
-		combo = delegate.combo;
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		delegate.tearDown();
-	}
-
-	public void testSelection_NotifiesObservable() throws Exception {
-		IObservableValue observable = (IObservableValue) delegate
-				.createObservable(SWTObservables.getRealm(Display.getDefault()));
-
-		ValueChangeEventTracker listener = ValueChangeEventTracker
-				.observe(observable);
-		combo.select(0);
-		combo.notifyListeners(SWT.Selection, null);
-
-		assertEquals("Observable was not notified.", 1, listener.count);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ComboObservableValueSelectionTest.class.toString());
-		suite.addTestSuite(ComboObservableValueSelectionTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		/* package */Combo combo;
-
-		public void setUp() {
-			shell = new Shell();
-			combo = new Combo(shell, SWT.NONE);
-			combo.add("a");
-			combo.add("b");
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ComboObservableValue(realm, combo,
-					SWTProperties.SELECTION);
-		}
-
-		public void change(IObservable observable) {
-			int index = combo
-					.indexOf((String) createValue((IObservableValue) observable));
-
-			combo.select(index);
-			combo.notifyListeners(SWT.Selection, null);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			Combo combo = ((Combo) ((ISWTObservable) observable).getWidget());
-			switch (combo.getSelectionIndex()) {
-			case -1:
-				// fall thru
-			case 1:
-				return combo.getItem(0);
-			case 0:
-				return combo.getItem(1);
-			default:
-				throw new RuntimeException("Unexpected selection.");
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueTest.java
deleted file mode 100644
index 0423bb2..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueTest.java
+++ /dev/null
@@ -1,75 +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
- *     Ashley Cambrell - bug 198904
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.internal.databinding.swt.ComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * @since 3.2
- * @no
- */
-public class ComboObservableValueTest extends AbstractSWTTestCase {
-	public void testDispose() throws Exception {
-		Combo combo = new Combo(getShell(), SWT.NONE);
-		ComboObservableValue observableValue = new ComboObservableValue(combo,
-				SWTProperties.TEXT);
-		ValueChangeEventTracker testCounterValueChangeListener = new ValueChangeEventTracker();
-		observableValue.addValueChangeListener(testCounterValueChangeListener);
-
-		assertEquals("", combo.getText());
-		assertEquals("", observableValue.getValue());
-
-		String expected1 = "Test123";
-		combo.setText(expected1);
-
-		assertEquals(1, testCounterValueChangeListener.count);
-		assertEquals(expected1, combo.getText());
-		assertEquals(expected1, observableValue.getValue());
-
-		observableValue.dispose();
-
-		String expected2 = "NewValue123";
-		combo.setText(expected2);
-
-		assertEquals(1, testCounterValueChangeListener.count);
-		assertEquals(expected2, combo.getText());
-	}
-
-	public void testSetValueWithNull() {
-		testSetValueWithNull(SWTProperties.TEXT);
-		testSetValueWithNull(SWTProperties.SELECTION);
-	}
-
-	protected void testSetValueWithNull(String observableMode) {
-		Combo combo = new Combo(getShell(), SWT.NONE);
-		combo.setItems(new String[] {"one", "two", "three"});
-		ComboObservableValue observable = new ComboObservableValue(
-				combo, observableMode);
-
-		observable.doSetValue("two");
-		assertEquals("two", combo.getText());
-		if (observableMode.equals(SWTProperties.SELECTION)) {
-			assertEquals("expect selection at index 1 in mode " + observableMode, 1, combo.getSelectionIndex());
-		}
-
-		if (observableMode.equals(SWTProperties.TEXT)) {
-			observable.doSetValue(null);
-			assertEquals("expect empty text in mode " + observableMode, "", combo.getText());
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueTextTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueTextTest.java
deleted file mode 100644
index 5b73771..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboObservableValueTextTest.java
+++ /dev/null
@@ -1,108 +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
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.databinding.swt.ISWTObservable;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.ComboObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- * 
- */
-public class ComboObservableValueTextTest extends TestCase {
-	private Delegate delegate;
-
-	private Combo combo;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = new Delegate();
-		delegate.setUp();
-		combo = delegate.combo;
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		delegate.tearDown();
-	}
-
-	public void testModify_NotifiesObservable() throws Exception {
-		IObservableValue observable = delegate
-				.createObservableValue(SWTObservables.getRealm(Display
-						.getDefault()));
-		ValueChangeEventTracker listener = ValueChangeEventTracker
-				.observe(observable);
-
-		combo.setText((String) delegate.createValue(observable));
-
-		assertEquals("Observable was not notified.", 1, listener.count);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ComboObservableValueTextTest.class.toString());
-		suite.addTestSuite(ComboObservableValueTextTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		/* package */Combo combo;
-
-		private Shell shell;
-
-		public void setUp() {
-			shell = new Shell();
-			combo = new Combo(shell, SWT.NONE);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ComboObservableValue(realm, combo, SWTProperties.TEXT);
-		}
-
-		public void change(IObservable observable) {
-			Combo combo = (Combo) ((ISWTObservable) observable).getWidget();
-			combo.setText(combo.getText() + "a");
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return observable.getValue() + "a";
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboSingleSelectionObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboSingleSelectionObservableValueTest.java
deleted file mode 100644
index b8b3154..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ComboSingleSelectionObservableValueTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Ashley Cambrell and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Ashley Cambrell - initial API and implementation (bug 198903)
- ******************************************************************************/
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.jface.internal.databinding.swt.ComboSingleSelectionObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-
-/**
- * @since 3.2
- *
- */
-public class ComboSingleSelectionObservableValueTest extends
-		AbstractSWTTestCase {
-	public void testSetValue() throws Exception {
-		Combo combo = new Combo(getShell(), SWT.NONE);
-		ComboSingleSelectionObservableValue observableValue = new ComboSingleSelectionObservableValue(
-				combo);
-		combo.add("Item1");
-		combo.add("Item2");
-
-		assertEquals(-1, combo.getSelectionIndex());
-		assertEquals(-1, ((Integer) observableValue.getValue()).intValue());
-
-		Integer value = new Integer(1);
-		observableValue.setValue(value);
-		assertEquals("combo selection index", value.intValue(), combo
-				.getSelectionIndex());
-		assertEquals("observable value", value, observableValue.getValue());
-
-		assertEquals("Item2", combo.getText());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ControlObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ControlObservableValueTest.java
deleted file mode 100644
index 9e9db62..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ControlObservableValueTest.java
+++ /dev/null
@@ -1,192 +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
- *     Brad Reynolds - bug 170848
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.jface.internal.databinding.swt.ControlObservableValue;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- * 
- */
-public class ControlObservableValueTest extends AbstractDefaultRealmTestCase {
-	private Shell shell;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		shell = new Shell();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		if (shell != null && !shell.isDisposed()) {
-			shell.dispose();
-			shell = null;
-		}
-	}
-
-	public void testSetValueEnabled() throws Exception {
-		ControlObservableValue observableValue = new ControlObservableValue(
-				shell, SWTProperties.ENABLED);
-		Boolean value = Boolean.FALSE;
-		observableValue.setValue(value);
-		assertFalse(shell.isEnabled());
-	}
-
-	public void testGetValueEnabled() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.ENABLED);
-		shell.setEnabled(false);
-		assertEquals(Boolean.FALSE, value.getValue());
-	}
-
-	public void testGetValueTypeEnabled() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.ENABLED);
-		assertEquals(boolean.class, value.getValueType());
-	}
-
-	public void testSetValueVisible() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.VISIBLE);
-		value.setValue(Boolean.FALSE);
-		assertFalse(shell.isVisible());
-	}
-
-	public void testGetValueVisible() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.VISIBLE);
-		shell.setVisible(false);
-		assertEquals(Boolean.FALSE, value.getValue());
-	}
-
-	public void testGetValueTypeVisible() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.VISIBLE);
-		assertEquals(Boolean.TYPE, value.getValueType());
-	}
-
-	public void testSetValueForeground() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.FOREGROUND);
-
-		Color color = shell.getDisplay().getSystemColor(SWT.COLOR_BLACK);
-
-		value.setValue(color);
-		assertEquals(color, shell.getForeground());
-	}
-
-	public void testGetValueForeground() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.FOREGROUND);
-
-		Color color = shell.getDisplay().getSystemColor(SWT.COLOR_BLACK);
-		shell.setForeground(color);
-		assertEquals(color, value.getValue());
-	}
-
-	public void testGetValueTypeForgroundColor() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.FOREGROUND);
-		assertEquals(Color.class, value.getValueType());
-	}
-
-	public void testGetValueBackground() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.BACKGROUND);
-
-		Color color = shell.getDisplay().getSystemColor(SWT.COLOR_BLACK);
-		shell.setBackground(color);
-		assertEquals(color, value.getValue());
-	}
-
-	public void testSetValueBackground() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.BACKGROUND);
-
-		Color color = shell.getDisplay().getSystemColor(SWT.COLOR_BLACK);
-
-		value.setValue(color);
-		assertEquals(color, shell.getBackground());
-	}
-
-	public void testGetValueTypeBackgroundColor() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.BACKGROUND);
-		assertEquals(Color.class, value.getValueType());
-	}
-
-	public void testGetValueTypeTooltip() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.TOOLTIP_TEXT);
-		assertEquals(String.class, value.getValueType());
-	}
-
-	public void testSetValueFont() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.FONT);
-
-		Font font = JFaceResources.getDialogFont();
-
-		value.setValue(font);
-		assertEquals(font, shell.getFont());
-	}
-
-	public void testGetValueFont() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.FONT);
-
-		Font font = JFaceResources.getDialogFont();
-		shell.setFont(font);
-		assertEquals(font, value.getValue());
-	}
-
-	public void testGetValueTypeFont() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.FONT);
-		assertEquals(Font.class, value.getValueType());
-	}
-
-	public void testSetValueTooltipText() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.TOOLTIP_TEXT);
-		String text = "text";
-		value.setValue(text);
-		assertEquals(text, shell.getToolTipText());
-	}
-
-	public void testGetValueTooltipText() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.TOOLTIP_TEXT);
-		String text = "text";
-		shell.setToolTipText(text);
-		assertEquals(text, value.getValue());
-	}
-
-	public void testGetValueTypeTooltipText() throws Exception {
-		ControlObservableValue value = new ControlObservableValue(shell,
-				SWTProperties.TOOLTIP_TEXT);
-		assertEquals(String.class, value.getValueType());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/DelayedObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/DelayedObservableValueTest.java
deleted file mode 100644
index 1cc0243..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/DelayedObservableValueTest.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 212223)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.provisional.swt.AbstractSWTObservableValue;
-import org.eclipse.jface.internal.databinding.swt.DelayedObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Tests for DelayedObservableValue
- * 
- * @since 1.2
- */
-public class DelayedObservableValueTest extends AbstractDefaultRealmTestCase {
-	private Display display;
-	private Shell shell;
-	private Object oldValue;
-	private Object newValue;
-	private SWTObservableValueStub target;
-	private DelayedObservableValue delayed;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		display = Display.getCurrent();
-		shell = new Shell(display);
-		target = new SWTObservableValueStub(SWTObservables.getRealm(display),
-				shell);
-		oldValue = new Object();
-		newValue = new Object();
-		target.setValue(oldValue);
-		delayed = new DelayedObservableValue(1, target);
-	}
-
-	protected void tearDown() throws Exception {
-		target.dispose();
-		target = null;
-		shell.dispose();
-		shell = null;
-		display = null;
-		super.tearDown();
-	}
-
-	public void testIsStale_WhenTargetIsStale() {
-		assertFalse(target.isStale());
-		assertFalse(delayed.isStale());
-
-		target.fireStale();
-
-		assertTrue(target.isStale());
-		assertTrue(delayed.isStale());
-	}
-
-	public void testIsStale_DuringDelay() {
-		assertFalse(target.isStale());
-		assertFalse(delayed.isStale());
-
-		target.setValue(newValue);
-
-		assertFalse(target.isStale());
-		assertTrue(delayed.isStale());
-	}
-
-	public void testGetValueType_SameAsTarget() {
-		assertEquals(target.getValueType(), delayed.getValueType());
-	}
-
-	public void testGetValue_FiresPendingValueChange() {
-		assertFiresPendingValueChange(new Runnable() {
-			public void run() {
-				final Object value = delayed.getValue();
-				assertEquals(newValue, value);
-			}
-		});
-	}
-
-	public void testFocusOut_FiresPendingValueChange() {
-		assertFiresPendingValueChange(new Runnable() {
-			public void run() {
-				// simulate focus-out event
-				shell.notifyListeners(SWT.FocusOut, new Event());
-			}
-		});
-	}
-
-	public void testSetValue_PropagatesToTarget() {
-		assertEquals(oldValue, delayed.getValue());
-		assertEquals(oldValue, target.getValue());
-
-		delayed.setValue(newValue);
-
-		assertEquals(newValue, target.getValue());
-		assertEquals(newValue, delayed.getValue());
-	}
-
-	public void testSetValue_CachesGetValueFromTarget() {
-		Object overrideValue = target.overrideValue = new Object();
-
-		assertEquals(oldValue, delayed.getValue());
-		assertEquals(oldValue, target.getValue());
-
-		delayed.setValue(newValue);
-
-		assertEquals(overrideValue, target.getValue());
-		assertEquals(overrideValue, delayed.getValue());
-	}
-
-	public void testSetValue_FiresValueChangeEvent() {
-		ValueChangeEventTracker targetTracker = ValueChangeEventTracker
-				.observe(target);
-		ValueChangeEventTracker delayedTracker = ValueChangeEventTracker
-				.observe(delayed);
-
-		delayed.setValue(newValue);
-
-		assertEquals(1, targetTracker.count);
-		assertEquals(oldValue, targetTracker.event.diff.getOldValue());
-		assertEquals(newValue, targetTracker.event.diff.getNewValue());
-
-		assertEquals(1, delayedTracker.count);
-		assertEquals(oldValue, delayedTracker.event.diff.getOldValue());
-		assertEquals(newValue, delayedTracker.event.diff.getNewValue());
-	}
-
-	public void testWait_FiresPendingValueChange() {
-		assertFiresPendingValueChange(new Runnable() {
-			public void run() {
-				// Give plenty of time for display to run timer task
-				long timeout = time() + 5000;
-				do {
-					sleep(10);
-					processDisplayEvents();
-				} while (delayed.isStale() && time() < timeout);
-			}
-
-			private void sleep(int delay) {
-				try {
-					Thread.sleep(delay);
-				} catch (InterruptedException e) {
-					throw new RuntimeException(e);
-				}
-			}
-
-			private void processDisplayEvents() {
-				while (display.readAndDispatch()) {
-				}
-			}
-
-			private long time() {
-				return System.currentTimeMillis();
-			}
-		});
-	}
-
-	private void assertFiresPendingValueChange(Runnable runnable) {
-		ValueChangeEventTracker tracker = ValueChangeEventTracker
-				.observe(delayed);
-
-		target.setValue(newValue);
-		assertTrue(delayed.isStale());
-		assertEquals(0, tracker.count);
-
-		runnable.run();
-
-		assertFalse(delayed.isStale());
-		assertEquals(1, tracker.count);
-		assertEquals(oldValue, tracker.event.diff.getOldValue());
-		assertEquals(newValue, tracker.event.diff.getNewValue());
-	}
-
-	static class SWTObservableValueStub extends AbstractSWTObservableValue {
-		private Object value;
-		private boolean stale;
-
-		Object overrideValue;
-
-		public SWTObservableValueStub(Realm realm, Widget widget) {
-			super(realm, widget);
-		}
-
-		protected Object doGetValue() {
-			return value;
-		}
-
-		protected void doSetValue(Object value) {
-			Object oldValue = this.value;
-			if (overrideValue != null)
-				value = overrideValue;
-			this.value = value;
-			stale = false;
-			fireValueChange(Diffs.createValueDiff(oldValue, value));
-		}
-
-		public Object getValueType() {
-			return Object.class;
-		}
-
-		protected void fireStale() {
-			stale = true;
-			super.fireStale();
-		}
-
-		public boolean isStale() {
-			return stale;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(DelayedObservableValueTest.class.getName());
-		suite.addTestSuite(DelayedObservableValueTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableValueContractDelegate {
-		Shell shell;
-
-		public void setUp() {
-			super.setUp();
-			shell = new Shell();
-		}
-
-		public void tearDown() {
-			shell.dispose();
-			shell = null;
-			super.tearDown();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new DelayedObservableValue(0, new SWTObservableValueStub(
-					realm, shell));
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Object.class;
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return new Object();
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/LabelObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/LabelObservableValueTest.java
deleted file mode 100644
index 55abc7e..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/LabelObservableValueTest.java
+++ /dev/null
@@ -1,109 +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
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.LabelObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class LabelObservableValueTest extends ObservableDelegateTest {
-	private Delegate delegate;
-	private IObservableValue observable;
-	private Label label;
-	
-	public LabelObservableValueTest() {
-		this(null);
-	}
-	
-	public LabelObservableValueTest(String testName) {
-		super(testName, new Delegate());
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		delegate = (Delegate) getObservableContractDelegate();
-		observable = (IObservableValue) getObservable();
-		label = delegate.label;
-	}
-	
-	protected IObservable doCreateObservable() {
-		return getObservableContractDelegate().createObservable(SWTObservables.getRealm(Display.getDefault()));
-	}
-	
-    public void testSetValue() throws Exception {
-    	//preconditions
-        assertEquals("", label.getText());
-        assertEquals("", observable.getValue());
-        
-        String value = "value";
-        observable.setValue(value);
-        assertEquals("label text", value, label.getText());
-        assertEquals("observable value", value, observable.getValue());
-    }
-    
-    public static Test suite() {
-    	TestSuite suite = new TestSuite(LabelObservableValueTest.class.toString());
-    	suite.addTestSuite(LabelObservableValueTest.class);
-    	suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-    	return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		Label label;
-
-		public void setUp() {
-			shell = new Shell();
-			label = new Label(shell, SWT.NONE);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new LabelObservableValue(realm, label);
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue value = (IObservableValue) observable;
-			value.setValue(value.getValue() + "a");
-		}
-		
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-		
-		public Object createValue(IObservableValue observable) {
-			return observable.getValue() + "a";
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ListSingleSelectionObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ListSingleSelectionObservableValueTest.java
deleted file mode 100644
index 0bc7315..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ListSingleSelectionObservableValueTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Ashley Cambrell and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Ashley Cambrell - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.jface.internal.databinding.swt.ListSingleSelectionObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.List;
-
-/**
- * @since 3.2
- *
- */
-public class ListSingleSelectionObservableValueTest extends AbstractSWTTestCase {
-	public void testSetValue() throws Exception {
-		List list = new List(getShell(), SWT.NONE);
-		ListSingleSelectionObservableValue observableValue = new ListSingleSelectionObservableValue(
-				list);
-		list.add("Item1");
-
-		assertEquals(-1, list.getSelectionIndex());
-		assertEquals(-1, ((Integer) observableValue.getValue()).intValue());
-
-		Integer value = new Integer(0);
-		observableValue.setValue(value);
-		assertEquals("list selection index", value.intValue(), list
-				.getSelectionIndex());
-		assertEquals("observable value", value, observableValue.getValue());
-	}
-
-	public void testDispose() throws Exception {
-		List list = new List(getShell(), SWT.NONE);
-		ListSingleSelectionObservableValue observableValue = new ListSingleSelectionObservableValue(
-				list);
-		list.add("Item1");
-		list.add("Item2");
-
-		assertEquals(-1, list.getSelectionIndex());
-		assertEquals(-1, ((Integer) observableValue.getValue()).intValue());
-
-		list.select(0);
-		list.notifyListeners(SWT.Selection, null);
-		assertEquals(0, list.getSelectionIndex());
-		assertEquals(new Integer(0), observableValue.getValue());
-
-		observableValue.dispose();
-
-		list.select(1);
-		list.notifyListeners(SWT.Selection, null);
-		assertEquals(1, list.getSelectionIndex());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SWTObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SWTObservableListTest.java
deleted file mode 100644
index fe9ee8f..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SWTObservableListTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 208858)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.conformance.MutableObservableListContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.internal.databinding.swt.SWTObservableList;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-
-/**
- * @since 3.3
- */
-public class SWTObservableListTest extends AbstractDefaultRealmTestCase {
-	SWTObservableListStub list;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		list = new SWTObservableListStub(Realm.getDefault(), 0);
-	}
-
-	public void testMove_ForwardAndBackward() {
-		String element0 = "element0";
-		String element1 = "element1";
-
-		list.add(element0);
-		list.add(element1);
-
-		// move forward
-		assertEquals(element0, list.move(0, 1));
-		assertEquals(element1, list.move(0, 1));
-
-		// move backward
-		assertEquals(element1, list.move(1, 0));
-		assertEquals(element0, list.move(1, 0));
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(SWTObservableListTest.class.toString());
-		suite.addTestSuite(SWTObservableListTest.class);
-		suite.addTest(MutableObservableListContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableCollectionContractDelegate {
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			return new SWTObservableListStub(realm, elementCount);
-		}
-
-		private int counter;
-
-		public Object createElement(IObservableCollection collection) {
-			return "Item" + counter++;
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			((SWTObservableListStub) observable).fireChange();
-		}
-	}
-
-	static class SWTObservableListStub extends SWTObservableList {
-		String[] items;
-
-		public SWTObservableListStub(Realm realm, int elementCount) {
-			super(realm);
-			items = new String[elementCount];
-			for (int i = 0; i < items.length; i++)
-				items[i] = Integer.toString(i);
-		}
-
-		protected String getItem(int index) {
-			return items[index];
-		}
-
-		protected int getItemCount() {
-			return items.length;
-		}
-
-		protected String[] getItems() {
-			return items;
-		}
-
-		protected void setItem(int index, String string) {
-			items[index] = string;
-		}
-
-		protected void setItems(String[] newItems) {
-			items = newItems;
-		}
-
-		protected void fireChange() {
-			super.fireChange();
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueMaxTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueMaxTest.java
deleted file mode 100644
index d598dcf..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueMaxTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.ScaleObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class ScaleObservableValueMaxTest extends ObservableDelegateTest {
-	private Delegate delegate;
-
-	private Scale scale;
-
-	private IObservableValue observable;
-
-	public ScaleObservableValueMaxTest() {
-		this(null);
-	}
-
-	public ScaleObservableValueMaxTest(String testName) {
-		super(testName, new Delegate());
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = (Delegate) getObservableContractDelegate();
-		observable = (IObservableValue) getObservable();
-		scale = delegate.scale;
-	}
-
-	protected IObservable doCreateObservable() {
-		return getObservableContractDelegate().createObservable(
-				SWTObservables.getRealm(Display.getDefault()));
-	}
-
-	public void testGetValue() throws Exception {
-		int max = 100;
-		scale.setMaximum(max);
-		assertEquals(new Integer(max), observable.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		int max = 100;
-		observable.setValue(new Integer(max));
-		assertEquals(max, scale.getMaximum());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ScaleObservableValueMaxTest.class.toString());
-		suite.addTestSuite(ScaleObservableValueMaxTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		Scale scale;
-
-		public void setUp() {
-			shell = new Shell();
-			scale = new Scale(shell, SWT.NONE);
-			scale.setMaximum(1000);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ScaleObservableValue(realm, scale, SWTProperties.MAX);
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Integer.TYPE;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return createIntegerValue(observable);
-		}
-
-		private Integer createIntegerValue(IObservableValue observable) {
-			return new Integer(((Integer) observable.getValue()).intValue() + 1);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueMinTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueMinTest.java
deleted file mode 100644
index f3f56dd..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueMinTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.ScaleObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class ScaleObservableValueMinTest extends ObservableDelegateTest {
-	private Delegate delegate;
-
-	private Scale scale;
-
-	private IObservableValue observable;
-
-	public ScaleObservableValueMinTest() {
-		this(null);
-	}
-	
-	public ScaleObservableValueMinTest(String testName) {
-		super(testName, new Delegate());
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = (Delegate) getObservableContractDelegate();
-		observable = (IObservableValue) getObservable();
-		scale = delegate.scale;
-	}
-
-	protected IObservable doCreateObservable() {
-		return getObservableContractDelegate().createObservable(SWTObservables.getRealm(Display.getDefault()));
-	}
-	
-	public void testGetValue() throws Exception {
-		int min = 100;
-		scale.setMinimum(min);
-		assertEquals(new Integer(min), observable.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		int min = 100;
-		observable.setValue(new Integer(min));
-		assertEquals(min, scale.getMinimum());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ScaleObservableValueMinTest.class.toString());
-		suite.addTestSuite(ScaleObservableValueMinTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		Scale scale;
-
-		public void setUp() {
-			shell = new Shell();
-			scale = new Scale(shell, SWT.NONE);
-			scale.setMaximum(1000);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ScaleObservableValue(realm, scale, SWTProperties.MIN);
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Integer.TYPE;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return createIntegerValue(observable);
-		}
-
-		private Integer createIntegerValue(IObservableValue observable) {
-			return new Integer(((Integer) observable.getValue()).intValue() + 1);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueSelectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueSelectionTest.java
deleted file mode 100644
index 8043b02..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ScaleObservableValueSelectionTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.ScaleObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- */
-public class ScaleObservableValueSelectionTest extends ObservableDelegateTest {
-	private Delegate delegate;
-
-	private Scale scale;
-
-	private IObservableValue observable;
-
-	public ScaleObservableValueSelectionTest() {
-		this(null);
-	}
-	
-	public ScaleObservableValueSelectionTest(String testName) {
-		super(testName, new Delegate());
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = (Delegate) getObservableContractDelegate();
-		observable = (IObservableValue) getObservable();
-		scale = delegate.scale;
-	}
-
-	protected IObservable doCreateObservable() {
-		return getObservableContractDelegate().createObservable(SWTObservables.getRealm(Display.getDefault()));
-	}
-
-	public void testGetValue() throws Exception {
-		int value = 100;
-		scale.setSelection(value);
-		assertEquals(new Integer(value), observable.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		int value = 100;
-		observable.setValue(new Integer(value));
-		assertEquals(value, scale.getSelection());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ScaleObservableValueSelectionTest.class
-				.toString());
-		suite.addTestSuite(ScaleObservableValueSelectionTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest
-				.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		Scale scale;
-
-		public void setUp() {
-			shell = new Shell();
-			scale = new Scale(shell, SWT.NONE);
-			scale.setMaximum(1000);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ScaleObservableValue(realm, scale, SWTProperties.SELECTION);
-		}
-
-		public void change(IObservable observable) {
-			scale
-					.setSelection(createIntegerValue(
-							(IObservableValue) observable).intValue());
-			scale.notifyListeners(SWT.Selection, null);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Integer.TYPE;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return createIntegerValue(observable);
-		}
-
-		private Integer createIntegerValue(IObservableValue observable) {
-			return new Integer(((Integer) observable.getValue()).intValue() + 1);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ShellObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ShellObservableValueTest.java
deleted file mode 100644
index 41d5330..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/ShellObservableValueTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 212235)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.internal.databinding.swt.ShellObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Tests for ShellObservableValue
- * 
- * @since 1.2
- */
-public class ShellObservableValueTest extends AbstractDefaultRealmTestCase {
-	String oldValue;
-	String newValue;
-	Shell shell;
-	ShellObservableValue observable;
-	ValueChangeEventTracker tracker;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		shell = new Shell();
-		observable = new ShellObservableValue(shell);
-		oldValue = "old";
-		newValue = "new";
-		shell.setText(oldValue);
-		tracker = ValueChangeEventTracker.observe(observable);
-	}
-
-	public void tearDown() throws Exception {
-		observable.dispose();
-		observable = null;
-		shell.dispose();
-		shell = null;
-		super.tearDown();
-	}
-
-	public void testGetValueType() {
-		assertEquals(String.class, observable.getValueType());
-	}
-
-	public void testSetValue_FiresValueChangeEvent() {
-		observable.setValue(newValue);
-
-		assertEquals(1, tracker.count);
-		assertEquals(oldValue, tracker.event.diff.getOldValue());
-		assertEquals(newValue, tracker.event.diff.getNewValue());
-	}
-
-	public void testSetValue_NullConvertedToEmptyString() {
-		observable.setValue(null);
-
-		assertEquals("", observable.getValue());
-		assertEquals("", shell.getText());
-	}
-
-	public void testShellSetText_GetValueReturnsSame() {
-		assertEquals(oldValue, observable.getValue());
-
-		shell.setText(newValue);
-
-		assertEquals(newValue, observable.getValue());
-	}
-
-	public void testShellSetText_NoValueChangeEvent() {
-		shell.setText(newValue);
-		assertEquals(0, tracker.count);
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ShellObservableValueTest.class.toString());
-		suite.addTestSuite(ShellObservableValueTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableValueContractDelegate {
-		Shell shell;
-
-		public void setUp() {
-			super.setUp();
-			shell = new Shell();
-		}
-
-		public void tearDown() {
-			shell.dispose();
-			shell = null;
-			super.tearDown();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ShellObservableValue(realm, shell);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-
-		int counter;
-
-		public Object createValue(IObservableValue observable) {
-			return Integer.toString(counter++);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueMaxTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueMaxTest.java
deleted file mode 100644
index 52806b7..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueMaxTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.SpinnerObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @since 3.2
- */
-public class SpinnerObservableValueMaxTest extends ObservableDelegateTest {
-	private Delegate delegate;
-
-	private Spinner spinner;
-
-	private IObservableValue observable;
-
-	public SpinnerObservableValueMaxTest() {
-		this(null);
-	}
-
-	public SpinnerObservableValueMaxTest(String testName) {
-		super(testName, new Delegate());
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = (Delegate) getObservableContractDelegate();
-		observable = (IObservableValue) getObservable();
-		spinner = delegate.spinner;
-	}
-	
-	protected IObservable doCreateObservable() {
-		return getObservableContractDelegate().createObservable(SWTObservables.getRealm(Display.getDefault()));
-	}
-
-	public void testGetValue() throws Exception {
-		int max = 100;
-		spinner.setMaximum(max);
-		assertEquals(new Integer(max), observable.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		int max = 100;
-		observable.setValue(new Integer(max));
-		assertEquals(max, spinner.getMaximum());
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(SpinnerObservableValueMaxTest.class.toString());
-		suite.addTestSuite(SpinnerObservableValueMaxTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		Spinner spinner;
-
-		public void setUp() {
-			shell = new Shell();
-			spinner = new Spinner(shell, SWT.NONE);
-			spinner.setMaximum(1000);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new SpinnerObservableValue(realm, spinner, SWTProperties.MAX);
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Integer.TYPE;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return createIntegerValue(observable);
-		}
-
-		private Integer createIntegerValue(IObservableValue observable) {
-			return new Integer(((Integer) observable.getValue()).intValue() + 1);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueMinTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueMinTest.java
deleted file mode 100644
index c208bea..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueMinTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.SpinnerObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @since 3.2
- */
-public class SpinnerObservableValueMinTest extends ObservableDelegateTest {
-	private Delegate delegate;
-
-	private Spinner spinner;
-
-	private IObservableValue observable;
-
-	public SpinnerObservableValueMinTest() {
-		this(null);
-	}
-
-	public SpinnerObservableValueMinTest(String testName) {
-		super(testName, new Delegate());
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		delegate = (Delegate) getObservableContractDelegate();
-		observable = (IObservableValue) getObservable();
-		spinner = delegate.spinner;
-	}
-	
-	protected IObservable doCreateObservable() {
-		return getObservableContractDelegate().createObservable(SWTObservables.getRealm(Display.getDefault()));
-	}
-
-	public void testGetValue() throws Exception {
-		int min = 100;
-		spinner.setMinimum(min);
-		assertEquals(new Integer(min), observable.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		int min = 100;
-		observable.setValue(new Integer(min));
-		assertEquals(min, spinner.getMinimum());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(SpinnerObservableValueMinTest.class.toString());
-		suite.addTestSuite(SpinnerObservableValueMinTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		Spinner spinner;
-
-		public void setUp() {
-			shell = new Shell();
-			spinner = new Spinner(shell, SWT.NONE);
-			spinner.setMaximum(1000);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new SpinnerObservableValue(realm, spinner, SWTProperties.MIN);
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Integer.TYPE;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return createIntegerValue(observable);
-		}
-
-		private Integer createIntegerValue(IObservableValue observable) {
-			return new Integer(((Integer) observable.getValue()).intValue() + 1);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueSelectionTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueSelectionTest.java
deleted file mode 100644
index 066344c..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueSelectionTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.SpinnerObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @since 3.2
- */
-public class SpinnerObservableValueSelectionTest extends ObservableDelegateTest {
-	private Delegate delegate;
-
-	private Spinner spinner;
-
-	private IObservableValue observable;
-	
-	public SpinnerObservableValueSelectionTest() {
-		this(null);
-	}
-
-	public SpinnerObservableValueSelectionTest(String testName) {
-		super(testName, new Delegate());
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		delegate = (Delegate) getObservableContractDelegate();
-		observable = (IObservableValue) getObservable();
-		spinner = delegate.spinner;
-	}
-
-	protected IObservable doCreateObservable() {
-		return getObservableContractDelegate().createObservable(SWTObservables.getRealm(Display.getDefault()));
-	}
-
-	public void testGetValue() throws Exception {
-		int value = 100;
-		spinner.setSelection(value);
-		assertEquals(new Integer(value), observable.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		int value = 100;
-		observable.setValue(new Integer(value));
-		assertEquals(value, spinner.getSelection());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(SpinnerObservableValueSelectionTest.class.toString());
-		suite.addTestSuite(SpinnerObservableValueSelectionTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		Spinner spinner;
-
-		public void setUp() {
-			shell = new Shell();
-			spinner = new Spinner(shell, SWT.NONE);
-			spinner.setMaximum(1000);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new SpinnerObservableValue(realm, spinner, SWTProperties.SELECTION);
-		}
-
-		public void change(IObservable observable) {
-			spinner
-					.setSelection(createIntegerValue(
-							(IObservableValue) observable).intValue());
-			spinner.notifyListeners(SWT.Selection, null);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Integer.TYPE;
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return createIntegerValue(observable);
-		}
-
-		private Integer createIntegerValue(IObservableValue observable) {
-			return new Integer(((Integer) observable.getValue()).intValue() + 1);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueTest.java
deleted file mode 100644
index 481c74b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/SpinnerObservableValueTest.java
+++ /dev/null
@@ -1,52 +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
- *     Ashley Cambrell - bug 198904
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.internal.databinding.swt.SWTProperties;
-import org.eclipse.jface.internal.databinding.swt.SpinnerObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @since 3.2
- *
- */
-public class SpinnerObservableValueTest extends AbstractSWTTestCase {
-	public void testDispose() throws Exception {
-		Spinner spinner = new Spinner(getShell(), SWT.NONE);
-		SpinnerObservableValue observableValue = new SpinnerObservableValue(
-				spinner, SWTProperties.SELECTION);
-		ValueChangeEventTracker testCounterValueChangeListener = new ValueChangeEventTracker();
-		observableValue.addValueChangeListener(testCounterValueChangeListener);
-
-		assertEquals(0, spinner.getSelection());
-		assertEquals(0, ((Integer) observableValue.getValue()).intValue());
-
-		Integer expected1 = new Integer(1);
-		spinner.setSelection(expected1.intValue());
-
-//		assertEquals(1, testCounterValueChangeListener.counter);
-		assertEquals(expected1.intValue(), spinner.getSelection());
-		assertEquals(expected1, observableValue.getValue());
-
-		observableValue.dispose();
-
-		Integer expected2 = new Integer(2);
-		spinner.setSelection(expected2.intValue());
-
-//		assertEquals(1, testCounterValueChangeListener.counter);
-		assertEquals(expected2.intValue(), spinner.getSelection());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TableObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TableObservableValueTest.java
deleted file mode 100644
index 25302da..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TableObservableValueTest.java
+++ /dev/null
@@ -1,50 +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
- *     Ashley Cambrell - bug 198904
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.jface.internal.databinding.swt.TableSingleSelectionObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * @since 3.2
- */
-public class TableObservableValueTest extends AbstractSWTTestCase {
-	public void testDispose() throws Exception {
-		Table table = new Table(getShell(), SWT.NONE);
-		TableSingleSelectionObservableValue observableValue = new TableSingleSelectionObservableValue(
-				table);
-
-		TableItem item1 = new TableItem(table, SWT.NONE);
-		item1.setText("Item1");
-		TableItem item2 = new TableItem(table, SWT.NONE);
-		item2.setText("Item2");
-
-		assertEquals(-1, table.getSelectionIndex());
-		assertEquals(-1, ((Integer) observableValue.getValue()).intValue());
-
-		table.select(0);
-		table.notifyListeners(SWT.Selection, null);
-
-		assertEquals(0, table.getSelectionIndex());
-		assertEquals(new Integer(0), observableValue.getValue());
-
-		observableValue.dispose();
-
-		table.select(1);
-		table.notifyListeners(SWT.Selection, null);
-		assertEquals(1, table.getSelectionIndex());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TableSingleSelectionObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TableSingleSelectionObservableValueTest.java
deleted file mode 100644
index f475a6b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TableSingleSelectionObservableValueTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 118516, 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.swt.TableSingleSelectionObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * @since 3.2
- */
-public class TableSingleSelectionObservableValueTest extends ObservableDelegateTest {
-	private Delegate delegate;
-	private IObservableValue observable;
-	private Table table;
-	
-	public TableSingleSelectionObservableValueTest() {
-		this(null);
-	}
-	
-	public TableSingleSelectionObservableValueTest(String testName) {
-		super(testName, new Delegate());
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		observable = (IObservableValue) getObservable();
-		delegate = (Delegate) getObservableContractDelegate();
-		table = delegate.table;
-	}
-	
-	protected IObservable doCreateObservable() {
-		Delegate delegate = (Delegate) getObservableContractDelegate();
-		return delegate.createObservableValue(SWTObservables.getRealm(Display.getDefault()));
-	}
-	
-	public void testSetValue() throws Exception {
-		//preconditions
-		assertEquals(-1, table.getSelectionIndex());
-		assertEquals(-1, ((Integer) observable.getValue()).intValue());
-
-		Integer value = new Integer(0);
-		observable.setValue(value);
-		assertEquals("table selection index", value.intValue(), table
-				.getSelectionIndex());
-		assertEquals("observable value", value, observable.getValue());
-	}
-	
-	public void testGetValue() throws Exception {
-		int value = 1;
-		table.setSelection(value);
-		
-		assertEquals("table selection index", value, table.getSelectionIndex());
-		assertEquals("observable value", new Integer(value), observable.getValue());
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(TableSingleSelectionObservableValueTest.class.toString());
-		suite.addTestSuite(TableSingleSelectionObservableValueTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		Table table;
-
-		public void setUp() {
-			shell = new Shell();
-			table = new Table(shell, SWT.NONE);
-			new TableItem(table, SWT.NONE).setText("0");
-			new TableItem(table, SWT.NONE).setText("1");
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new TableSingleSelectionObservableValue(realm, table);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return Integer.TYPE;
-		}
-
-		public void change(IObservable observable) {
-			int index = createIntegerValue((IObservableValue) observable)
-					.intValue();
-			table.select(index);
-
-			table.notifyListeners(SWT.Selection, null);
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return createIntegerValue(observable);
-		}
-
-		private Integer createIntegerValue(IObservableValue observable) {
-			int value = ((Integer) observable.getValue()).intValue();
-			switch (value) {
-			case -1:
-			case 1:
-				return new Integer(0);
-			case 0:
-				return new Integer(1);
-			}
-
-			Assert.isTrue(false);
-			return null;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TestCounterValueChangeListener.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TestCounterValueChangeListener.java
deleted file mode 100644
index 8e1ca78..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TestCounterValueChangeListener.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Ashley Cambrell and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Ashley Cambrell - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-
-class TestCounterValueChangeListener implements
-		IValueChangeListener {
-	public int counter = 0;
-
-	public void handleValueChange(ValueChangeEvent event) {
-		++counter;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextEditableObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextEditableObservableValueTest.java
deleted file mode 100644
index 8d1b09e..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextEditableObservableValueTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.ObservableDelegateTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.internal.databinding.swt.TextEditableObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 1.1
- */
-public class TextEditableObservableValueTest extends
-		ObservableDelegateTest {
-	
-	private Delegate delegate;
-	private Text text;
-	private IObservableValue observable;
-
-	public TextEditableObservableValueTest() {
-		this(null);
-	}
-	
-	public TextEditableObservableValueTest(String testName) {
-		super(testName, new Delegate());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.conformance.databinding.ObservableDelegateTest#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		delegate = (Delegate) getObservableContractDelegate();
-		observable = (IObservableValue) getObservable();
-		text = delegate.text;
-	}
-	
-	protected IObservable doCreateObservable() {
-		return super.doCreateObservable();
-	}
-	
-	public void testGetValue() throws Exception {
-		text.setEditable(false);
-		assertEquals(Boolean.valueOf(text.getEditable()), observable.getValue());
-		
-		text.setEditable(true);
-		assertEquals(Boolean.valueOf(text.getEditable()), observable.getValue());
-	}
-	
-	public void testSetValue() throws Exception {
-		text.setEditable(false);
-		observable.setValue(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, Boolean.valueOf(text.getEditable()));
-		
-		observable.setValue(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, Boolean.valueOf(text.getEditable()));
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(TextEditableObservableValueTest.class.toString());
-		suite.addTestSuite(TextEditableObservableValueTest.class);
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-	
-	/*package*/ static class Delegate extends AbstractObservableValueContractDelegate {
-		private Shell shell;
-		Text text;
-		
-		public void setUp() {			
-			shell = new Shell();
-			text = new Text(shell, SWT.NONE);
-		}
-
-		public void tearDown() {			
-			shell.dispose();
-		}
-		
-		public IObservableValue createObservableValue(Realm realm) {
-			return new TextEditableObservableValue(realm, text);
-		}
-		
-		public Object getValueType(IObservableValue observable) {
-			return Boolean.TYPE;
-		}
-		
-		public void change(IObservable observable) {
-			IObservableValue observableValue = (IObservableValue) observable;
-			observableValue.setValue(createValue(observableValue));
-		}
-		
-		public Object createValue(IObservableValue observable) {
-			return (Boolean.TRUE.equals(observable.getValue()) ? Boolean.FALSE: Boolean.TRUE);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueFocusOutTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueFocusOutTest.java
deleted file mode 100644
index 9504160..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueFocusOutTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.internal.databinding.swt.TextObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Tests for the FocusOut version of TextObservableValue.
- */
-public class TextObservableValueFocusOutTest extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(TextObservableValueFocusOutTest.class.toString());
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		private Text text;
-		
-		public void setUp() {
-			shell = new Shell();
-			text = new Text(shell, SWT.NONE);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new TextObservableValue(realm, text, SWT.FocusOut);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			text.setFocus();
-			
-			IObservableValue observableValue = (IObservableValue) observable;
-			text.setText((String) createValue(observableValue));
-			
-			text.notifyListeners(SWT.FocusOut, null);
-		}
-
-		public Object createValue(IObservableValue observable) {
-			String value = (String) observable.getValue();
-			return value + "a";
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueModifyTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueModifyTest.java
deleted file mode 100644
index 9867754..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueModifyTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.swt.SWTMutableObservableValueContractTest;
-import org.eclipse.jface.internal.databinding.swt.TextObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 3.2
- */
-public class TextObservableValueModifyTest extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(TextObservableValueModifyTest.class.toString());
-		suite.addTest(SWTMutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	/* package */static class Delegate extends
-			AbstractObservableValueContractDelegate {
-		private Shell shell;
-
-		private Text text;
-		
-		public void setUp() {
-			shell = new Shell();
-			text = new Text(shell, SWT.NONE);
-		}
-
-		public void tearDown() {
-			shell.dispose();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new TextObservableValue(realm, text, SWT.Modify);
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return String.class;
-		}
-
-		public void change(IObservable observable) {
-			text.setFocus();
-			
-			IObservableValue observableValue = (IObservableValue) observable;
-			text.setText((String) createValue(observableValue));
-		}
-
-		public Object createValue(IObservableValue observable) {
-			String value = (String) observable.getValue();
-			return value + "a";
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueTest.java
deleted file mode 100644
index 5e96a3d..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/swt/TextObservableValueTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 116920
- *     Brad Reynolds - bug 164653
- *     Ashley Cambrell - bug 198904
- *******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.swt;
-
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.internal.databinding.swt.TextObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-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 TextObservableValueTest extends AbstractDefaultRealmTestCase {
-	private Text text;
-	private ValueChangeEventTracker listener;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		Shell shell = new Shell();
-		text = new Text(shell, SWT.NONE);
-		
-		listener = new ValueChangeEventTracker();
-	}
-
-	/**
-	 * 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);
-		}
-	}
-	
-	/**
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=171132
-	 * 
-	 * @throws Exception
-	 */
-	public void testGetValueBeforeFocusOutChangeEventsFire() throws Exception {
-		TextObservableValue observableValue = new TextObservableValue(text, SWT.FocusOut);
-		observableValue.addValueChangeListener(listener);
-		
-		String a = "a";
-		String b = "b";
-		
-		text.setText(a);
-		assertEquals(a, observableValue.getValue()); //fetch the value updating the buffered value
-		
-		text.setText(b);
-		text.notifyListeners(SWT.FocusOut, null);
-		
-		assertEquals(1, listener.count);
-		assertEquals(a, listener.event.diff.getOldValue());
-		assertEquals(b, listener.event.diff.getNewValue());
-	}
-
-	public void testDispose() throws Exception {
-		TextObservableValue observableValue = new TextObservableValue(text,
-				SWT.Modify);
-		ValueChangeEventTracker testCounterValueChangeListener = new ValueChangeEventTracker();
-		observableValue.addValueChangeListener(testCounterValueChangeListener);
-
-		String expected1 = "Test123";
-		text.setText(expected1);
-
-		assertEquals(1, testCounterValueChangeListener.count);
-		assertEquals(expected1, text.getText());
-		assertEquals(expected1, observableValue.getValue());
-
-		observableValue.dispose();
-
-		String expected2 = "NewValue123";
-		text.setText(expected2);
-
-		assertEquals(1, testCounterValueChangeListener.count);
-		assertEquals(expected2, text.getText());
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ObservableCollectionTreeContentProviderTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ObservableCollectionTreeContentProviderTest.java
deleted file mode 100644
index 6509628..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ObservableCollectionTreeContentProviderTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 239015)
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.viewers;
-
-import java.util.Arrays;
-import java.util.HashSet;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.2
- * 
- */
-public class ObservableCollectionTreeContentProviderTest extends
-		AbstractDefaultRealmTestCase {
-	private Shell shell;
-	private TreeViewer viewer;
-	ObservableListTreeContentProvider contentProvider;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		shell = new Shell();
-		viewer = new TreeViewer(shell);
-	}
-
-	protected void tearDown() throws Exception {
-		shell.dispose();
-		shell = null;
-		viewer = null;
-		super.tearDown();
-	}
-
-	private void createContentProvider(IObservableFactory factory) {
-		contentProvider = new ObservableListTreeContentProvider(
-				factory, null);
-		viewer.setContentProvider(contentProvider);
-	}
-
-	public void testGetKnownElements_ExcludesInput() {
-		final Object input = new Object();
-		Object[] rootElements = new Object[] { "one", "two", "three" };
-		final IObservableList rootElementList = new WritableList(Arrays
-				.asList(rootElements), null);
-		createContentProvider(new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				if (target == input)
-					return rootElementList;
-				return null;
-			}
-		});
-		viewer.setInput(input);
-		contentProvider.getElements(input);
-
-		IObservableSet knownElements = contentProvider.getKnownElements();
-		assertFalse(knownElements.contains(input));
-		assertEquals(new HashSet(Arrays.asList(rootElements)), knownElements);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ObservableViewerElementSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ObservableViewerElementSetTest.java
deleted file mode 100644
index ad54db7..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ObservableViewerElementSetTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.viewers;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.conformance.MutableObservableSetContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableCollectionContractDelegate;
-import org.eclipse.jface.internal.databinding.viewers.ObservableViewerElementSet;
-import org.eclipse.jface.viewers.IElementComparer;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class ObservableViewerElementSetTest extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ObservableViewerElementSetTest.class.getName());
-		suite.addTest(MutableObservableSetContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	private static class Delegate extends
-			AbstractObservableCollectionContractDelegate {
-
-		public IObservableCollection createObservableCollection(Realm realm,
-				int elementCount) {
-			ObservableViewerElementSet set = new ObservableViewerElementSet(realm,
-					Object.class, new IdentityElementComparer());
-			for (int i = 0; i < elementCount; i++)
-				set.add(createElement(set));
-			return set;
-		}
-
-		public Object createElement(IObservableCollection collection) {
-			return new Object();
-		}
-
-		public void change(IObservable observable) {
-			IObservableSet set = (IObservableSet) observable;
-			set.add(createElement(set));
-		}
-
-		public Object getElementType(IObservableCollection collection) {
-			return Object.class;
-		}
-	}
-
-	private static class IdentityElementComparer implements IElementComparer {
-		public boolean equals(Object a, Object b) {
-			return a == b;
-		}
-
-		public int hashCode(Object element) {
-			return System.identityHashCode(element);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/SelectionProviderMultiSelectionObservableListTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/SelectionProviderMultiSelectionObservableListTest.java
deleted file mode 100644
index 0bbf6bf..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/SelectionProviderMultiSelectionObservableListTest.java
+++ /dev/null
@@ -1,170 +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
- *     Brad Reynolds - bug 116920
- *******************************************************************************/
-package org.eclipse.jface.tests.internal.databinding.viewers;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.list.ListDiffEntry;
-import org.eclipse.jface.databinding.conformance.util.ListChangeEventTracker;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.viewers.SelectionProviderMultipleSelectionObservableList;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Tests for SelectionProviderMultiSelectionObservableList.
- * 
- * @since 1.2
- */
-public class SelectionProviderMultiSelectionObservableListTest extends TestCase {
-	private ISelectionProvider selectionProvider;
-
-	private TableViewer viewer;
-
-	private static String[] model = new String[] { "0", "1", "2", "3" };
-
-	protected void setUp() throws Exception {
-		Shell shell = new Shell();
-		viewer = new TableViewer(shell, SWT.MULTI);
-		viewer.setContentProvider(new ContentProvider());
-		viewer.setInput(model);
-		selectionProvider = viewer;
-	}
-
-	protected void tearDown() throws Exception {
-		Shell shell = viewer.getTable().getShell();
-		if (!shell.isDisposed())
-			shell.dispose();
-	}
-
-	public void testConstructorIllegalArgumentException() {
-		try {
-			new SelectionProviderMultipleSelectionObservableList(SWTObservables
-					.getRealm(Display.getDefault()), null, Object.class);
-			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 testAddRemove() {
-		SelectionProviderMultipleSelectionObservableList observable = new SelectionProviderMultipleSelectionObservableList(
-				SWTObservables.getRealm(Display.getDefault()),
-				selectionProvider, Object.class);
-		ListChangeEventTracker listener = new ListChangeEventTracker();
-		observable.addListChangeListener(listener);
-		assertEquals(0, observable.size());
-
-		selectionProvider.setSelection(new StructuredSelection(model[0]));
-		assertEquals(1, listener.count);
-		assertEquals(1, listener.event.diff.getDifferences().length);
-		assertDiffEntry(listener.event.diff.getDifferences()[0], 0, model[0], true);
-		assertEquals(observable, listener.event.getObservableList());
-		assertEquals(1, observable.size());
-		assertEquals(model[0], observable.get(0));
-
-		selectionProvider.setSelection(new StructuredSelection(model[1]));
-		assertEquals(2, listener.count);
-		assertEquals(2, listener.event.diff.getDifferences().length);
-		assertDiffEntry(listener.event.diff.getDifferences()[0], 0, model[1], true);
-		assertDiffEntry(listener.event.diff.getDifferences()[1], 1, model[0], false);
-		assertEquals(observable, listener.event.getObservableList());
-		assertEquals(1, observable.size());
-		assertEquals(model[1], observable.get(0));
-
-		selectionProvider.setSelection(new StructuredSelection(new Object[]{model[2],model[3]}));
-		assertEquals(3, listener.count);
-		assertEquals(3, listener.event.diff.getDifferences().length);
-		assertDiffEntry(listener.event.diff.getDifferences()[0], 0, model[2], true);
-		assertDiffEntry(listener.event.diff.getDifferences()[1], 1, model[3], true);
-		assertDiffEntry(listener.event.diff.getDifferences()[2], 2, model[1], false);
-		assertEquals(observable, listener.event.getObservableList());
-		assertEquals(2, observable.size());
-		assertEquals(model[2], observable.get(0));
-		assertEquals(model[3], observable.get(1));
-		
-		selectionProvider.setSelection(StructuredSelection.EMPTY);
-		assertEquals(4, listener.count);
-		assertEquals(2, listener.event.diff.getDifferences().length);
-		assertDiffEntry(listener.event.diff.getDifferences()[0], 1, model[3], false);
-		assertDiffEntry(listener.event.diff.getDifferences()[1], 0, model[2], false);
-		assertEquals(observable, listener.event.getObservableList());
-		assertEquals(0, observable.size());
-		
-		observable.add(model[1]);
-		assertEquals(5, listener.count);
-		assertEquals(1, listener.event.diff.getDifferences().length);
-		assertDiffEntry(listener.event.diff.getDifferences()[0], 0, model[1], true);
-		assertEquals(observable, listener.event.getObservableList());
-		assertEquals(1, ((IStructuredSelection)viewer.getSelection()).size());
-
-		observable.add(0, model[2]);
-		assertEquals(6, listener.count);
-		assertEquals(1, listener.event.diff.getDifferences().length);
-		// This is a bit surprising (we added at index 0 but the event says index 1).
-		// It is to the fact that the observable list tracks the underlying selection
-		// provider's notion of which element is at which index.
-		assertDiffEntry(listener.event.diff.getDifferences()[0], 1, model[2], true);
-		assertEquals(observable, listener.event.getObservableList());
-		assertEquals(2, ((IStructuredSelection)viewer.getSelection()).size());
-
-		observable.clear();
-		assertEquals(7, listener.count);
-		assertEquals(2, listener.event.diff.getDifferences().length);
-		assertDiffEntry(listener.event.diff.getDifferences()[0], 1, model[2], false);
-		assertDiffEntry(listener.event.diff.getDifferences()[1], 0, model[1], false);
-		assertEquals(observable, listener.event.getObservableList());
-		assertEquals(0, ((IStructuredSelection)viewer.getSelection()).size());
-}
-
-	/**
-	 * @param diffEntry
-	 * @param position
-	 * @param element
-	 * @param isAddition
-	 */
-	private void assertDiffEntry(ListDiffEntry diffEntry, int position,
-			String element, boolean isAddition) {
-		assertEquals(isAddition, diffEntry.isAddition());
-		assertEquals(position, diffEntry.getPosition());
-		assertEquals(element, diffEntry.getElement());
-	}
-
-	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/viewers/SelectionProviderSingleSelectionObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/SelectionProviderSingleSelectionObservableValueTest.java
deleted file mode 100644
index a5abde8..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/SelectionProviderSingleSelectionObservableValueTest.java
+++ /dev/null
@@ -1,147 +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
- *    Brad Reynolds - bug 116920
- *    Ashley Cambrell - bug 198906
- *******************************************************************************/
-package org.eclipse.jface.tests.internal.databinding.viewers;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.internal.databinding.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.Display;
-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(SWTObservables
-					.getRealm(Display.getDefault()), 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(
-				SWTObservables.getRealm(Display.getDefault()),
-				selectionProvider);
-		ValueChangeEventTracker listener = new ValueChangeEventTracker();
-		observable.addValueChangeListener(listener);
-		assertNull(observable.getValue());
-
-		selectionProvider.setSelection(new StructuredSelection(model[0]));
-		assertEquals(1, listener.count);
-		assertNull(listener.event.diff.getOldValue());
-		assertEquals(model[0], listener.event.diff.getNewValue());
-		assertEquals(observable, listener.event.getObservableValue());
-		assertEquals(model[0], observable.getValue());
-
-		selectionProvider.setSelection(new StructuredSelection(model[1]));
-		assertEquals(2, listener.count);
-		assertEquals(model[0], listener.event.diff.getOldValue());
-		assertEquals(model[1], listener.event.diff.getNewValue());
-		assertEquals(observable, listener.event.getObservableValue());
-		assertEquals(model[1], observable.getValue());
-
-		selectionProvider.setSelection(StructuredSelection.EMPTY);
-		assertEquals(3, listener.count);
-		assertEquals(model[1], listener.event.diff.getOldValue());
-		assertNull(listener.event.diff.getNewValue());
-		assertEquals(observable, listener.event.getObservableValue());
-		assertEquals(null, observable.getValue());
-	}
-
-	public void testDispose() throws Exception {
-		SelectionProviderSingleSelectionObservableValue observable = new SelectionProviderSingleSelectionObservableValue(
-				SWTObservables.getRealm(Display.getDefault()),
-				selectionProvider);
-		ValueChangeEventTracker listener = new ValueChangeEventTracker();
-		observable.addValueChangeListener(listener);
-
-		selectionProvider.setSelection(new StructuredSelection(model[0]));
-		assertEquals(1, listener.count);
-		assertNull(listener.event.diff.getOldValue());
-		assertEquals(model[0], listener.event.diff.getNewValue());
-		assertEquals(observable, listener.event.getObservableValue());
-		assertEquals(model[0], observable.getValue());
-
-		observable.dispose();
-		selectionProvider.setSelection(new StructuredSelection(model[1]));
-		assertEquals(1, listener.count);
-	}
-
-	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/viewers/ViewerElementMapTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementMapTest.java
deleted file mode 100644
index 1aece17..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementMapTest.java
+++ /dev/null
@@ -1,535 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- *     Matthew Hall - bug 228125
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.viewers;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.internal.databinding.viewers.ViewerElementMap;
-import org.eclipse.jface.viewers.IElementComparer;
-
-import junit.framework.TestCase;
-
-/**
- * @since 1.2
- */
-public class ViewerElementMapTest extends TestCase {
-	IdentityElementComparer comparer;
-	ViewerElementMap map;
-
-	Object key;
-	Object value;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		comparer = new IdentityElementComparer();
-		map = new ViewerElementMap(comparer);
-		key = new Object();
-		value = new Object();
-	}
-
-	public void testConstructor_NullComparer() {
-		try {
-			new ViewerElementMap(null);
-			fail("Constructor should throw exception when null comparer passed in");
-		} catch (RuntimeException expected) {
-		}
-	}
-
-	public void testConstructorWithCollection_NullCollection() {
-		try {
-			new ViewerElementMap(null, new IdentityElementComparer());
-			fail("Constructor should throw exception when null collection passed in");
-		} catch (RuntimeException expected) {
-		}
-	}
-
-	public void testConstructorWithCollection_ContainsAllEntries() {
-		Map toCopy = new HashMap();
-		toCopy.put(new Object(), new Object());
-		map = new ViewerElementMap(toCopy, new IdentityElementComparer());
-		assertEquals(toCopy, map);
-	}
-
-	public void testIsEmpty() {
-		assertTrue(map.isEmpty());
-		map.put(key, value);
-		assertFalse(map.isEmpty());
-	}
-
-	public void testSize() {
-		assertEquals(0, map.size());
-		map.put(key, value);
-		assertEquals(1, map.size());
-	}
-
-	public void testClear() {
-		map.put(key, value);
-		assertFalse(map.isEmpty());
-		map.clear();
-		assertTrue(map.isEmpty());
-	}
-
-	public void testGet() {
-		assertNull(map.get(key));
-		map.put(key, value);
-		assertEquals(value, map.get(key));
-	}
-
-	public void testContainsKey() {
-		String key1 = new String("key");
-		String key2 = new String("key"); // equal but distinct instances
-		assertFalse(map.containsKey(key1));
-		map.put(key1, value);
-		assertTrue(map.containsKey(key1));
-		assertFalse(map.containsKey(key2));
-	}
-
-	public void testContainsValue() {
-		assertFalse(map.containsValue(value));
-		map.put(key, value);
-		assertTrue(map.containsValue(value));
-	}
-
-	public void testPutAll() {
-		Map other = new HashMap();
-		other.put(key, value);
-
-		assertTrue(map.isEmpty());
-		map.putAll(other);
-		assertEquals(1, map.size());
-		assertTrue(map.containsKey(key));
-		assertEquals(value, map.get(key));
-	}
-
-	public void testRemove() {
-		map.put(key, value);
-		assertTrue(map.containsKey(key));
-		map.remove(key);
-		assertFalse(map.containsKey(key));
-	}
-
-	public void testValues() {
-		Collection values = map.values();
-		assertTrue(values.isEmpty());
-
-		map.put(key, value);
-
-		assertEquals(1, values.size());
-		assertEquals(value, values.iterator().next());
-
-		map.remove(key);
-		assertTrue(map.values().isEmpty());
-	}
-
-	public void testKeySet() {
-		Set keySet = map.keySet();
-		assertTrue(keySet.isEmpty());
-
-		map.put(key, value);
-		assertEquals(1, keySet.size());
-		assertTrue(keySet.contains(key));
-
-		map.remove(key);
-		assertTrue(keySet.isEmpty());
-	}
-
-	public void testKeySet_Add() {
-		try {
-			map.keySet().add(key);
-			fail("Expected UnsupportedOperationException");
-		} catch (UnsupportedOperationException expected) {
-		}
-	}
-
-	public void testKeySet_AddAll() {
-		try {
-			map.keySet().addAll(Collections.singleton(key));
-			fail("Expected UnsupportedOperationException");
-		} catch (UnsupportedOperationException expected) {
-		}
-	}
-
-	public void testKeySet_Clear() {
-		map.put(key, value);
-		Set keySet = map.keySet();
-		assertTrue(keySet.contains(key));
-		keySet.clear();
-		assertTrue(keySet.isEmpty());
-		assertTrue(map.isEmpty());
-	}
-
-	public void testKeySet_Contains() {
-		Set keySet = map.keySet();
-		assertFalse(keySet.contains(key));
-		map.put(key, value);
-		assertTrue(keySet.contains(key));
-	}
-
-	public void testKeySet_ContainsAll() {
-		Set keySet = map.keySet();
-		assertFalse(keySet.containsAll(Collections.singleton(key)));
-		map.put(key, value);
-		assertTrue(keySet.containsAll(Collections.singleton(key)));
-	}
-
-	public void testKeySet_IsEmpty() {
-		Set keySet = map.keySet();
-		assertTrue(keySet.isEmpty());
-		map.put(key, value);
-		assertFalse(keySet.isEmpty());
-	}
-
-	public void testKeySet_Iterator() {
-		map.put(key, value);
-		Iterator iterator = map.keySet().iterator();
-		assertTrue(iterator.hasNext());
-		assertEquals(key, iterator.next());
-
-		assertEquals(1, map.size());
-		iterator.remove();
-		assertTrue(map.isEmpty());
-
-		assertFalse(iterator.hasNext());
-	}
-
-	public void testKeySet_Remove() {
-		map.put(key, value);
-		assertEquals(1, map.size());
-		map.keySet().remove(key);
-		assertTrue(map.isEmpty());
-	}
-
-	public void testKeySet_RemoveAll() {
-		map.put(key, value);
-		Set keySet = map.keySet();
-		assertFalse(keySet.removeAll(Collections.EMPTY_SET));
-		assertEquals(1, map.size());
-		assertTrue(keySet.removeAll(Collections.singleton(key)));
-		assertTrue(map.isEmpty());
-	}
-
-	public void testKeySet_RetainAll() {
-		map.put(key, value);
-		Set keySet = map.keySet();
-		assertFalse(keySet.retainAll(Collections.singleton(key)));
-		assertEquals(1, map.size());
-		assertTrue(keySet.retainAll(Collections.EMPTY_SET));
-		assertTrue(map.isEmpty());
-	}
-
-	public void testKeySet_Size() {
-		Set keySet = map.keySet();
-		assertEquals(0, keySet.size());
-		map.put(key, value);
-		assertEquals(1, keySet.size());
-		map.clear();
-		assertEquals(0, keySet.size());
-	}
-
-	public void testKeySet_ToArray() {
-		Set keySet = map.keySet();
-		map.put(key, value);
-		Object[] array = keySet.toArray();
-		assertEquals(1, array.length);
-		assertSame(key, array[0]);
-	}
-
-	public void testKeySet_ToArrayWithObjectArray() {
-		key = new String("key");
-		map.put(key, value);
-		String[] array = (String[]) map.keySet().toArray(new String[0]);
-		assertEquals(1, array.length);
-		assertSame(key, array[0]);
-	}
-
-	public void testKeySet_Equals() {
-		Set keySet = map.keySet();
-		assertFalse(keySet.equals(null));
-		assertTrue(keySet.equals(keySet));
-
-		assertTrue(keySet.equals(Collections.EMPTY_SET));
-		map.put(key, value);
-		assertTrue(keySet.equals(Collections.singleton(key)));
-	}
-
-	public void testKeySet_HashCode() {
-		Set keySet = map.keySet();
-		assertEquals(0, keySet.hashCode());
-		map.put(key, value);
-		int hash = comparer.hashCode(key);
-		assertEquals(hash, keySet.hashCode());
-	}
-
-	public void testEntrySet() {
-		Set entrySet = map.entrySet();
-		assertTrue(entrySet.isEmpty());
-
-		map.put(key, value);
-		assertEquals(1, entrySet.size());
-		Map.Entry entry = (Map.Entry) entrySet.iterator().next();
-		assertEquals(key, entry.getKey());
-		assertEquals(value, entry.getValue());
-
-		map.remove(key);
-		assertTrue(entrySet.isEmpty());
-	}
-
-	public void testEntrySet_Add() {
-		try {
-			map.entrySet().add(key);
-			fail("Expected UnsupportedOperationException");
-		} catch (UnsupportedOperationException expected) {
-		}
-	}
-
-	public void testEntrySet_AddAll() {
-		try {
-			map.entrySet().addAll(Collections.EMPTY_SET);
-			fail("Expected UnsupportedOperationException");
-		} catch (UnsupportedOperationException expected) {
-		}
-	}
-
-	public void testEntrySet_Clear() {
-		map.put(key, value);
-		assertEquals(1, map.size());
-		map.entrySet().clear();
-		assertTrue(map.isEmpty());
-	}
-
-	public void testEntrySet_Contains() {
-		map.put(key, value);
-		Set entrySet = map.entrySet();
-		assertTrue(entrySet.contains(new MapEntryStub(key, value)));
-		map.remove(key);
-		assertFalse(entrySet.contains(new MapEntryStub(key, value)));
-	}
-
-	public void testEntrySet_ContainsAll() {
-		Set entrySet = map.entrySet();
-		assertFalse(entrySet.containsAll(Collections
-				.singleton(new MapEntryStub(key, value))));
-		assertTrue(entrySet.containsAll(Collections.EMPTY_SET));
-
-		map.put(key, value);
-		assertTrue(entrySet.containsAll(Collections.singleton(new MapEntryStub(
-				key, value))));
-	}
-
-	public void testEntrySet_IsEmpty() {
-		Set entrySet = map.entrySet();
-		assertTrue(entrySet.isEmpty());
-		map.put(key, value);
-		assertFalse(entrySet.isEmpty());
-	}
-
-	public void testEntrySet_Iterator() {
-		map.put(key, value);
-		Iterator iterator = map.entrySet().iterator();
-		assertTrue(iterator.hasNext());
-		Map.Entry entry = (Map.Entry) iterator.next();
-		assertTrue(entry.equals(new MapEntryStub(key, value)));
-
-		assertEquals(1, map.size());
-		iterator.remove();
-		assertTrue(map.isEmpty());
-		assertFalse(iterator.hasNext());
-	}
-
-	public void testEntrySet_Remove() {
-		map.put(key, value);
-		assertEquals(1, map.size());
-
-		assertTrue(map.entrySet().remove(new MapEntryStub(key, value)));
-		assertTrue(map.isEmpty());
-	}
-
-	public void testEntrySet_RemoveAll() {
-		Set entrySet = map.entrySet();
-		assertFalse(entrySet.removeAll(Collections.EMPTY_SET));
-
-		map.put(key, value);
-		assertEquals(1, map.size());
-		assertTrue(entrySet.removeAll(Collections.singleton(new MapEntryStub(
-				key, value))));
-		assertTrue(map.isEmpty());
-	}
-
-	public void testEntrySet_RetainAll() {
-		Set entrySet = map.entrySet();
-		assertFalse(entrySet.retainAll(Collections.EMPTY_SET));
-
-		map.put(key, value);
-		assertEquals(1, map.size());
-		assertFalse(entrySet.retainAll(Collections.singleton(new MapEntryStub(
-				key, value))));
-		assertEquals(1, map.size());
-		assertTrue(entrySet.retainAll(Collections.EMPTY_SET));
-		assertTrue(map.isEmpty());
-	}
-
-	public void testEntrySet_Size() {
-		Set entrySet = map.entrySet();
-		assertEquals(0, entrySet.size());
-		map.put(key, value);
-		assertEquals(1, entrySet.size());
-	}
-
-	public void testEntrySet_ToArray() {
-		Set entrySet = map.entrySet();
-		assertEquals(0, entrySet.toArray().length);
-
-		map.put(key, value);
-		Object[] array = entrySet.toArray();
-		assertEquals(1, array.length);
-		assertTrue(array[0].equals(new MapEntryStub(key, value)));
-	}
-
-	public void testEntrySet_ToArrayWithObjectArray() {
-		Set entrySet = map.entrySet();
-		assertEquals(0, entrySet.toArray(new Object[0]).length);
-
-		map.put(key, value);
-		Map.Entry[] array = (Map.Entry[]) entrySet.toArray(new Map.Entry[0]);
-		assertEquals(1, array.length);
-		assertTrue(array[0].equals(new MapEntryStub(key, value)));
-	}
-
-	public void testEntrySet_Equals() {
-		Set entrySet = map.entrySet();
-		assertFalse(entrySet.equals(null));
-		assertTrue(entrySet.equals(entrySet));
-
-		assertTrue(entrySet.equals(Collections.EMPTY_SET));
-		assertFalse(entrySet.equals(Collections.singleton(new MapEntryStub(key,
-				value))));
-
-		map.put(key, value);
-		assertFalse(entrySet.equals(Collections.EMPTY_SET));
-		assertTrue(entrySet.equals(Collections.singleton(new MapEntryStub(key,
-				value))));
-	}
-
-	public void testEntrySet_HashCode() {
-		// hash formula mandated by Map contract
-		Set entrySet = map.entrySet();
-		assertEquals(0, entrySet.hashCode());
-
-		map.put(key, value);
-		int hash = comparer.hashCode(key) ^ value.hashCode();
-		assertEquals(hash, entrySet.hashCode());
-	}
-
-	public void testEntrySet_Entry_SetValue() {
-		map.put(key, value);
-
-		Map.Entry entry = (Map.Entry) map.entrySet().iterator().next();
-
-		Object newValue = new Object();
-		Object oldValue = entry.setValue(newValue);
-		assertEquals(value, oldValue);
-		assertEquals(newValue, entry.getValue());
-		assertEquals(newValue, map.get(key));
-	}
-
-	public void testEntrySet_Entry_Equals() {
-		map.put(key, value);
-
-		Map.Entry entry = (Map.Entry) map.entrySet().iterator().next();
-		assertFalse(entry.equals(null));
-		assertTrue(entry.equals(entry));
-		assertTrue(entry.equals(new MapEntryStub(key, value)));
-	}
-
-	public void testEntrySet_Entry_HashCode() {
-		map.put(key, value);
-
-		// hash computed as required by Map contract
-		int hash = comparer.hashCode(key) ^ value.hashCode();
-		assertEquals(hash, map.entrySet().iterator().next().hashCode());
-	}
-
-	public void testEquals() {
-		assertFalse(map.equals(null));
-		assertTrue(map.equals(map));
-
-		Map other = new HashMap();
-		other.put(key, value);
-
-		assertTrue(map.equals(Collections.EMPTY_MAP));
-		assertFalse(map.equals(other));
-
-		map.put(key, value);
-
-		assertFalse(map.equals(Collections.EMPTY_MAP));
-		assertTrue(map.equals(other));
-	}
-
-	public void testHashCode() {
-		assertEquals(0, map.hashCode());
-
-		map.put(key, value);
-		int hash = comparer.hashCode(key) ^ value.hashCode();
-		assertEquals(hash, map.hashCode());
-	}
-
-	public void testWithComparer() {
-		assertFalse(ViewerElementMap.withComparer(null) instanceof ViewerElementMap);
-		assertTrue(ViewerElementMap.withComparer(comparer) instanceof ViewerElementMap);
-	}
-
-	static class IdentityElementComparer implements IElementComparer {
-		public boolean equals(Object a, Object b) {
-			return a == b;
-		}
-
-		public int hashCode(Object element) {
-			return System.identityHashCode(element);
-		}
-	}
-
-	static class MapEntryStub implements Map.Entry {
-		private final Object key;
-		private final Object value;
-
-		public MapEntryStub(Object key, Object value) {
-			this.key = key;
-			this.value = value;
-		}
-
-		public Object getKey() {
-			return key;
-		}
-
-		public Object getValue() {
-			return value;
-		}
-
-		public Object setValue(Object value) {
-			throw new UnsupportedOperationException();
-		}
-
-		public boolean equals(Object obj) {
-			throw new UnsupportedOperationException();
-		}
-
-		public int hashCode() {
-			throw new UnsupportedOperationException();
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementSetTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementSetTest.java
deleted file mode 100644
index 4d4a55b..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementSetTest.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 215531)
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.viewers;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-
-import org.eclipse.jface.internal.databinding.viewers.ViewerElementSet;
-import org.eclipse.jface.viewers.IElementComparer;
-
-import junit.framework.TestCase;
-
-/**
- * @since 1.2
- */
-public class ViewerElementSetTest extends TestCase {
-	IdentityElementComparer comparer;
-	ViewerElementSet set;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		comparer = new IdentityElementComparer();
-		set = new ViewerElementSet(comparer);
-	}
-
-	public void testConstructor_NullComparer() {
-		try {
-			new ViewerElementSet(null);
-			fail("Constructor should throw exception when null comparer passed in");
-		} catch (RuntimeException expected) {
-		}
-	}
-
-	public void testConstructorWithCollection_NullCollection() {
-		try {
-			new ViewerElementSet(null, new IdentityElementComparer());
-			fail("Constructor should throw exception when null collection passed in");
-		} catch (RuntimeException expected) {}
-	}
-
-	public void testConstructorWithCollection_AddsAllElements() {
-		Collection toCopy = Collections.singleton(new Object());
-		set = new ViewerElementSet(toCopy, new IdentityElementComparer());
-		assertTrue(set.containsAll(toCopy));
-	}
-
-	public void testAdd_ContainsHonorsComparer() {
-		Object o1 = new String("string");
-		Object o2 = new String("string"); // distinct instances
-		assertTrue(o1.equals(o2));
-		assertNotSame(o1, o2);
-
-		assertTrue(set.add(o1));
-
-		assertTrue(set.contains(o1));
-		assertFalse(set.contains(o2));
-	}
-
-	public void testAdd_FilterDuplicateElements() {
-		Object o = new Object();
-
-		assertTrue(set.add(o));
-		assertFalse(set.add(o)); // no change--element already in set
-
-		assertEquals(1, set.size());
-		assertTrue(set.contains(o));
-	}
-
-	public void testAddAll_ContainsAllHonorsComparer() {
-		String o1 = new String("o1");
-		String o2 = new String("o2");
-		Collection items = Arrays.asList(new Object[] { o1, o2 });
-		assertTrue(set.addAll(items));
-
-		assertTrue(set.containsAll(items));
-		assertFalse(set.containsAll(Collections.singleton(new String("o1"))));
-		assertFalse(set.containsAll(Collections.singleton(new String("o2"))));
-	}
-
-	public void testAddAll_FiltersDuplicateElements() {
-		Object o = new Object();
-		set.add(o);
-
-		assertFalse(set.addAll(Collections.singleton(o)));
-	}
-
-	public void testClear() {
-		set.add(new Object());
-		assertEquals(1, set.size());
-
-		set.clear();
-		assertEquals(0, set.size());
-	}
-
-	public void testIsEmpty() {
-		assertTrue(set.isEmpty());
-		set.add(new Object());
-		assertFalse(set.isEmpty());
-	}
-
-	public void testIterator() {
-		Object o = new Object();
-		set.add(o);
-
-		Iterator iterator = set.iterator();
-		assertTrue(iterator.hasNext());
-		assertSame(o, iterator.next());
-
-		assertTrue(set.contains(o));
-		iterator.remove();
-		assertFalse(set.contains(o));
-
-		assertFalse(iterator.hasNext());
-	}
-
-	public void testRemove() {
-		Object o = new Object();
-		assertFalse(set.remove(o));
-
-		assertTrue(set.add(o));
-		assertTrue(set.contains(o));
-		assertTrue(set.remove(o));
-
-		assertFalse(set.contains(o));
-	}
-
-	public void testRemoveAll() {
-		assertFalse(set.removeAll(Collections.EMPTY_SET));
-
-		Object o1 = new Object();
-		Object o2 = new Object();
-		set.addAll(Arrays.asList(new Object[] { o1, o2 }));
-
-		assertTrue(set.removeAll(Collections.singleton(o1)));
-		assertFalse(set.contains(o1));
-		assertFalse(set.removeAll(Collections.singleton(o1)));
-
-		assertTrue(set.removeAll(Arrays.asList(new Object[] { o2, "some",
-				"other", "objects" })));
-		assertFalse(set.contains(o2));
-	}
-
-	public void testRetainAll() {
-		Object o1 = new Object();
-		Object o2 = new Object();
-		set.add(o1);
-		set.add(o2);
-
-		assertFalse(set.retainAll(Arrays.asList(new Object[] { o1, o2 }))); // no
-																			// change
-
-		assertTrue(set.contains(o2));
-		assertTrue(set.retainAll(Collections.singleton(o1)));
-		assertFalse(set.contains(o2));
-
-		assertTrue(set.contains(o1));
-		assertTrue(set.retainAll(Collections.EMPTY_SET));
-		assertFalse(set.contains(o1));
-	}
-
-	public void testSize() {
-		assertEquals(0, set.size());
-
-		Object o = new Object();
-		set.add(o);
-		assertEquals(1, set.size());
-
-		set.remove(o);
-		assertEquals(0, set.size());
-	}
-
-	public void testToArray() {
-		assertEquals(0, set.toArray().length);
-
-		Object o = new Object();
-		set.add(o);
-		assertTrue(Arrays.equals(new Object[] { o }, set.toArray()));
-	}
-
-	public void testToArrayWithObjectArray() {
-		Object o = new String("unique");
-		set.add(o);
-
-		String[] array = (String[]) set.toArray(new String[0]);
-		assertEquals(1, array.length);
-		assertSame(o, array[0]);
-	}
-
-	public void testEquals() {
-		assertTrue(set.equals(set));
-		assertFalse(set.equals(null));
-		assertFalse(set.equals(new Object()));
-
-		assertTrue(set.equals(Collections.EMPTY_SET));
-
-		Object o = new String("string");
-		Object distinct = new String("string");
-		set.add(o);
-		assertTrue(set.equals(Collections.singleton(o)));
-		assertFalse(set.equals(Collections.singleton(distinct)));
-	}
-
-	public void testHashCode() {
-		// Hash code implementation is mandated
-		assertEquals(0, set.hashCode());
-
-		Object o = new Object();
-		set.add(o);
-		int hash = comparer.hashCode(o);
-		assertEquals(hash, set.hashCode());
-
-		Object o2 = new Object();
-		set.add(o2);
-		hash += comparer.hashCode(o2);
-		assertEquals(hash, set.hashCode());
-	}
-
-	static class IdentityElementComparer implements IElementComparer {
-		public boolean equals(Object a, Object b) {
-			return a == b;
-		}
-
-		public int hashCode(Object element) {
-			return System.identityHashCode(element);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementWrapperTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementWrapperTest.java
deleted file mode 100644
index f85d811..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerElementWrapperTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.internal.databinding.viewers;
-
-import org.eclipse.jface.internal.databinding.viewers.ViewerElementWrapper;
-import org.eclipse.jface.viewers.IElementComparer;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.2
- * 
- */
-public class ViewerElementWrapperTest extends TestCase {
-	private ViewerElementWrapper wrapper;
-	private Object element;
-	private IElementComparer comparer;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		element = new ElementStub(0);
-		comparer = new IdentityElementComparer();
-		wrapper = new ViewerElementWrapper(element, comparer);
-	}
-
-	public void testConstructor_NullComparer() {
-		try {
-			new ViewerElementWrapper(element, null);
-			fail("Expected NullPointerException");
-		} catch (NullPointerException expected) {
-		}
-	}
-
-	public void testEquals() {
-		assertFalse(wrapper.equals(null));
-		assertTrue(wrapper.equals(wrapper));
-		assertTrue(wrapper.equals(new ViewerElementWrapper(element, comparer)));
-	}
-
-	public void testHashCode() {
-		int hash = 0;
-		element = new ElementStub(hash);
-		wrapper = new ViewerElementWrapper(element, comparer);
-		assertEquals(System.identityHashCode(element), wrapper.hashCode());
-		assertEquals(hash, element.hashCode());
-	}
-
-	static class ElementStub {
-		private final int hash;
-
-		public ElementStub(int hash) {
-			this.hash = hash;
-		}
-
-		public boolean equals(Object obj) {
-			if (obj == this)
-				return true;
-			if (obj == null)
-				return false;
-			if (obj.getClass() != getClass())
-				return false;
-			ElementStub that = (ElementStub) obj;
-			return this.hash == that.hash;
-		}
-
-		public int hashCode() {
-			return hash;
-		}
-	}
-
-	static class IdentityElementComparer implements IElementComparer {
-		public boolean equals(Object a, Object b) {
-			return a == b;
-		}
-
-		public int hashCode(Object element) {
-			return System.identityHashCode(element);
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerInputObservableValueTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerInputObservableValueTest.java
deleted file mode 100644
index 6161721..0000000
--- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/internal/databinding/viewers/ViewerInputObservableValueTest.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Matthew Hall - initial API and implementation (bug 206839)
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-package org.eclipse.jface.tests.internal.databinding.viewers;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.jface.databinding.conformance.MutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.AbstractObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-import org.eclipse.jface.internal.databinding.viewers.ViewerInputObservableValue;
-import org.eclipse.jface.tests.databinding.AbstractDefaultRealmTestCase;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-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 ViewerInputObservableValue.
- * 
- * @since 1.2
- */
-public class ViewerInputObservableValueTest extends
-		AbstractDefaultRealmTestCase {
-	private TableViewer viewer;
-	private static String[] model = new String[] { "0", "1" };
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		Shell shell = new Shell();
-		viewer = new TableViewer(shell, SWT.NONE);
-		viewer.setContentProvider(new ContentProvider());
-	}
-
-	protected void tearDown() throws Exception {
-		Shell shell = viewer.getTable().getShell();
-		if (!shell.isDisposed())
-			shell.dispose();
-		super.tearDown();
-	}
-
-	public void testConstructor_IllegalArgumentException() {
-		try {
-			new ViewerInputObservableValue(Realm.getDefault(), null);
-			fail("Expected IllegalArgumentException for null argument");
-		} catch (IllegalArgumentException expected) {
-		}
-	}
-
-	public void testSetInputOnViewer_FiresNoChangeEvents() {
-		IObservableValue observable = new ViewerInputObservableValue(Realm
-				.getDefault(), viewer);
-		ValueChangeEventTracker listener = ValueChangeEventTracker.observe(observable);
-
-		assertNull(viewer.getInput());
-		assertEquals(0, listener.count);
-
-		viewer.setInput(model);
-
-		assertEquals(model, observable.getValue());
-		assertEquals(0, listener.count);
-
-		viewer.setInput(null);
-
-		assertEquals(null, observable.getValue());
-		assertEquals(0, listener.count);
-	}
-
-	public void testGetSetValue_FiresChangeEvents() {
-		IObservableValue observable = new ViewerInputObservableValue(Realm
-				.getDefault(), viewer);
-		ValueChangeEventTracker listener = new ValueChangeEventTracker();
-		observable.addValueChangeListener(listener);
-
-		assertNull(observable.getValue());
-		assertEquals(0, listener.count);
-
-		observable.setValue(model);
-
-		assertEquals(model, observable.getValue());
-		assertEquals(1, listener.count);
-		assertValueChangeEventEquals(observable, null, model, listener.event);
-
-		observable.setValue(null);
-
-		assertNull(observable.getValue());
-		assertEquals(2, listener.count);
-		assertValueChangeEventEquals(observable, model, null, listener.event);
-	}
-
-	public void testGetValueType_AlwaysNull() throws Exception {
-		IObservableValue observable = new ViewerInputObservableValue(Realm
-				.getDefault(), viewer);
-		assertEquals(null, observable.getValueType());
-	}
-
-	public void testDispose() throws Exception {
-		IObservableValue observable = new ViewerInputObservableValue(Realm
-				.getDefault(), viewer);
-		observable.dispose();
-		assertNull(observable.getRealm());
-		try {
-			observable.setValue(model);
-			fail("Expected NullPointerException");
-		} catch (NullPointerException expected) {
-		}
-	}
-
-	private void assertValueChangeEventEquals(
-			IObservableValue expectedObservable, Object expectedOldValue,
-			Object expectedNewValue, ValueChangeEvent event) {
-		assertSame(expectedObservable, event.getObservableValue());
-		assertEquals(expectedOldValue, event.diff.getOldValue());
-		assertEquals(expectedNewValue, event.diff.getNewValue());
-	}
-
-	static class ContentProvider implements IStructuredContentProvider {
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return (String[]) inputElement;
-		}
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ViewerInputObservableValueTest.class.getName());
-		suite.addTestSuite(ViewerInputObservableValueTest.class);
-		suite.addTest(MutableObservableValueContractTest.suite(new Delegate()));
-		return suite;
-	}
-
-	static class Delegate extends AbstractObservableValueContractDelegate {
-		TableViewer viewer;
-
-		public void setUp() {
-			super.setUp();
-			Shell shell = new Shell();
-			viewer = new TableViewer(shell, SWT.NONE);
-			viewer.setContentProvider(new ContentProvider());
-		}
-
-		public void tearDown() {
-			Shell shell = viewer.getTable().getShell();
-			if (!shell.isDisposed())
-				shell.dispose();
-			super.tearDown();
-		}
-
-		public IObservableValue createObservableValue(Realm realm) {
-			return new ViewerInputObservableValue(realm, viewer);
-		}
-
-		public void change(IObservable observable) {
-			IObservableValue value = (IObservableValue)observable;
-			value.setValue(createValue(value));
-		}
-
-		public Object createValue(IObservableValue observable) {
-			return new String[] { "one", "two" };
-		}
-
-		public Object getValueType(IObservableValue observable) {
-			return null;
-		}
-	}
-}
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.forms/.classpath b/tests/org.eclipse.ui.tests.forms/.classpath
deleted file mode 100755
index d63d95a..0000000
--- a/tests/org.eclipse.ui.tests.forms/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="forms"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests.forms/.project b/tests/org.eclipse.ui.tests.forms/.project
deleted file mode 100755
index 59578af..0000000
--- a/tests/org.eclipse.ui.tests.forms/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.forms</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.ui.tests.forms/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.forms/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index de9c6bf..0000000
--- a/tests/org.eclipse.ui.tests.forms/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Tue Dec 04 10:00:25 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/org.eclipse.ui.tests.forms/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.forms/META-INF/MANIFEST.MF
deleted file mode 100755
index 70fc130..0000000
--- a/tests/org.eclipse.ui.tests.forms/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Forms Test
-Bundle-SymbolicName: org.eclipse.ui.tests.forms;singleton:=true
-Bundle-Version: 3.3.100.qualifier
-Bundle-Activator: org.eclipse.ui.tests.forms.plugin.FormsTestPlugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.test.performance,
- org.eclipse.ui.forms,
- org.junit
-Eclipse-LazyStart: true
-Bundle-Vendor: Eclipse.org
-Bundle-ClassPath: forms-tests.jar
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.ui.tests.forms/about.html b/tests/org.eclipse.ui.tests.forms/about.html
deleted file mode 100755
index d42b3ce..0000000
--- a/tests/org.eclipse.ui.tests.forms/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests.forms/build.properties b/tests/org.eclipse.ui.tests.forms/build.properties
deleted file mode 100755
index 0e2ed4c..0000000
--- a/tests/org.eclipse.ui.tests.forms/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = forms-tests.jar,\
-               META-INF/,\
-               about.html,\
-               test.xml
-jars.compile.order = forms-tests.jar
-output.forms-tests.jar = bin/
-source.forms-tests.jar = forms/
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsPerformanceTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsPerformanceTests.java
deleted file mode 100755
index 8871ee9..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsPerformanceTests.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.forms;
-
-import org.eclipse.ui.tests.forms.performance.FormsPerformanceTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/*
- * Tests forms performance (automated).
- */
-public class AllFormsPerformanceTests extends TestSuite {
-
-	/*
-	 * Returns the entire test suite.
-	 */
-	public static Test suite() {
-		return new AllFormsPerformanceTests();
-	}
-
-	/*
-	 * Constructs a new performance test suite.
-	 */
-	public AllFormsPerformanceTests() {
-		addTestSuite(FormsPerformanceTest.class);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsTests.java
deleted file mode 100755
index 154822a..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsTests.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.forms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.forms.layout.AllLayoutTests;
-import org.eclipse.ui.tests.forms.util.AllUtilityTests;
-
-/*
- * Tests all cheat sheet functionality (automated).
- */
-public class AllFormsTests extends TestSuite {
-
-	/*
-	 * Returns the entire test suite.
-	 */
-	public static Test suite() {
-		return new AllFormsTests();
-	}
-
-	/*
-	 * Constructs a new test suite.
-	 */
-	public AllFormsTests() {
-		addTest(AllLayoutTests.suite());
-		addTest(AllUtilityTests.suite());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/AllLayoutTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/AllLayoutTests.java
deleted file mode 100755
index 4f47a8f..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/AllLayoutTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.forms.layout;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllLayoutTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(
-				"org.eclipse.ua.tests.forms.AllLayoutTests");
-		//$JUnit-BEGIN$
-		suite.addTestSuite(TestTableWrapLayout.class);
-		//$JUnit-END$
-		return suite;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/TestTableWrapLayout.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/TestTableWrapLayout.java
deleted file mode 100755
index da8ffea..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/TestTableWrapLayout.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.forms.layout;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-import junit.framework.TestCase;
-
-public class TestTableWrapLayout extends TestCase {
-
-	private final String A1 = "A";
-	private final String A10 = "A A A A A A A A A A";
-	private final String A20 = A10 + " " + A10;
-	private final String A40 = A20 + " " + A20;
-	private final String A80 = A40 + " " + A40;
-	
-	// Returns the width + left
-	private int rightEdge(Label lab) {
-		Rectangle r = lab.getBounds();
-		return r.x + r.width;
-	}
-	
-	/**
-	 * Test that labels with the WRAP property set do indeed wrap.
-	 */
-	public void testTableWrapLayoutNonWrappingLabels() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(100, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		inner.setLayout(new TableWrapLayout());
-		Label l1 = new Label(inner, SWT.NULL);
-		l1.setText(A10);
-		Label l2 = new Label(inner, SWT.NULL);
-		l2.setText(A80);
-		shell.layout();
-		assertEquals(l1.getSize().y, l2.getSize().y);
-		assertTrue(l2.getSize().x > 100);
-		shell.dispose();
-	}
-	
-	/**
-	 * Test that labels with the WRAP property set do indeed wrap.
-	 */
-    // Test suppressed for now - does not pass but not sure if this is a bug
-	public void suppressed_testWrappingPoint() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(300, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		TableWrapLayout tableWrapLayout = new TableWrapLayout();
-		tableWrapLayout.leftMargin = 0;
-		tableWrapLayout.rightMargin = 0;
-		inner.setLayout(tableWrapLayout);
-		Label l1 = new Label(inner, SWT.WRAP);
-		l1.setText(A10);
-		shell.layout();
-		int originalWidth = l1.getSize().x;
-		int originalHeight = l1.getSize().y;
-		shell.setSize(originalWidth, 300);
-		shell.layout();
-		assertEquals(l1.getSize().y, originalHeight);
-		shell.setSize(originalWidth / 2, 300);
-		shell.layout();
-		inner.layout();
-		assertTrue(l1.getSize().y > originalHeight);
-		shell.dispose();
-	}
-	
-	/**
-	 * Test that labels with the WRAP property set do indeed wrap.
-	 */
-	// Test suppressed for now, see Bug 196686 
-	public void suppressed_testTableWrapLayoutWrappingLabels() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(100, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		inner.setLayout(new TableWrapLayout());
-		Label l1 = new Label(inner, SWT.WRAP);
-		l1.setText(A10);
-		Label l2 = new Label(inner, SWT.WRAP);
-		l2.setText(A80);
-		shell.layout();
-		assertTrue(l1.getSize().y < l2.getSize().y);
-		assertTrue("Label is too wide for layout ", l1.getSize().x <= 100);
-		assertTrue("Label is too wide for layout ", l2.getSize().x <= 100);
-		assertTrue("Labels overlap", l2.getBounds().y >= l1.getBounds().y + l1.getBounds().height);
-		shell.dispose();
-	}
-	
-	/**
-	 * Test a 2x2 grid with unequal sizes
-	 */
-	public void testTableWrapLayoutTwoColumnsWrappingLabels() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(100, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		TableWrapLayout tableWrapLayout = new TableWrapLayout();
-		tableWrapLayout.numColumns = 2;
-		inner.setLayout(tableWrapLayout);
-		Label l1 = new Label(inner, SWT.WRAP);
-		l1.setText(A10);
-		Label l2 = new Label(inner, SWT.WRAP);
-		l2.setText(A20);
-		Label l3 = new Label(inner, SWT.WRAP);
-		l3.setText(A40);
-		Label l4 = new Label(inner, SWT.WRAP);
-		l4.setText(A80);
-		shell.layout();
-		assertTrue(l1.getSize().x < l2.getSize().x);
-		assertTrue(l1.getSize().y < l3.getSize().y);
-		assertTrue(l1.getSize().x < l4.getSize().x);
-		assertTrue(l2.getSize().y < l3.getSize().y);
-		assertTrue("Label is too wide for layout ", l1.getSize().x + l2.getSize().x <= 100);
-		assertTrue("Labels overlap", l2.getBounds().x >= l1.getBounds().x + l1.getBounds().width);
-		assertTrue("Labels overlap", l3.getBounds().y >= l1.getBounds().y + l1.getBounds().height);
-		assertTrue("Labels overlap", l4.getBounds().x >= l3.getBounds().x + l3.getBounds().width);
-		assertTrue("Labels overlap", l4.getBounds().y >= l2.getBounds().y + l2.getBounds().height);
-		shell.dispose();
-	}
-	
-	/**
-	 * Test alignments and margins
-	 */
-	// Suppressed for now - see Bug 196686 
-	public void suppressed_testTableWrapLayoutAlignment() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(100, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		TableWrapLayout tableWrapLayout = new TableWrapLayout();
-		final int LEFT_MARGIN = 1;
-		final int RIGHT_MARGIN = 2;
-		final int TOP_MARGIN = 3;
-		final int BOTTOM_MARGIN = 4;
-		tableWrapLayout.leftMargin = LEFT_MARGIN;
-		tableWrapLayout.rightMargin = RIGHT_MARGIN;
-		tableWrapLayout.topMargin = TOP_MARGIN;
-		tableWrapLayout.bottomMargin = BOTTOM_MARGIN;
-		inner.setLayout(tableWrapLayout);
-		Label lab0 = new Label(inner, SWT.WRAP);
-		lab0.setText(A80);
-		Label labLeft = new Label(inner, SWT.NULL);
-		labLeft.setText(A1);
-		TableWrapData dataLeft = new TableWrapData();
-		dataLeft.align = TableWrapData.LEFT;
-		labLeft.setLayoutData(dataLeft);
-		Label labRight = new Label(inner, SWT.NULL);
-		labRight.setText(A1);
-		TableWrapData dataRight = new TableWrapData();
-		dataRight.align = TableWrapData.RIGHT;
-		labRight.setLayoutData(dataRight);
-		Label labCenter = new Label(inner, SWT.NULL);
-		labCenter.setText(A1);
-		TableWrapData dataCenter = new TableWrapData();
-		dataCenter.align = TableWrapData.CENTER;
-		labCenter.setLayoutData(dataCenter);
-		Label labFill = new Label(inner, SWT.NULL);
-		labFill.setText(A1);
-		TableWrapData dataFill = new TableWrapData();
-		dataFill.align = TableWrapData.FILL;
-		labFill.setLayoutData(dataFill);
-		shell.layout();
-		// Check layout
-		assertEquals(LEFT_MARGIN , labLeft.getBounds().x);
-		assertTrue(rightEdge(lab0) > rightEdge(labLeft));
-		assertTrue(rightEdge(labLeft) + tableWrapLayout.rightMargin < 100);
-		
-		assertEquals(rightEdge(labRight), rightEdge(lab0));
-		assertTrue(labRight.getBounds().x > LEFT_MARGIN);
-		
-		assertTrue(labCenter.getBounds().x > LEFT_MARGIN);
-		assertTrue(rightEdge(lab0) > rightEdge(labCenter));
-		
-		int offCenter = rightEdge(labCenter) + labCenter.getBounds().x 
-		   - rightEdge(lab0) + lab0.getBounds().x;
-		assertTrue(offCenter >= -2);
-		assertTrue(offCenter <= 2);
-		
-		assertEquals(LEFT_MARGIN , labFill.getBounds().x);
-		assertEquals(rightEdge(labFill), rightEdge(lab0));
-		shell.dispose();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/performance/FormsPerformanceTest.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/performance/FormsPerformanceTest.java
deleted file mode 100755
index ec8a642..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/performance/FormsPerformanceTest.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.forms.performance;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class FormsPerformanceTest extends PerformanceTestCase {
-	
-	public void test_createForm() {
-		tagAsSummary("Create Form", Dimension.ELAPSED_PROCESS);
-	    Performance.getDefault();
-		
-		// Warm up.
-
-		Display display = PlatformUI.getWorkbench().getDisplay();
-
-		FormToolkit toolkit;
-		toolkit = new FormToolkit(display);
-		for(int samples = 0; samples < 2; samples++) {
-			Shell shell = new Shell(display);
-			shell.setSize(400, 300);
-			shell.setLayout(new FillLayout());
-			shell.open();
-
-			for (int i = 0; i < 5; i++) {
-				Composite c = new Composite(shell, SWT.H_SCROLL + SWT.V_SCROLL);
-				c.setLayout(new FillLayout());
-                createPartControl(c, toolkit);
-                shell.layout(true); 
-                while(display.readAndDispatch()){/*empty*/}
-				c.dispose();
-			}
-			shell.dispose();
-			while(display.readAndDispatch()){/*empty*/}
-		}
-
-		for(int samples = 0; samples < 50; samples++) {
-			Shell shell = new Shell(display);
-			shell.setSize(400, 300);
-			shell.setLayout(new FillLayout());
-			shell.open();
-			startMeasuring();
-			for (int i = 0; i < 3; i++) {
-				Composite c = new Composite(shell, SWT.H_SCROLL + SWT.V_SCROLL);
-				c.setLayout(new FillLayout());
-                createPartControl(c, toolkit);
-                shell.layout(true);
-                while(display.readAndDispatch()){/*empty*/}
-				c.dispose();
-			}
-			stopMeasuring(); 
-			shell.dispose();
-			while(display.readAndDispatch()){/*empty*/}
-		}	
-		toolkit.dispose();
-		commitMeasurements();
-		assertPerformance();
-	}
-	
-	public void createPartControl(Composite parent, FormToolkit toolkit) {
-		//Label l = new Label(parent, SWT.NULL);
-		//l.setText ("a label");
-		ScrolledForm form;
-		form = toolkit.createScrolledForm(parent);
-		form.setText("Hello, Eclipse Forms");
-		TableWrapLayout layout = new TableWrapLayout();
-		form.getBody().setLayout(layout);
-		
-		Hyperlink link = toolkit.createHyperlink(form.getBody(), "Click here.",
-				SWT.WRAP);
-		link.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				System.out.println("Link activated!");
-			}
-		});
-		link.setText("This is an example of a form that is much longer and will need to wrap.");
-		layout.numColumns = 2;
-		TableWrapData td = new TableWrapData();
-		td.colspan = 2;
-		link.setLayoutData(td);
-		toolkit.createLabel(form.getBody(), "Text field label:");
-		Text text = toolkit.createText(form.getBody(), "");
-		td = new TableWrapData(TableWrapData.FILL_GRAB);
-		text.setLayoutData(td);
-		Button button = toolkit.createButton(form.getBody(),
-				"An example of a checkbox in a form", SWT.CHECK);
-		td = new TableWrapData();
-		td.colspan = 2;
-		button.setLayoutData(td);
-		
-		ImageHyperlink ih = toolkit.createImageHyperlink(form.getBody(), SWT.NULL);
-		ih.setText("Image link with no image");
-		ih = toolkit.createImageHyperlink(form.getBody(), SWT.NULL);
-		//ih.setImage(ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		ih.setText("Link with image and text");
-		
-		ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE|ExpandableComposite.CLIENT_INDENT);
-		ImageHyperlink eci = toolkit.createImageHyperlink(ec, SWT.NULL);
-		//eci.setImage(ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		ec.setTextClient(eci);
-		ec.setText("Expandable Composite title");
-		String ctext = "We will now create a somewhat long text so that "+
-		"we can use it as content for the expandable composite. "+
-		"Expandable composite is used to hide or show the text using the "+
-		"toggle control";
-		Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);
-		ec.setClient(client);
-		td = new TableWrapData();
-		td.colspan = 2;
-		ec.setLayoutData(td);
-		ec.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				//form.reflow(true);
-			}
-		});
-		Section section = toolkit.createSection(form.getBody(), Section.DESCRIPTION|Section.TWISTIE|Section.EXPANDED);
-		td = new TableWrapData(TableWrapData.FILL);
-		td.colspan = 2;
-		section.setLayoutData(td);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				//form.reflow(true);
-			}
-		});
-		section.setText("Section title");
-		toolkit.createCompositeSeparator(section);
-		section.setDescription("This is the description that goes below the title");
-		Composite sectionClient = toolkit.createComposite(section);
-		sectionClient.setLayout(new GridLayout());
-		button = toolkit.createButton(sectionClient, "Radio 1", SWT.RADIO);
-		button = toolkit.createButton(sectionClient, "Radio 2", SWT.RADIO);
-		section.setClient(sectionClient);
-
-		StringBuffer buf = new StringBuffer();
-		buf.append("<form>");
-		buf.append("<p>");
-		buf.append("Here is some plain text for the text to render; ");
-		buf.append("this text is at <a href=\"http://www.eclipse.org\" nowrap=\"true\">http://www.eclipse.org</a> web site.");
-		buf.append("</p>");
-		buf.append("<p>");
-		buf.append("<span color=\"header\" font=\"header\">This text is in header font.</span>");
-		buf.append("</p>");
-		buf.append("<p>This line will contain some <b>bold</b> and some <span font=\"code\">source</span> text. ");
-		buf.append("We can also add <img href=\"image\"/> an image. ");
-		buf.append("</p>");
-		buf.append("<li>A default (bulleted) list item.</li>");
-		buf.append("<li>Another bullet list item.</li>");
-		buf.append("<li style=\"text\" value=\"1.\">A list item with text.</li>");
-		buf.append("<li style=\"text\" value=\"2.\">Another list item with text</li>");
-		buf.append("<li style=\"image\" value=\"image\">List item with an image bullet</li>");
-		buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"3.\">A list item with text.</li>");
-		buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"4.\">A list item with text.</li>");
-		buf.append("<p>     leading blanks;      more white \n\n new lines   <br/><br/><br/> \n more <b>   bb   </b>  white  . </p>");
-		buf.append("</form>");
-		FormText rtext = toolkit.createFormText(form.getBody(), false);
-		//rtext.setWhitespaceNormalized(false);
-		td = new TableWrapData(TableWrapData.FILL);
-		td.colspan = 2;
-		rtext.setLayoutData(td);
-		//rtext.setImage("image", ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		//rtext.setColor("header", JFaceColors.getErrorText(display));
-		rtext.setFont("header", JFaceResources.getHeaderFont());
-		rtext.setFont("code", JFaceResources.getTextFont());
-		rtext.setText(buf.toString(), true, false);
-		rtext.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				System.out.println("Link active: "+e.getHref());
-			}
-		});
-/*		layout.numColumns = 3;
-		Label label;
-		TableWrapData td;
-		
-		label = toolkit.createLabel(form.getBody(), "Some text to put in the first column", SWT.WRAP);
-		label = toolkit.createLabel(form.getBody() ,"Some text to put in the second column and make it a bit longer so that we can see what happens with column distribution. This text must be the longest so that it can get more space allocated to the columns it belongs to.", SWT.WRAP);
-		td = new TableWrapData();
-		td.colspan = 2;
-		label.setLayoutData(td);
-		label = toolkit.createLabel(form.getBody(), "This text will span two rows and should not grow the column.", SWT.WRAP);
-		td = new TableWrapData();
-		td.rowspan = 2;
-		label.setLayoutData(td);
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 2 and consumes only one cell", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 3 and consumes only one cell too", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 2 and consumes only one cell", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 3 and consumes only one cell too", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		form.getBody().setBackground(form.getBody().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));*/
-		
-		toolkit.paintBordersFor(form.getBody());
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/plugin/FormsTestPlugin.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/plugin/FormsTestPlugin.java
deleted file mode 100755
index 0e3ceb2..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/plugin/FormsTestPlugin.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.forms.plugin;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class FormsTestPlugin extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.ui.tests.forms";
-
-	// The shared instance
-	private static FormsTestPlugin plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public FormsTestPlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static FormsTestPlugin getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/AllUtilityTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/AllUtilityTests.java
deleted file mode 100755
index fec1b32..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/AllUtilityTests.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.forms.util;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/*
- * Tests forms performance (automated).
- */
-public class AllUtilityTests extends TestSuite {
-
-	/*
-	 * Returns the entire test suite.
-	 */
-	public static Test suite() {
-		return new AllUtilityTests();
-	}
-
-	/*
-	 * Constructs a new performance test suite.
-	 */
-	public AllUtilityTests() {
-		addTestSuite(FormImagesTests.class);
-		addTestSuite(FormFontsTests.class);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormFontsTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormFontsTests.java
deleted file mode 100755
index bc998f9..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormFontsTests.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
- 
-package org.eclipse.ui.tests.forms.util;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.forms.widgets.FormFonts;
-
-public class FormFontsTests extends TestCase {
-	public void testSingleton() {
-		Display display = Display.getCurrent();
-		FormFonts instance = FormFonts.getInstance();
-		// ensure the singleton is returning the same instance
-		Assert.assertTrue("getInstance() returned a different FormFonts instance", instance.equals(FormFonts.getInstance()));
-		Font boldSystemFont = instance.getBoldFont(display, display.getSystemFont());
-		instance.markFinished(boldSystemFont);
-		// ensure the singleton is returning the same instance after creating and disposing one gradient
-		Assert.assertTrue("getInstance() returned a different FormFonts instance after creation and disposal of one bold font", instance.equals(FormFonts.getInstance()));
-	}
-	
-	public void testDisposeOne() {
-		Display display = Display.getCurrent();
-		Font boldSystemFont = FormFonts.getInstance().getBoldFont(display, display.getSystemFont());
-		FormFonts.getInstance().markFinished(boldSystemFont);
-		// ensure that getting a single gradient and marking it as finished disposed it
-		Assert.assertTrue("markFinished(...) did not dispose a font after a single getBoldFont()", boldSystemFont.isDisposed());
-	}
-	
-	public void testMultipleInstances() {
-		Display display = Display.getCurrent();
-		Font boldSystemFont = FormFonts.getInstance().getBoldFont(display, display.getSystemFont());
-		int count;
-		// ensure that the same image is returned for many calls with the same parameter
-		for (count = 1; count < 20; count ++)
-			Assert.assertEquals("getBoldFont(...) returned a different font for the same params on iteration "+count,
-					boldSystemFont, FormFonts.getInstance().getBoldFont(display, display.getSystemFont()));
-		for ( ;count > 0; count--) {
-			FormFonts.getInstance().markFinished(boldSystemFont);
-			if (count != 1)
-				// ensure that the gradient is not disposed early
-				Assert.assertFalse("markFinished(...) disposed a shared font early on iteration "+count,boldSystemFont.isDisposed());
-			else
-				// ensure that the gradient is disposed on the last markFinished
-				Assert.assertTrue("markFinished(...) did not dispose a shared font on the last call",boldSystemFont.isDisposed());
-		}
-	}
-	
-	public void testMultipleFonts() {
-		Display display = Display.getCurrent();
-		Font systemFont = display.getSystemFont();
-		Font bannerFont = JFaceResources.getBannerFont();
-		if (systemFont.equals(bannerFont)) return;  // Skip test in unlikely event these are the same font
-		Font boldSystemFont = FormFonts.getInstance().getBoldFont(display, systemFont);
-		Font boldBannerFont = FormFonts.getInstance().getBoldFont(display, bannerFont);
-		assertFalse(boldSystemFont.equals(boldBannerFont));
-		FormFonts.getInstance().markFinished(boldSystemFont);
-		assertTrue(boldSystemFont.isDisposed());
-		assertFalse(boldBannerFont.isDisposed());
-		FormFonts.getInstance().markFinished(boldBannerFont);
-		assertTrue(boldBannerFont.isDisposed());
-	}
-	
-	public void testDisposeUnknown() {
-		Display display = Display.getCurrent();
-		Font system = new Font(display, display.getSystemFont().getFontData());
-		FormFonts.getInstance().markFinished(system);
-		Assert.assertTrue("markFinished(...) did not dispose of an unknown font", system.isDisposed());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormImagesTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormImagesTests.java
deleted file mode 100755
index 316b3b4..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormImagesTests.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
- 
-package org.eclipse.ui.tests.forms.util;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.forms.widgets.FormImages;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-public class FormImagesTests extends TestCase {
-	public void testSingleton() {
-		Display display = Display.getCurrent();
-		FormImages instance = FormImages.getInstance();
-		// ensure the singleton is returning the same instance
-		Assert.assertTrue("getInstance() returned a different FormImages instance", instance.equals(FormImages.getInstance()));
-		Image gradient = instance.getGradient(display, new Color(display, 1, 1, 1), new Color(display, 7, 7, 7), 21, 21, 0);
-		instance.markFinished(gradient);
-		// ensure the singleton is returning the same instance after creating and disposing one gradient
-		Assert.assertTrue("getInstance() returned a different FormImages instance after creation and disposal of one image", instance.equals(FormImages.getInstance()));
-	}
-	
-	public void testDisposeOne() {
-		Display display = Display.getCurrent();
-		Image gradient = FormImages.getInstance().getGradient(display, new Color(display, 255, 255, 255), new Color(display, 0, 0, 0), 21, 21, 0);
-		FormImages.getInstance().markFinished(gradient);
-		// ensure that getting a single gradient and marking it as finished disposed it
-		Assert.assertTrue("markFinished(...) did not dispose an image after a single getGradient()", gradient.isDisposed());
-	}
-	
-	public void testMultipleSimpleInstances() {
-		Display display = Display.getCurrent();
-		Image gradient = FormImages.getInstance().getGradient(display, new Color(display, 200, 200, 200), new Color(display, 0, 0, 0), 30, 16, 3);
-		int count;
-		// ensure that the same image is returned for many calls with the same parameter
-		for (count = 1; count < 20; count ++)
-			Assert.assertEquals("getGradient(...) returned a different image for the same params on iteration "+count,
-					gradient, FormImages.getInstance().getGradient(display, new Color(display, 200, 200, 200), new Color(display, 0, 0, 0), 30, 16, 3));
-		for ( ;count > 0; count--) {
-			FormImages.getInstance().markFinished(gradient);
-			if (count != 1)
-				// ensure that the gradient is not disposed early
-				Assert.assertFalse("markFinished(...) disposed a shared image early on iteration "+count,gradient.isDisposed());
-			else
-				// ensure that the gradient is disposed on the last markFinished
-				Assert.assertTrue("markFinished(...) did not dispose a shared image on the last call",gradient.isDisposed());
-		}
-	}
-	
-	public void testMultipleComplexInstances() {
-		Display display = Display.getCurrent();
-		Image gradient = FormImages.getInstance().getGradient(display, new Color[] {new Color(display, 200, 200, 200), new Color(display, 0, 0, 0)},
-				new int[] {100}, 31, true, null);
-		int count;
-		// ensure that the same image is returned for many calls with the same parameter
-		for (count = 1; count < 20; count ++)
-			Assert.assertEquals("getGradient(...) returned a different image for the same params on iteration "+count,
-					gradient, FormImages.getInstance().getGradient(display, new Color[] {new Color(display, 200, 200, 200), new Color(display, 0, 0, 0)},
-							new int[] {100}, 31, true, null));
-		for ( ;count > 0; count--) {
-			FormImages.getInstance().markFinished(gradient);
-			if (count != 1)
-				// ensure that the gradient is not disposed early
-				Assert.assertFalse("markFinished(...) disposed a shared image early on iteration "+count,gradient.isDisposed());
-			else
-				// ensure that the gradient is disposed on the last markFinished
-				Assert.assertTrue("markFinished(...) did not dispose a shared image on the last call",gradient.isDisposed());
-		}
-	}
-	
-	public void testMultipleUniqueInstances() {
-		Display display = Display.getCurrent();
-		Image[] images = new Image[24];
-		images[0] = FormImages.getInstance().getGradient(display, new Color(display, 1, 0, 0), new Color(display, 100, 100, 100), 25, 23, 1);
-		images[1] = FormImages.getInstance().getGradient(display, new Color(display, 0, 1, 0), new Color(display, 100, 100, 100), 25, 23, 1);
-		images[2] = FormImages.getInstance().getGradient(display, new Color(display, 0, 0, 1), new Color(display, 100, 100, 100), 25, 23, 1);
-		images[3] = FormImages.getInstance().getGradient(display, new Color(display, 0, 0, 0), new Color(display, 101, 100, 100), 25, 23, 1);
-		images[4] = FormImages.getInstance().getGradient(display, new Color(display, 0, 0, 0), new Color(display, 100, 101, 100), 25, 23, 1);
-		images[5] = FormImages.getInstance().getGradient(display, new Color(display, 0, 0, 0), new Color(display, 100, 100, 101), 25, 23, 1);
-		images[6] = FormImages.getInstance().getGradient(display, new Color(display, 0, 0, 0), new Color(display, 100, 100, 100), 20, 23, 1);
-		images[7] = FormImages.getInstance().getGradient(display, new Color(display, 0, 0, 0), new Color(display, 100, 100, 100), 25, 10, 1);
-		images[8] = FormImages.getInstance().getGradient(display, new Color(display, 0, 0, 0), new Color(display, 100, 100, 100), 25, 23, 2);
-		images[9] = FormImages.getInstance().getGradient(display, new Color(display, 1, 1, 1), new Color(display, 101, 101, 101), 20, 10, 2);
-		images[10] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0)}, new int[] {}, 31, true, null);
-		images[11] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,1,1,1)},
-				new int[] {80}, 31, true, new Color(display,255,255,255));
-		images[12] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,1,1,1)},
-				new int[] {80}, 31, true, new Color(display,0,0,0));
-		images[13] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,100,100,100)},
-				new int[] {100}, 31, true, null);
-		images[14] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,1,0,0), new Color(display,100,100,100)},
-				new int[] {100}, 31, true, null);
-		images[15] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,1,0), new Color(display,100,100,100)},
-				new int[] {100}, 31, true, null);
-		images[16] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,1), new Color(display,100,100,100)},
-				new int[] {100}, 31, true, null);
-		images[17] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,101,100,100)},
-				new int[] {100}, 31, true, null);
-		images[18] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,100,101,100)},
-				new int[] {100}, 31, true, null);
-		images[19] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,100,100,101)},
-				new int[] {100}, 31, true, null);
-		images[20] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,100,100,100)},
-				new int[] {100}, 20, true, null);
-		images[21] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,100,100,100)},
-				new int[] {100}, 31, false, null);
-		images[22] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,0,0,0), new Color(display,100,100,100)},
-				new int[] {50}, 31, true, new Color(display,1,1,1));
-		images[23] = FormImages.getInstance().getGradient(display, new Color[]{new Color(display,1,1,1), new Color(display,101,101,101)},
-				new int[] {50}, 20, false, new Color(display,1,1,1));
-		// ensure none of the images are the same
-		for (int i = 0; i < images.length - 1; i++) {
-			for (int j = i+1; j < images.length; j++) {
-				Assert.assertNotSame("getGradient(...) returned the same image for different parameters: i = " + i + "; j = " + j, images[i], images[j]);
-			}
-		}
-		// ensure all of the images are disposed with one call to markFinished
-		for (int i = 0; i < images.length; i++) {
-			FormImages.getInstance().markFinished(images[i]);
-			Assert.assertTrue("markFinished(...) did not dispose an image that was only requested once: i = " + i, images[i].isDisposed());
-		}
-	}
-	
-	public void testComplexEquality() {
-		Display display = Display.getCurrent();
-		Image image1 = FormImages.getInstance().getGradient(display, new Color[] {new Color(display,0,0,0), new Color(display,255,255,255)},
-				new int[] {100}, 20, true, new Color(display,100,100,100));
-		Image image2 = FormImages.getInstance().getGradient(display, new Color[] {new Color(display,0,0,0), new Color(display,255,255,255)},
-				new int[] {100}, 20, true, new Color(display,0,0,0));
-		Assert.assertEquals("different images were created with only the background color differing when that difference is irrelevant", image1, image2);
-		FormImages.getInstance().markFinished(image1);
-		FormImages.getInstance().markFinished(image2);
-		image1 = FormImages.getInstance().getGradient(display, new Color[] {new Color(display,0,0,0), new Color(display,255,255,255)},
-				new int[] {80}, 20, true, new Color(display,100,100,100));
-		image2 = FormImages.getInstance().getGradient(display, new Color[] {new Color(display,0,0,0), new Color(display,255,255,255)},
-				new int[] {80}, 20, true, new Color(display,0,0,0));
-		Assert.assertNotSame("the same image was used when different background colors were specified", image1, image2);
-		FormImages.getInstance().markFinished(image1);
-		FormImages.getInstance().markFinished(image2);
-	}
-	
-	public void testToolkitColors() {
-		String blueKey = "blue";
-		String redKey = "red";
-		
-		Display display = Display.getCurrent();
-		FormToolkit kit1 = new FormToolkit(display);
-		kit1.getColors().createColor(blueKey, new RGB(0,0,255));
-		kit1.getColors().createColor(redKey, new RGB(255,0,0));
-		FormToolkit kit2 = new FormToolkit(display);
-		kit2.getColors().createColor(blueKey, new RGB(0,0,255));
-		kit2.getColors().createColor(redKey, new RGB(255,0,0));
-		Image image1 = FormImages.getInstance().getGradient(display, kit1.getColors().getColor(blueKey), kit1.getColors().getColor(redKey), 21, 21, 0);
-		Image image2 = FormImages.getInstance().getGradient(display, kit2.getColors().getColor(blueKey), kit2.getColors().getColor(redKey), 21, 21, 0);
-		Assert.assertEquals("different images were created for the same RGBs with different Color instances", image1, image2);
-		Image image3 = FormImages.getInstance().getGradient(display, new Color(display,0,0,255), new Color(display,255,0,0), 21, 21, 0);
-		Assert.assertEquals("different images were created for the same RGBs with different Color instances", image1, image3);
-		kit1.dispose();
-		Assert.assertFalse("image was disposed after toolkits were disposed", image1.isDisposed());
-		kit2.dispose();
-		Assert.assertFalse("image was disposed after toolkits were disposed", image2.isDisposed());
-		FormImages.getInstance().markFinished(image1);
-		Assert.assertFalse("image was disposed early", image1.isDisposed());
-		FormImages.getInstance().markFinished(image2);
-		Assert.assertFalse("image was disposed early", image2.isDisposed());
-		FormImages.getInstance().markFinished(image3);
-		Assert.assertTrue("image was not disposed", image3.isDisposed());
-	}
-	
-	public void testDisposeUnknown() {
-		Display display = Display.getCurrent();
-		Image image = new Image(display, 10, 10);
-		FormImages.getInstance().markFinished(image);
-		Assert.assertTrue("markFinished(...) did not dispose of an unknown image", image.isDisposed());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/test.xml b/tests/org.eclipse.ui.tests.forms/test.xml
deleted file mode 100755
index 72779d4..0000000
--- a/tests/org.eclipse.ui.tests.forms/test.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-	<!-- The property ${eclipse-home} should be passed into this script -->
-	<!-- Set a meaningful default value for when it is not. -->
-	<property name="eclipse-home" value="${basedir}/../.."/>
-
-	<!-- sets the properties eclipse-home, and library-file -->
-	<property name="plugin-name" value="org.eclipse.ui.tests.forms"/>
-	<property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-	<!-- This target holds all initialization code that needs to be done for -->
-	<!-- all tests that are to be run. Initialization for individual tests -->
-	<!-- should be done within the body of the suite target. -->
-	<target name="init">
-		<tstamp/>
-		<delete>
-			<fileset dir="${eclipse-home}" includes="org*.xml"/>
-		</delete>
-	</target>
-
-	<!-- This target defines the tests that need to be run. -->
-	<target name="suite">
-		<property name="session-folder" value="${eclipse-home}/ui_session_sniff_folder"/>
-		<delete dir="${session-folder}" quiet="true"/>
-		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="data-dir" value="${session-folder}"/>
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.ui.tests.forms.AllFormsTests"/>
-		</ant>
-	</target>
-
-	<!-- This target holds code to cleanup the testing environment after -->
-	<!-- after all of the tests have been run. You can use this target to -->
-	<!-- delete temporary files that have been created. -->
-	<target name="cleanup">
-	</target>
-
-	<!-- This target runs the test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="run" depends="init,suite,cleanup">
-		<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="includes" value="org*.xml"/>
-			<property name="output-file" value="${plugin-name}.xml"/>
-		</ant>
-	</target>
-
-	<!-- This target defines the performance tests that need to be run. -->
-	<target name="performance-suite">
-		<property name="your-performance-folder" value="${eclipse-home}/ui_forms_performance_folder"/>
-		<delete dir="${your-performance-folder}" quiet="true"/>
-		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="data-dir" value="${your-performance-folder}"/>
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.ui.tests.forms.AllFormsPerformanceTests"/>
-		</ant>
-	</target>
-
-	<!-- This target runs the performance test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="performance" depends="init,performance-suite,cleanup">
-		<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="includes" value="org*.xml"/>
-			<property name="output-file" value="${plugin-name}.xml"/>
-		</ant>
-	</target>
-
-</project>
diff --git a/tests/org.eclipse.ui.tests.harness/.classpath b/tests/org.eclipse.ui.tests.harness/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/tests/org.eclipse.ui.tests.harness/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests.harness/.cvsignore b/tests/org.eclipse.ui.tests.harness/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/tests/org.eclipse.ui.tests.harness/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/tests/org.eclipse.ui.tests.harness/.project b/tests/org.eclipse.ui.tests.harness/.project
deleted file mode 100644
index d1441f8..0000000
--- a/tests/org.eclipse.ui.tests.harness/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.harness</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index d3ae5de..0000000
--- a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,72 +0,0 @@
-#Mon Nov 19 11:44:19 CET 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=no_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100755
index 18b09f6..0000000
--- a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:19:46 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.pde.prefs
deleted file mode 100755
index 883666b..0000000
--- a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Mon Feb 21 14:17:36 EST 2005
-compilers.p.deprecated=2
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=1
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF
deleted file mode 100644
index a921da7..0000000
--- a/tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Harness Plug-in
-Bundle-SymbolicName: org.eclipse.ui.tests.harness;singleton:=true
-Bundle-Version: 1.1.0.qualifier
-Bundle-Activator: org.eclipse.ui.tests.harness.UITestHarnessPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.tests.harness,
- org.junit,
- org.eclipse.core.resources
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.ui.tests.harness,
- org.eclipse.ui.tests.harness.tests,
- org.eclipse.ui.tests.harness.util,
- org.eclipse.ui.tests.internal.util;x-internal:=true
diff --git a/tests/org.eclipse.ui.tests.harness/about.html b/tests/org.eclipse.ui.tests.harness/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests.harness/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.harness/build.properties b/tests/org.eclipse.ui.tests.harness/build.properties
deleted file mode 100644
index 44806c6..0000000
--- a/tests/org.eclipse.ui.tests.harness/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml
diff --git a/tests/org.eclipse.ui.tests.harness/icons/anything.gif b/tests/org.eclipse.ui.tests.harness/icons/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.harness/icons/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.harness/plugin.xml b/tests/org.eclipse.ui.tests.harness/plugin.xml
deleted file mode 100644
index 482a837..0000000
--- a/tests/org.eclipse.ui.tests.harness/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Performance Empty Perspective"
-            class="org.eclipse.ui.tests.harness.util.EmptyPerspective"
-            id="org.eclipse.ui.tests.harness.util.EmptyPerspective">
-      </perspective>
-      <perspective
-            name="Performance Empty Perspective 2"
-            class="org.eclipse.ui.tests.harness.util.EmptyPerspective"
-            id="org.eclipse.ui.tests.harness.util.EmptyPerspective2">
-      </perspective>
-	</extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/AllTests.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/AllTests.java
deleted file mode 100644
index 42eeb67..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/AllTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness;
-
-import org.eclipse.ui.tests.harness.tests.MocksTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test the test harness :)
- * 
- * @since 3.3
- *
- */
-public class AllTests extends TestSuite {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
-    }
-    
-    public static Test suite() {
-        return new AllTests();
-    }
-
-    public AllTests() {
-        addTestSuite(MocksTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/UITestHarnessPlugin.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/UITestHarnessPlugin.java
deleted file mode 100644
index e0d7b26..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/UITestHarnessPlugin.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UITestHarnessPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static UITestHarnessPlugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public UITestHarnessPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 *
-	 * @return the shared instance.
-	 */
-	public static UITestHarnessPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tests.harness", path);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/tests/MocksTest.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/tests/MocksTest.java
deleted file mode 100644
index b7a9f5c..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/tests/MocksTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Brad Reynolds.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Brad Reynolds - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.harness.tests;
-
-import java.lang.reflect.UndeclaredThrowableException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.tests.harness.util.Mocks;
-
-/**
- * Tests for the Mocks class.
- * 
- * @since 1.1
- */
-public class MocksTest extends TestCase {
-	private IPrimitive primitiveMock;
-
-	private static boolean uninitializedBoolean;
-	private static byte unitializedByte;
-	private static char unitializedChar;
-	private static short unitializedShort;
-	private static int unitializedInt;
-	private static long unitializedLong;
-	private static float unitializedFloat;
-	private static double unitializedDouble;
-	
-	protected void setUp() throws Exception {
-		primitiveMock = (IPrimitive) Mocks.createRelaxedMock(IPrimitive.class);
-	}
-
-	public void testPrimitiveBooleanReturnType() throws Exception {
-		try {
-			boolean value = primitiveMock.getBoolean();
-			assertEquals(uninitializedBoolean, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveBooleanSetLastReturnValue() throws Exception {
-		Boolean value = Boolean.TRUE;
-		primitiveMock.getBoolean();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.booleanValue(), primitiveMock.getBoolean());		
-	}
-	
-	public void testPrimitiveByteReturnType() throws Exception {
-		try {
-			byte value = primitiveMock.getByte();
-			assertEquals(unitializedByte, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveByteSetLastReturnValue() throws Exception {
-		Byte value = new Byte((byte) 1);
-		primitiveMock.getByte();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.byteValue(), primitiveMock.getByte());
-	}
-	
-	public void testPrimitiveCharReturnType() throws Exception {
-		try {
-			char value = primitiveMock.getChar();
-			assertEquals(unitializedChar, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveCharSetLastReturnValue() throws Exception {
-		Character value = new Character('a');
-		primitiveMock.getChar();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.charValue(), primitiveMock.getChar());
-	}
-	
-	public void testPrimitiveShortReturnType() throws Exception {
-		try {
-			short value = primitiveMock.getShort();
-			assertEquals(unitializedShort, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-
-	public void testPrimitiveShortSetLastReturnValue() throws Exception {
-		Short value = new Short((short) 1);
-		primitiveMock.getShort();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.shortValue(), primitiveMock.getShort());
-	}
-	
-	public void testPrimitiveIntReturnType() throws Exception {
-		try {
-			int value = primitiveMock.getInt();
-			assertEquals(unitializedInt, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveIntSetLastReturnValue() throws Exception {
-		Integer value = new Integer(1);
-		primitiveMock.getInt();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.intValue(), primitiveMock.getInt());
-	}
-	
-	public void testPrimitiveLongReturnType() throws Exception {
-		try {
-			long value = primitiveMock.getLong();
-			assertEquals(unitializedLong, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveLongSetLastReturnValue() throws Exception {
-		Long value = new Long(1);
-		primitiveMock.getLong();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.longValue(), primitiveMock.getLong());
-	}
-	
-	public void testPrimitiveFloatReturnType() throws Exception {
-		try {
-			float value = primitiveMock.getFloat();
-			assertEquals(unitializedFloat, value, 0);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveFloatSetLastReturnValue() throws Exception {
-		Float value = new Float(1);
-		primitiveMock.getFloat();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.floatValue(), primitiveMock.getFloat(), 0);
-	}
-	
-	public void testPrimitiveDoubleReturnType() throws Exception {
-		try {
-			double value = primitiveMock.getDouble();
-			assertEquals(unitializedDouble, value, 0);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveDoubleSetLastReturnValue() throws Exception {
-		Double value = new Double(1);
-		primitiveMock.getDouble();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.doubleValue(), primitiveMock.getDouble(), 0);
-	}
-
-	public interface IPrimitive {
-		public boolean getBoolean();
-
-		public byte getByte();
-
-		public char getChar();
-
-		public short getShort();
-
-		public int getInt();
-
-		public long getLong();
-
-		public float getFloat();
-
-		public double getDouble();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ActionUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ActionUtil.java
deleted file mode 100644
index 35e5393..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ActionUtil.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import java.lang.reflect.Method;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.SubContributionItem;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.WorkbenchWindow;
-
-/**
- * <code>ActionUtil</code> contains methods to run actions
- * in the workbench.
- */
-public class ActionUtil {
-
-    /**
-     * Runs an action contribution.
-     * 
-     * @param test the current test case
-     * @param item an action contribution item
-     */
-    public static void runAction(TestCase test, IContributionItem item) {
-        Assert.assertTrue(item instanceof ActionContributionItem);
-        ((ActionContributionItem) item).getAction().run();
-    }
-
-    /**
-     * Runs the first action found in a menu manager with a
-     * particular label. 
-     *
-     * @param test the current test case
-     * @param mgr the containing menu manager
-     * @param label the action label
-     */
-    public static void runActionWithLabel(TestCase test, IMenuManager mgr,
-            String label) {
-        IContributionItem[] items = mgr.getItems();
-        for (int nX = 0; nX < items.length; nX++) {
-            IContributionItem item = items[nX];
-            if (item instanceof SubContributionItem)
-                item = ((SubContributionItem) item).getInnerItem();
-            if (item instanceof ActionContributionItem) {
-                IAction action = ((ActionContributionItem) item).getAction();
-                if (label.equals(action.getText())) {
-                    action.run();
-                    return;
-                }
-            }
-        }
-        Assert.fail("Unable to find action: " + label);
-    }
-
-    /**
-     * Runs the first action found in a window with a
-     * particular label. 
-     * 
-     * @param test the current test case
-     * @param win the containing window
-     * @param label the action label
-     */
-    public static void runActionWithLabel(TestCase test, IWorkbenchWindow win,
-            String label) {
-        WorkbenchWindow realWin = (WorkbenchWindow) win;
-        IMenuManager mgr = realWin.getMenuManager();
-        runActionWithLabel(test, mgr, label);
-    }
-
-    /**
-     * Runs an action identified by an id path in a 
-     * menu manager.
-     * 
-     * @param test the current test case
-     * @param mgr the containing menu manager
-     * @param label the action label
-     */
-    public static void runActionUsingPath(TestCase test, IMenuManager mgr,
-            String idPath) {
-        IContributionItem item = mgr.findUsingPath(idPath);
-        Assert.assertNotNull(item);
-        runAction(test, item);
-    }
-
-    /**
-     * Runs an action identified by an id path in a 
-     * window.
-     * 
-     * @param test the current test case
-     * @param win the containing window
-     * @param label the action label
-     */
-    public static void runActionUsingPath(TestCase test, IWorkbenchWindow win,
-            String idPath) {
-        WorkbenchWindow realWin = (WorkbenchWindow) win;
-        IMenuManager mgr = realWin.getMenuManager();
-        runActionUsingPath(test, mgr, idPath);
-    }
-
-    /**
-     * Returns the first action found in a menu manager with a
-     * particular label. 
-     *
-     * @param mgr the containing menu manager
-     * @param label the action label
-     * @return the first action with the label, or <code>null</code>
-     * 		if it is not found.
-     */
-    public static IAction getActionWithLabel(IMenuManager mgr, String label) {
-        IContributionItem[] items = mgr.getItems();
-        for (int nX = 0; nX < items.length; nX++) {
-            IContributionItem item = items[nX];
-            if (item instanceof SubContributionItem)
-                item = ((SubContributionItem) item).getInnerItem();
-            if (item instanceof ActionContributionItem) {
-                IAction action = ((ActionContributionItem) item).getAction();
-                if (label.equals(action.getText())) {
-                    return action;
-                }
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Fire the "handleAboutToShow" method in a menu manager.
-     * This triggers the same behavior as when a user opens a menu.
-     * The menu to be populated with actions and those 
-     * actions to be enacted in SWT widgets.
-     * 
-     * @param mgr the menu manager to open
-     */
-    public static void fireAboutToShow(MenuManager mgr) throws Throwable {
-        Class clazz = mgr.getClass();
-        Method method = clazz.getDeclaredMethod("handleAboutToShow",
-                new Class[0]);
-        method.setAccessible(true);
-        method.invoke(mgr, new Object[0]);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ArrayUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ArrayUtil.java
deleted file mode 100644
index 9afabce..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ArrayUtil.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import java.util.Random;
-
-/**
- * <code>ArrayUtil</code> contains methods for array 
- * examination.  
- */
-public class ArrayUtil {
-    private static Random randomBox = new Random();
-
-    /**
-     * Returns a random object chosen from an array.
-     * 
-     * @param array the input array
-     * @return a random object in the array
-     */
-    public static Object pickRandom(Object[] array) {
-        int num = randomBox.nextInt(array.length);
-        return array[num];
-    }
-
-    /**
-     * Returns whether an array is not null and
-     * each object in the array is not null.
-     *
-     * @param array the input array
-     * @return <code>true or false</code>
-     */
-    public static boolean checkNotNull(Object[] array) {
-        if (array == null)
-            return false;
-        else {
-            for (int i = 0; i < array.length; i++)
-                if (array[i] == null)
-                    return false;
-            return true;
-        }
-    }
-
-    /**
-     * Returns whether an array contains a given object.
-     *
-     * @param array the input array
-     * @param element the test object
-     * @return <code>true</code> if the array contains the object,
-     * 		<code>false</code> otherwise.
-     */
-    public static boolean contains(Object[] array, Object element) {
-        if (array == null || element == null)
-            return false;
-        else {
-            for (int i = 0; i < array.length; i++)
-                if (array[i] == element)
-                    return true;
-            return false;
-        }
-    }
-
-    /**
-     * Returns whether two arrays are equal.  They must
-     * have the same size and the same contents.
-     *
-     * @param one the first array
-     * @param two the second array
-     * @return <code>true</code> if the array are equal,
-     * 		<code>false</code> otherwise.
-     */
-    public static boolean equals(Object[] one, Object[] two) {
-        if (one.length != two.length)
-            return false;
-        else {
-            for (int i = 0; i < one.length; i++)
-                if (one[i] != two[i])
-                    return false;
-            return true;
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/AutomationUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/AutomationUtil.java
deleted file mode 100644
index eae1417..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/AutomationUtil.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * <code>AutomationUtil</code> contains utility methods to mimic key events.
- * Mouse event methods can be added if needed to complete this class.
- */
-public class AutomationUtil {
-
-	/**
-	 * Method to mimic a key code event on a display.
-	 * 
-	 * @param display
-	 *            The display.
-	 * @param eventType
-	 *            The event type.
-	 * @param keyCode
-	 *            The key code.
-	 */
-	public static void performKeyCodeEvent(Display display, int eventType,
-			int keyCode) {
-		Event event = new Event();
-		event.type = eventType;
-		event.keyCode = keyCode;
-		display.post(event);
-	}
-
-	/**
-	 * Method to mimic a character event on a display.
-	 * 
-	 * @param display
-	 *            The display.
-	 * @param eventType
-	 *            The event type.
-	 * @param character
-	 *            The character to mimic.
-	 */
-	public static void performCharacterEvent(Display display, int eventType,
-			char character) {
-		Event event = new Event();
-		event.type = eventType;
-		event.character = character;
-		display.post(event);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/CallHistory.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/CallHistory.java
deleted file mode 100644
index 4ec7030..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/CallHistory.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-
-/**
- * <code>CallHistory</code> is used to record the invocation
- * of methods within a target object.  This is useful during
- * lifecycle testing for an object.
- * <p>
- * To use <code>CallHistory</code> ..
- * <ol>
- * <li>Create a CallHistory in the target or pass one in.</li>
- * <li>Invoke some test scenario.  </li>
- * <li>If a method is called on the target record the invocation
- * 	in the call history</li>
- * <li>Verify the call history after the test scenario is
- * 	complete.</li>
- * </ol>
- * </p><p>
- * Each <code>CallHistory</code> has a target which is used to 
- * verify the method names passed to the history.  If an invalid 
- * name is passed an <code>IllegalArgumentException</code> will 
- * be thrown.
- * </p>
- */
-public class CallHistory {
-    private ArrayList methodList;
-
-    private Class classType;
-
-    /**
-     * Creates a new call history for an object.  
-     * 
-     * @param target the call history target. 
-     */
-    public CallHistory(Object target) {
-        methodList = new ArrayList();
-        classType = target.getClass();
-    }
-
-    /**
-     * Throws an exception if the method name is invalid
-     * for the given target class.
-     */
-    private void testMethodName(String methodName) {
-        Method[] methods = classType.getMethods();
-        for (int i = 0; i < methods.length; i++)
-            if (methods[i].getName().equals(methodName))
-                return;
-        throw new IllegalArgumentException("Target class ("
-                + classType.getName() + ") does not contain method: "
-                + methodName);
-    }
-
-    /**
-     * Adds a method name to the call history.  
-     * 
-     * @param methodName the name of a method
-     */
-    public void add(String methodName) {
-        testMethodName(methodName);
-        methodList.add(methodName);
-    }
-
-    /**
-     * Clears the call history.
-     */
-    public void clear() {
-        methodList.clear();
-    }
-
-    /**
-     * Returns whether a list of methods have been called in
-     * order.  
-     * 
-     * @param testNames an array of the method names in the order they are expected
-     * @return <code>true</code> if the methods were called in order
-     */
-    public boolean verifyOrder(String[] testNames)
-            throws IllegalArgumentException {
-        int testIndex = 0;
-        int testLength = testNames.length;
-        if (testLength == 0)
-            return true;
-        for (int nX = 0; nX < methodList.size(); nX++) {
-            String methodName = (String) methodList.get(nX);
-            String testName = testNames[testIndex];
-            testMethodName(testName);
-            if (testName.equals(methodName))
-                ++testIndex;
-            if (testIndex >= testLength)
-                return true;
-        }
-        return false;
-    }
-
-    /**
-     * Returns whether a method has been called.
-     * 
-     * @param methodName a method name
-     * @return <code>true</code> if the method was called
-     */
-    public boolean contains(String methodName) {
-        testMethodName(methodName);
-        return methodList.contains(methodName);
-    }
-
-    /**
-     * Returns whether a list of methods were called.
-     * 
-     * @param methodNames a list of methods
-     * @return <code>true</code> if the methods were called
-     */
-    public boolean contains(String[] methodNames) {
-        for (int i = 0; i < methodNames.length; i++) {
-            testMethodName(methodNames[i]);
-            if (!methodList.contains(methodNames[i]))
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Returns whether the list of methods called is empty.
-     * 
-     * @return <code>true</code> iff the list of methods is empty
-     */
-    public boolean isEmpty() {
-        return methodList.isEmpty();
-    }
-
-    /**
-     * Prints the call history to the console.
-     */
-    public void printToConsole() {
-        for (int i = 0; i < methodList.size(); i++)
-            System.out.println(methodList.get(i));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DialogCheck.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DialogCheck.java
deleted file mode 100644
index f7f0c37..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DialogCheck.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import junit.framework.Assert;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.internal.util.VerifyDialog;
-
-/**
- * A <code>DialogCheck</code> is used test a dialog in
- * various ways. 
- * <p>
- * For interactive tests use <code>assertDialog</code>.
- * For automated tests use <code>assert DialogTexts</code>.
- * </p> 
- */
-public class DialogCheck {
-    private DialogCheck() {
-    }
-
-    private static VerifyDialog _verifyDialog;
-
-    /**
-     * Asserts that a given dialog is not null and that it passes
-     * certain visual tests.  These tests will be verified manually
-     * by the tester using an input dialog.  Use this assert method
-     * to verify a dialog's sizing, initial focus, or accessiblity.
-     * To ensure that both the input dialog and the test dialog are
-     * accessible by the tester, the getShell() method should be used
-     * when creating the test dialog.
-     * 
-     * Example usage:
-     * <code>Dialog dialog = new AboutDialog( DialogCheck.getShell() );
-     * DialogCheck.assertDialog(dialog, this);</code>
-     * 
-     * @param dialog the test dialog to be verified.
-     * @param assert this is the test case object, assertions will be
-     * executed on this object.
-     */
-    public static void assertDialog(Dialog dialog, Assert assertion) {
-        Assert.assertNotNull(dialog);
-        if (_verifyDialog.getShell() == null) {
-            //force the creation of the verify dialog
-            getShell();
-        }
-        if (_verifyDialog.open(dialog) == IDialogConstants.NO_ID) {
-            Assert.assertTrue(_verifyDialog.getFailureText(), false);
-        }
-    }
-
-    /**
-     * Automated test that checks all the labels and buttons of a dialog
-     * to make sure there is enough room to display all the text.  Any
-     * text that wraps is only approximated and is currently not accurate.
-     * 
-     * @param dialog the test dialog to be verified.
-     * @param assert this is the test case object, assertions will be
-     * executed on this object.
-     */
-    public static void assertDialogTexts(Dialog dialog, Assert assertion) {
-        Assert.assertNotNull(dialog);
-        dialog.setBlockOnOpen(false);
-        dialog.open();
-        Shell shell = dialog.getShell();
-        verifyCompositeText(shell, assertion);
-        dialog.close();
-    }
-
-    /**
-     * This method should be called when creating dialogs to test.  This
-     * ensures that the dialog's parent shell will be that of the
-     * verification dialog.
-     * 
-     * @return Shell The shell of the verification dialog to be used as
-     * the parent shell of the test dialog.
-     */
-    public static Shell getShell() {
-        Shell shell = WorkbenchPlugin.getDefault().getWorkbench()
-                .getActiveWorkbenchWindow().getShell();
-        _verifyDialog = new VerifyDialog(shell);
-        _verifyDialog.create();
-        return _verifyDialog.getShell();
-    }
-
-    /*
-     * Looks at all the child widgets of a given composite and
-     * verifies the text on all labels and widgets.
-     * @param composite The composite to look through
-     * @param assert The object to invoke assertions on.
-     */
-    private static void verifyCompositeText(Composite composite,
-            Assert assertion) {
-        Control children[] = composite.getChildren();
-        for (int i = 0; i < children.length; i++) {
-        	Control child = children[i];
-            if (child instanceof TabFolder) {
-                TabFolder folder = (TabFolder) child;
-                int numPages = folder.getItemCount();
-                for (int j = 0; j < numPages; j++) {
-                    folder.setSelection(j);
-                }
-            }
-            else if (child instanceof Button) {
-                //verify the text if the child is a button
-                verifyButtonText((Button) child, assertion);
-            }
-            else if (child instanceof Label) {
-                //child is not a button, maybe a label
-                verifyLabelText((Label) child, assertion);
-            }
-            else if (child instanceof Composite) {
-                //child is not a label, make a recursive call if it is a composite
-                verifyCompositeText((Composite) child, assertion);
-            }
-        }
-    }
-
-    /*
-     * Verifies that a given button is large enough to display its text.
-     * @param button The button to verify,
-     * @param assert The object to invoke assertions on.
-     */
-    private static void verifyButtonText(Button button, Assert assertion) {
-        String widget = button.toString();
-        Point size = button.getSize();
-
-        //compute the size with no line wrapping
-        Point preferred = button.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        //if (size.y/preferred.y) == X, then label spans X lines, so divide
-        //the calculated value of preferred.x by X
-        if (preferred.y * size.y > 0) {
-            preferred.y /= countLines(button.getText()); //check for '\n\'
-            if (size.y / preferred.y > 1) {
-                preferred.x /= (size.y / preferred.y);
-            }
-        }
-
-        String message = new StringBuffer("Warning: ").append(widget).append(
-                "\n\tActual Width -> ").append(size.x).append(
-                "\n\tRecommended Width -> ").append(preferred.x).toString();
-        if (preferred.x > size.x) {
-            //close the dialog
-            button.getShell().dispose();
-            Assert.assertTrue(message.toString(), false);
-        }
-    }
-
-    /*
-     * Verifies that a given label is large enough to display its text.
-     * @param label The label to verify,
-     * @param assert The object to invoke assertions on.
-     */
-    private static void verifyLabelText(Label label, Assert assertion) {
-        String widget = label.toString();
-        Point size = label.getSize();
-
-        //compute the size with no line wrapping
-        Point preferred = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        //if (size.y/preferred.y) == X, then label spans X lines, so divide
-        //the calculated value of preferred.x by X
-        if (preferred.y * size.y > 0) {
-            preferred.y /= countLines(label.getText());
-            if (size.y / preferred.y > 1) {
-                preferred.x /= (size.y / preferred.y);
-            }
-        }
-        String message = new StringBuffer("Warning: ").append(widget).append(
-                "\n\tActual Width -> ").append(size.x).append(
-                "\n\tRecommended Width -> ").append(preferred.x).toString();
-        if (preferred.x > size.x) {
-            //close the dialog
-            label.getShell().dispose();
-            Assert.assertTrue(message.toString(), false);
-        }
-    }
-
-    /*
-     * Counts the number of lines in a given String.
-     * For example, if a string contains one (1) newline character,
-     * a value of two (2) would be returned.
-     * @param text The string to look through.
-     * @return int the number of lines in text.
-     */
-    private static int countLines(String text) {
-        int newLines = 1;
-        for (int i = 0; i < text.length(); i++) {
-            if (text.charAt(i) == '\n') {
-                newLines++;
-            }
-        }
-        return newLines;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EmptyPerspective.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EmptyPerspective.java
deleted file mode 100644
index 3baed17..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EmptyPerspective.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api.  It defines an initial
- * layout with no parts, just an editor area.
- */
-public class EmptyPerspective implements IPerspectiveFactory {
-
-    /**
-     * The perspective id for the empty perspective.
-     */
-    public static final String PERSP_ID = "org.eclipse.ui.tests.harness.util.EmptyPerspective";
-
-    /**
-     * The perspective id for the second empty perspective.
-     */
-    public static final String PERSP_ID2 = "org.eclipse.ui.tests.harness.util.EmptyPerspective2";
-
-    private static String LastPerspective;
-    
-    /**
-     * Returns the descriptor for the perspective last opened using this factory.
-     * 
-     * @return the descriptor for the perspective last opened using this factory, or <code>null</code>
-     */
-	public static String getLastPerspective() {
-		return LastPerspective;
-	}
-
-    /**
-     * Sets the descriptor for the perspective last opened using this factory.
-     * 
-     * @param persp the descriptor for the perspective last opened using this factory, or <code>null</code>
-     */
-	public static void setLastPerspective(String perspId) {
-		LastPerspective = perspId;
-	}
-    
-    /**
-     * Constructs a new Default layout engine.
-     */
-    public EmptyPerspective() {
-        super();
-    }
-
-    /**
-     * Defines the initial layout for a perspective.  
-     *
-     * Implementors of this method may add additional views to a
-     * perspective.  The perspective already contains an editor folder
-     * with <code>ID = ILayoutFactory.ID_EDITORS</code>.  Add additional views
-     * to the perspective in reference to the editor folder.
-     *
-     * This method is only called when a new perspective is created.  If
-     * an old perspective is restored from a persistence file then
-     * this method is not called.
-     *
-     * @param factory the factory used to add views to the perspective
-     */
-    public void createInitialLayout(IPageLayout layout) {
-    	setLastPerspective(layout.getDescriptor().getId());
-        // do no layout, this is the empty perspective
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileTool.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileTool.java
deleted file mode 100644
index 47e6b2a..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileTool.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.harness.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-
-
-public class FileTool {
-	
-	/**
-	 * A buffer.
-	 */
-	private static byte[] buffer = new byte[8192];
-	/**
-	 * Unzips the given zip file to the given destination directory
-	 * extracting only those entries the pass through the given
-	 * filter.
-	 * 
-	 * @param filter filters out unwanted zip entries
-	 * @param zipFile the zip file to unzip
-	 * @param dstDir the destination directory
-	 */
-	public static void unzip(ZipFile zipFile, File dstDir) throws IOException {
-		unzip(zipFile, dstDir, dstDir, 0);
-	}
-	
-	private static void unzip(ZipFile zipFile, File rootDstDir, File dstDir, int depth) throws IOException {
-	
-		Enumeration entries = zipFile.entries();
-	
-		try {
-			while(entries.hasMoreElements()){
-				ZipEntry entry = (ZipEntry)entries.nextElement();
-				if(entry.isDirectory()){
-					continue;
-				}
-				String entryName = entry.getName();
-				File file = new File(dstDir, changeSeparator(entryName, '/', File.separatorChar));
-				file.getParentFile().mkdirs();
-				InputStream src = null;
-				OutputStream dst = null;
-				try {
-					src = zipFile.getInputStream(entry);
-					dst = new FileOutputStream(file);
-					transferData(src, dst);
-				} finally {
-					if(dst != null){
-						try {
-							dst.close();
-						} catch(IOException e){
-						}
-					}
-					if(src != null){
-						try {
-							src.close();
-						} catch(IOException e){
-						}
-					}
-				}
-			}
-		} finally {
-			try {
-				zipFile.close();
-			} catch(IOException e){
-			}
-		}
-	}
-	/**
-	 * Returns the given file path with its separator
-	 * character changed from the given old separator to the
-	 * given new separator.
-	 * 
-	 * @param path a file path
-	 * @param oldSeparator a path separator character
-	 * @param newSeparator a path separator character
-	 * @return the file path with its separator character
-	 * changed from the given old separator to the given new
-	 * separator
-	 */
-	public static String changeSeparator(String path, char oldSeparator, char newSeparator){
-		return path.replace(oldSeparator, newSeparator);
-	}
-	/**
-	 * Copies all bytes in the given source file to
-	 * the given destination file.
-	 * 
-	 * @param source the given source file
-	 * @param destination the given destination file
-	 */
-	public static void transferData(File source, File destination) throws IOException {
-		destination.getParentFile().mkdirs();
-		InputStream is = null;
-		OutputStream os = null;
-		try {
-			is = new FileInputStream(source);
-			os = new FileOutputStream(destination);
-			transferData(is, os);
-		} finally {
-			if(os != null){
-				try {
-					os.close();
-				} catch(IOException e){
-				}
-			}
-			if(is != null){
-				try {
-					is.close();
-				} catch(IOException e){
-				}
-			}
-		}
-	}
-	/**
-	 * Copies all bytes in the given source stream to
-	 * the given destination stream. Neither streams
-	 * are closed.
-	 * 
-	 * @param source the given source stream
-	 * @param destination the given destination stream
-	 */
-	public static void transferData(InputStream source, OutputStream destination) throws IOException {
-		int bytesRead = 0;
-		while(bytesRead != -1){
-			bytesRead = source.read(buffer, 0, buffer.length);
-			if(bytesRead != -1){
-				destination.write(buffer, 0, bytesRead);
-			}
-		}
-	}
-
-	/**
-	 * Copies the given source file to the given destination file.
-	 * 
-	 * @param src the given source file
-	 * @param dst the given destination file
-	 */
-	public static void copy(File src, File dst) throws IOException {
-		if(src.isDirectory()){
-			String[] srcChildren = src.list();
-			for(int i = 0; i < srcChildren.length; ++i){
-				File srcChild= new File(src, srcChildren[i]);
-				File dstChild= new File(dst, srcChildren[i]);
-				copy(srcChild, dstChild);
-			}
-		} else
-			transferData(src, dst);
-	}
-
-	public static File getFileInPlugin(Plugin plugin, IPath path) {
-		try {
-			URL installURL= plugin.getBundle().getEntry(path.toString());
-			URL localURL= Platform.asLocalURL(installURL);
-			return new File(localURL.getFile());
-		} catch (IOException e) {
-			return null;
-		}
-	}
-
-	public static StringBuffer read(String fileName) throws IOException {
-		return read(new FileReader(fileName));
-	}
-
-	public static StringBuffer read(Reader reader) throws IOException {
-		StringBuffer s= new StringBuffer();
-		try {
-			char[] buffer= new char[8196];
-			int chars= reader.read(buffer);
-			while (chars != -1) {
-				s.append(buffer, 0, chars);
-				chars= reader.read(buffer);
-			}
-		} finally {
-			try {
-				reader.close();
-			} catch (IOException e) {
-			}
-		}
-		return s;
-	}
-
-	public static void write(String fileName, StringBuffer content) throws IOException {
-		Writer writer= new FileWriter(fileName);
-		try {
-			writer.write(content.toString());
-		} finally {
-			try {
-				writer.close();
-			} catch (IOException e) {
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileUtil.java
deleted file mode 100644
index ae6685f..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileUtil.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * <code>FileUtil</code> contains methods to create and
- * delete files and projects.
- */
-public class FileUtil {
-
-    /**
-     * Creates a new project.
-     * 
-     * @param name the project name
-     */
-    public static IProject createProject(String name) throws CoreException {
-        IWorkspace ws = ResourcesPlugin.getWorkspace();
-        IWorkspaceRoot root = ws.getRoot();
-        IProject proj = root.getProject(name);
-        if (!proj.exists())
-            proj.create(null);
-        if (!proj.isOpen())
-            proj.open(null);
-        return proj;
-    }
-
-    /**
-     * Deletes a project.
-     * 
-     * @param proj the project
-     */
-    public static void deleteProject(IProject proj) throws CoreException {
-        proj.delete(true, null);
-    }
-
-    /**
-     * Creates a new file in a project.
-     * 
-     * @param name the new file name
-     * @param proj the existing project
-     * @return the new file
-     */
-    public static IFile createFile(String name, IProject proj)
-            throws CoreException {
-        IFile file = proj.getFile(name);
-        if (!file.exists()) {
-            String str = " ";
-            InputStream in = new ByteArrayInputStream(str.getBytes());
-            file.create(in, true, null);
-        }
-        return file;
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ImageTests.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ImageTests.java
deleted file mode 100644
index 2a9111a..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ImageTests.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import java.util.Arrays;
-
-import junit.framework.Assert;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-
-/**
- * @since 3.1
- */
-public final class ImageTests {
-
-	/**
-	 * 
-	 */
-	private ImageTests() {
-		super();
-	}
-
-    public static void assertEquals(Image i1, Image i2) {
-        ImageData data1 = i1.getImageData();
-        ImageData data2 = i2.getImageData();
-        Assert.assertTrue(Arrays.equals(data1.data, data2.data));
-    }
-    
-    public static void assertNotEquals(Image i1, Image i2) {
-        ImageData data1 = i1.getImageData();
-        ImageData data2 = i2.getImageData();
-        Assert.assertFalse(Arrays.equals(data1.data, data2.data));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/Mocks.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/Mocks.java
deleted file mode 100644
index 59e7701..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/Mocks.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds (bug 146435)
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.AssertionFailedError;
-
-/**
- * Utility class for creating mock objects for public interfaces.
- * 
- * @since 3.3
- *
- */
-public class Mocks {
-
-	public static interface EqualityComparator {
-		public boolean equals(Object o1, Object o2);
-	}
-
-	private static EqualityComparator defaultEqualityComparator = new EqualityComparator() {
-		public boolean equals(Object o1, Object o2) {
-			return o1 == null ? o2 == null : o1.equals(o2);
-		}
-	};
-
-	private static EqualityComparator indifferentEqualityComparator = new EqualityComparator() {
-		public boolean equals(Object o1, Object o2) {
-			return true;
-		}
-	};
-
-	private static interface Mock {
-		public MockInvocationHandler getMockInvocationHandler();
-	}
-
-	private static Method getMockInvocationHandlerMethod;
-
-	private static Method equalsMethod;
-
-	static {
-		try {
-			getMockInvocationHandlerMethod = Mock.class.getMethod(
-					"getMockInvocationHandler", new Class[0]);
-			equalsMethod = Object.class.getMethod("equals",
-					new Class[] { Object.class });
-		} catch (Exception e) {
-			// ignore, will lead to NullPointerExceptions later on
-		}
-	}
-
-	private static final class MockInvocationHandler implements
-			InvocationHandler {
-
-		private class MethodCall {
-			private final Method method;
-
-			private final Object[] args;
-
-			private Object returnValue = null;
-
-			public MethodCall(Method method, Object[] args) {
-				this.method = method;
-				this.args = args;
-			}
-
-			public boolean equals(Object obj) {
-				if (!(obj instanceof MethodCall)) {
-					return false;
-				}
-				MethodCall other = (MethodCall) obj;
-				if (other.method != method
-						|| (other.args == null && args != null)
-						|| (other.args != null && args == null)
-						|| (args != null && other.args.length != args.length)) {
-					return false;
-				}
-				if (args != null) {
-					for (int i = 0; i < args.length; i++) {
-						if (!equalityComparator.equals(args[i], other.args[i])) {
-							return false;
-						}
-					}
-				}
-				return true;
-			}
-
-			public void setReturnValue(Object object) {
-				returnValue = object;
-			}
-
-			public Object getReturnValue() {
-				return returnValue;
-			}
-			
-			public String toString() {
-				return method.toString();
-			}
-		}
-
-		List previousCallHistory = null;
-
-		List currentCallHistory = new ArrayList();
-
-		private final boolean ordered;
-
-		private final EqualityComparator equalityComparator;
-
-		public MockInvocationHandler(boolean ordered,
-				EqualityComparator equalityComparator) {
-			this.ordered = ordered;
-			this.equalityComparator = equalityComparator;
-		}
-
-		public Object invoke(Object proxy, Method method, Object[] args)
-				throws Throwable {
-			if (getMockInvocationHandlerMethod.equals(method)) {
-				return this;
-			}
-			if (equalsMethod.equals(method)) {
-				return new Boolean(proxy == args[0]);
-			}
-			MethodCall methodCall = new MethodCall(method, args);
-			if (previousCallHistory != null) {
-				// we are in replay mode
-				int indexOfMethodCall = previousCallHistory.indexOf(methodCall);
-				if (indexOfMethodCall != -1) {
-					// copy return value over to this method call
-					methodCall.setReturnValue(((MethodCall) previousCallHistory
-							.get(indexOfMethodCall)).getReturnValue());
-				} else {
-					throw new AssertionFailedError("unexpected method call: "
-							+ method.getName());
-				}
-				if (ordered) {
-					if (previousCallHistory.size() <= currentCallHistory.size()) {
-						throw new AssertionFailedError("extra method call: "
-								+ method.getName());
-					}
-					MethodCall previousCall = (MethodCall) previousCallHistory
-							.get(currentCallHistory.size());
-					if (!methodCall.equals(previousCall)) {
-						throw new AssertionFailedError(
-								"different method call (expected:"
-										+ previousCall.method.getName()
-										+ ", actual:" + method.getName() + ")");
-					}
-				}
-			}
-			currentCallHistory.add(methodCall);
-			Class returnType = method.getReturnType();
-			if (returnType.isPrimitive() && void.class != returnType) {
-				Object result = null;
-				Object returnValue = methodCall.getReturnValue();
-
-				if (returnType == boolean.class) {
-					result = (returnValue != null) ? (Boolean) returnValue
-							: Boolean.FALSE;
-				} else if (returnType == byte.class) {
-					result = (returnValue != null) ? (Byte) returnValue
-							: new Byte((byte) 0);
-				} else if (returnType == char.class) {
-					result = (returnValue != null) ? (Character) returnValue
-							: new Character((char) 0);
-				} else if (returnType == short.class) {
-					result = (returnValue != null) ? (Short) returnValue
-							: new Short((short) 0);
-				} else if (returnType == int.class) {
-					result = (returnValue != null) ? (Integer) returnValue
-							: new Integer(0);
-				} else if (returnType == long.class) {
-					result = (returnValue != null) ? (Long) returnValue
-							: new Long(0);
-				} else if (returnType == float.class) {
-					result = (returnValue != null) ? (Float) returnValue
-							: new Float(0);
-				} else if (returnType == double.class) {
-					result = (returnValue != null) ? (Double) returnValue
-							: new Double(0);
-				}
-
-				return result;
-			}
-			return methodCall.getReturnValue();
-		}
-
-		public void replay() {
-			previousCallHistory = currentCallHistory;
-			currentCallHistory = new ArrayList();
-		}
-
-		public void verify() {
-			if (previousCallHistory == null) {
-				if (currentCallHistory.size() == 0) {
-					// mock object was not used at all
-					return;
-				}
-				throw new AssertionFailedError("unexpected");
-			}
-			if (ordered) {
-				int numMissingCalls = previousCallHistory.size()
-						- currentCallHistory.size();
-				if (numMissingCalls > 0) {
-					throw new AssertionFailedError("missing method calls ("
-							+ numMissingCalls + ", first is: " + previousCallHistory.get(currentCallHistory.size()) + ")");
-				}
-				for (int i = 0; i < previousCallHistory.size(); i++) {
-					if (!previousCallHistory.get(i).equals(
-							currentCallHistory.get(i))) {
-						throw new AssertionFailedError(
-								"method call did not match (" + i + " of "
-										+ currentCallHistory.size() + ")");
-					}
-				}
-			} else {
-				for (Iterator it = previousCallHistory.iterator(); it.hasNext();) {
-					MethodCall methodCall = (MethodCall) it.next();
-					if (!currentCallHistory.contains(methodCall)) {
-						throw new AssertionFailedError("missing method call:"
-								+ methodCall.method.getName());
-					}
-				}
-			}
-			reset();
-		}
-
-		public void reset() {
-			previousCallHistory = null;
-			currentCallHistory = new ArrayList();
-		}
-
-		public void setLastReturnValue(Object object) {
-			MethodCall methodCall = (MethodCall) currentCallHistory
-					.get(currentCallHistory.size() - 1);
-			methodCall.setReturnValue(object);
-		}
-	}
-
-	/**
-	 * Creates a mock object that neither looks at the order of method calls nor
-	 * at the arguments.
-	 * 
-	 * @param interfaceType
-	 * @return a mock object that checks for the order of method invocations but
-	 *         not for equality of method arguments
-	 */
-	public static Object createRelaxedMock(Class interfaceType) {
-		return createMock(interfaceType, false, indifferentEqualityComparator);
-	}
-
-	/**
-	 * Creates a mock object that does not look at the arguments, but checks
-	 * that the order of calls is as expected.
-	 * 
-	 * @param interfaceType
-	 * @return a mock object that checks for the order of method invocations but
-	 *         not for equality of method arguments
-	 */
-	public static Object createOrderedMock(Class interfaceType) {
-		return createMock(interfaceType, true, indifferentEqualityComparator);
-	}
-
-	/**
-	 * creates a fussy mock object
-	 * 
-	 * @param interfaceType
-	 * @return a mock object that checks for the order of method invocations and
-	 *         for equality of method arguments
-	 */
-	public static Object createMock(Class interfaceType) {
-		return createMock(interfaceType, true, defaultEqualityComparator);
-	}
-
-	/**
-	 * creates a fussy mock object with a comparator
-	 * 
-	 * @param interfaceType
-	 * @return a mock object that checks for the order of method invocations and
-	 *         uses the given comparator to compare method arguments
-	 */
-	public static Object createMock(Class interfaceType,
-			EqualityComparator equalityComparator) {
-		return createMock(interfaceType, true, equalityComparator);
-	}
-
-	private static Object createMock(Class interfaceType, boolean ordered,
-			EqualityComparator equalityComparator) {
-		if (!interfaceType.isInterface()) {
-			throw new IllegalArgumentException();
-		}
-		MockInvocationHandler mockInvocationHandler = new MockInvocationHandler(
-				ordered, equalityComparator);
-		Object newProxyInstance = Proxy.newProxyInstance(Mocks.class
-				.getClassLoader(), new Class[] { interfaceType, Mock.class },
-				mockInvocationHandler);
-		return newProxyInstance;
-	}
-
-	public static void startChecking(Object mock) {
-		getMockInvocationHandler(mock).replay();
-	}
-
-	public static void verify(Object mock) {
-		getMockInvocationHandler(mock).verify();
-	}
-
-	public static void reset(Object mock) {
-		getMockInvocationHandler(mock).reset();
-	}
-
-	private static MockInvocationHandler getMockInvocationHandler(Object mock) {
-		return ((Mock) mock).getMockInvocationHandler();
-	}
-
-	public static void setLastReturnValue(Object mock, Object object) {
-		getMockInvocationHandler(mock).setLastReturnValue(object);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.java
deleted file mode 100644
index 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/TweakletCheckTest.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/TweakletCheckTest.java
deleted file mode 100644
index edb895f..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/TweakletCheckTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.tests.harness.util;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * Tests to see if we're running with Tweaklets. If so, fail early so we don't
- * waste an entire morning trying to figure out why all of the part tests are
- * failing.
- * 
- * @since 3.4
- * 
- */
-public class TweakletCheckTest extends TestCase {
-
-	/**
-	 * 
-	 */
-	public TweakletCheckTest() {
-		setName("test for tweaklets");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#run(junit.framework.TestResult)
-	 */
-	public void run(TestResult result) {
-
-		result.startTest(this);
-		try {
-			IExtensionPoint point = Platform.getExtensionRegistry()
-
-			.getExtensionPoint("org.eclipse.ui.internalTweaklets");
-			boolean abort = point.getExtensions().length > 0;
-
-			if (abort) {
-				Error error = new Error(
-						"Tweaklets present in test setup - all test results are now suspect.  Please restart the tests with the tweaklet extensions removed.");
-				result.addError(this, error);
-				result.stop();
-			}
-		} finally {
-			result.endTest(this);
-		}
-
-	}
-
-	public static Test suite() {
-		TestSuite test = new TestSuite();
-		test.addTest(new TweakletCheckTest());
-		test.addTest(new TweakletCheckTest());
-		// should not run if there are tweaklets present - the first run should
-		// aggressively take down the framework.
-		return test;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java
deleted file mode 100644
index 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.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 854d3ee..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.1.0.qualifier
-Bundle-Activator: org.eclipse.ui.tests.performance.UIPerformancePlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.tests.harness,
- org.junit,
- org.eclipse.test.performance,
- org.eclipse.core.resources,
- org.eclipse.ui.tests.harness,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.ui.editors,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.views
-Eclipse-LazyStart: true
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/data/testContentType.zip b/tests/org.eclipse.ui.tests.performance/data/testContentType.zip
deleted file mode 100644
index 14e323b..0000000
--- a/tests/org.eclipse.ui.tests.performance/data/testContentType.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/anything.gif b/tests/org.eclipse.ui.tests.performance/icons/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/binary_co.gif b/tests/org.eclipse.ui.tests.performance/icons/binary_co.gif
deleted file mode 100644
index 23a508e..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/binary_co.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/dynamic.gif b/tests/org.eclipse.ui.tests.performance/icons/dynamic.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/dynamic.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/editor.gif b/tests/org.eclipse.ui.tests.performance/icons/editor.gif
deleted file mode 100644
index 9bd92bf..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/editor.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF89a

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

diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart1.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart1.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart1.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart2.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart2.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart2.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/view.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/view.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/view.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart1.gif b/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart1.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart1.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart2.gif b/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart2.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart2.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/view.gif b/tests/org.eclipse.ui.tests.performance/icons/view.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/view.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/plugin.xml b/tests/org.eclipse.ui.tests.performance/plugin.xml
deleted file mode 100644
index 0a69f05..0000000
--- a/tests/org.eclipse.ui.tests.performance/plugin.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-     
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            icon="icons/anything.gif"
-            class="org.eclipse.ui.tests.performance.parts.PerformanceEditorPart"
-            default="true"
-            name="Basic Performance Editor"
-            id="org.eclipse.ui.tests.perf_basic"
-            extensions="perf_basic"/>
-            
-      <editor
-            icon="icons/anything.gif"
-            class="org.eclipse.ui.tests.performance.parts.PerformanceEditorPart:outline"
-            default="true"
-            name="Editor w/Outline"
-            id="org.eclipse.ui.tests.perf_outline"
-            extensions="perf_outline"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.ui.tests.performance.PerformancePerspective1"
-            name="Performance Test Perspective1"
-            id="org.eclipse.ui.tests.performancePerspective1"/>
-      <perspective
-            class="org.eclipse.ui.tests.performance.PerformancePerspective2"
-            name="Performance Test Perspective"
-            id="org.eclipse.ui.tests.performancePerspective2"/>    
-       <perspective
-            name="UI Test Standalone View Perspective"
-            class="org.eclipse.ui.tests.performance.presentations.StandaloneViewPerspective"
-            id="org.eclipse.ui.tests.presentations.StandaloneViewPerspective">
-      </perspective>
-      <perspective
-            name="UI Test Standalone View Perspective  2 "
-            class="org.eclipse.ui.tests.performance.presentations.StandaloneViewPerspective2"
-            id="org.eclipse.ui.tests.presentations.StandaloneViewPerspective2">
-      </perspective>        
-   </extension>
-    <extension
-          point="org.eclipse.ui.views">
-       <view
-             icon="icons/anything.gif"
-             class="org.eclipse.ui.tests.performance.parts.PerformanceViewPart"
-             name="Basic Performance View"
-             id="org.eclipse.ui.tests.perf_basic"/>
-    </extension>
-   <!-- 
-   this content type was added to provide
-   "regression test" for bug 107121. See OpenNavigatorFolderTest
-   for more details. 
-   -->
-   <extension point="org.eclipse.core.runtime.contentTypes">
-   	<content-type 
-   		file-extensions="htmltestonly" 
-   		priority="high"
-   		name="Content Type for Test Only" 
-   		id="testOnlyContentType"
-   		base-type="org.eclipse.core.runtime.text">
-   		<describer
-   			class="org.eclipse.ui.tests.performance.ContentDescriberForTestsOnly" />
-   	</content-type>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            class="org.eclipse.ui.tests.performance.parts.PerformanceProblemsView"
-            id="org.eclipse.ui.tests.performance.problemsView"
-            name="Performance Problems View"/>
-   </extension>
-    
- 
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ComboViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ComboViewerRefreshTest.java
deleted file mode 100644
index 6b85bb2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ComboViewerRefreshTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * ComboViewerRefreshTest is a test of refreshes of difference size in the combo
- * viewer.
- */
-public class ComboViewerRefreshTest extends ViewerTest {
-
-	ComboViewer viewer;
-
-	private RefreshTestContentProvider contentProvider;
-
-	private static int ELEMENT_COUNT;
-
-	public ComboViewerRefreshTest(String testName, int tagging) {
-		super(testName, tagging);
-
-	}
-
-	public ComboViewerRefreshTest(String testName) {
-		super(testName);
-
-	}
-
-	protected StructuredViewer createViewer(Shell shell) {
-
-		viewer = new ComboViewer(shell);
-		contentProvider = new RefreshTestContentProvider(ELEMENT_COUNT);
-		viewer.setContentProvider(contentProvider);
-		viewer.setLabelProvider(getLabelProvider());
-		return viewer;
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefresh() throws Throwable {
-
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=98265>See Bug 98265</a> ");
-		ELEMENT_COUNT = 1000;
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefreshSmall() throws Throwable {
-
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=98265>See Bug 98265</a> ");
-
-		ELEMENT_COUNT = 50;
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				for (int i = 0; i < 1000; i++) {
-					viewer.refresh();
-				}
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(), JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTableViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTableViewerRefreshTest.java
deleted file mode 100644
index 017ff6a..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTableViewerRefreshTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class FastTableViewerRefreshTest extends TableViewerRefreshTest {
-
-	public FastTableViewerRefreshTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public FastTableViewerRefreshTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefreshMultiple() throws Throwable {
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				for (int i = 0; i < 10; i++) {
-					viewer.refresh();
-					processEvents();
-
-				}
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testUpdateMultiple() throws Throwable {
-		openBrowser();
-
-		exercise(
-				new TestRunnable() {
-					public void run() {
-						startMeasuring();
-						for (int i = 0; i < 10; i++) {
-							TableItem[] items = viewer.getTable().getItems();
-							for (int j = 0; j < items.length; j++) {
-								TableItem item = items[j];
-								Object element = RefreshTestContentProvider.allElements[j];
-								viewer.testUpdateItem(item, element);
-							}
-							processEvents();
-						}
-
-						stopMeasuring();
-
-					}
-				}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTreeTest.java
deleted file mode 100644
index 63e5636..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTreeTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class FastTreeTest extends TreeAddTest {
-
-
-	public FastTreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public FastTreeTest(String testName) {
-		super(testName);
-	}
-	
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddTenTenTimes() throws CoreException {
-
-		doTestAdd(10, TEST_COUNT, false);
-	}
-
-	
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddFiftyTenTimes() throws CoreException {
-
-		doTestAdd(50, TEST_COUNT, false);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddHundredTenTimes() throws CoreException {
-
-		tagIfNecessary("JFace - Add 10000 items 100 at a time TreeViewer 10 times",
-				Dimension.ELAPSED_PROCESS);
-		
-		doTestAdd(100, TEST_COUNT, false);
-	}
-
-	/**
-	 * Run the test for one of the fast insertions.
-	 * 
-	 * @param count
-	 * @throws CoreException
-	 */
-	protected void doTestAdd(final int increment, final int total,final boolean preSort)
-			throws CoreException {
-
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-
-				TestTreeElement input = new TestTreeElement(0, null);
-				viewer.setInput(input);
-				input.createChildren(total);
-				if (preSort)
-					viewer.getSorter().sort(viewer, input.children);
-				Collection batches = new ArrayList();
-				int blocks = input.children.length / increment;
-				for (int j = 0; j < blocks; j = j + increment) {
-					Object[] batch = new Object[increment];
-					System.arraycopy(input.children, j * increment, batch, 0,
-							increment);
-					batches.add(batch);
-				}
-				processEvents();
-				Object[] batchArray = batches.toArray();
-				startMeasuring();
-				for (int i = 0; i < 10; i++) {
-					viewer.remove(input.children);
-					for (int k = 0; k < batchArray.length; k++) {
-						viewer.add(input, (Object[]) batchArray[k]);
-						processEvents();
-					}
-				}
-				
-
-				stopMeasuring();
-
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
deleted file mode 100644
index 4dc7cf9..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.TestRunnable;
-import org.eclipse.ui.tests.performance.UIPerformancePlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * ComboViewerRefreshTest is a test of refreshes of difference size in the combo
- * viewer.
- */
-public class FileImageDescriptorTest extends BasicPerformanceTest {
-
-	protected static final String IMAGES_DIRECTORY = "/icons/imagetests";
-
-	public FileImageDescriptorTest(String testName, int tagging) {
-		super(testName, tagging);
-
-	}
-
-	public FileImageDescriptorTest(String testName) {
-		super(testName);
-
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefresh() throws Throwable {
-
-		exercise(new TestRunnable() {
-			public void run() {
-				Class missing = null;
-				ArrayList images = new ArrayList();
-
-				Bundle bundle = UIPerformancePlugin.getDefault().getBundle();
-				Enumeration bundleEntries = bundle
-						.getEntryPaths(IMAGES_DIRECTORY);
-
-				
-				while (bundleEntries.hasMoreElements()) {
-					ImageDescriptor descriptor;
-					String localImagePath = (String) bundleEntries
-							.nextElement();
-					
-					if(localImagePath.indexOf('.') < 0)
-						continue;
-					
-					URL[] files = FileLocator.findEntries(bundle, new Path(
-							localImagePath));
-
-					for (int i = 0; i < files.length; i++) {
-						
-						startMeasuring();
-
-						try {
-							descriptor = ImageDescriptor.createFromFile(missing,
-									FileLocator.toFileURL(files[i]).getFile());
-						} catch (IOException e) {
-							fail(e.getLocalizedMessage(),e);
-							continue;
-						}
-
-						for (int j = 0; j < 10; j++) {
-							Image image = descriptor.createImage();
-							images.add(image);							
-						}
-						
-						processEvents();
-						stopMeasuring();
-
-					}
-
-				}
-
-			
-				Iterator imageIterator = images.iterator();
-				while (imageIterator.hasNext()) {
-					((Image) imageIterator.next()).dispose();
-				}
-			}
-		}, 20, 100, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java
deleted file mode 100644
index 7896d33..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import 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 TreeAddTest("testAddThousand"));
-		addTest(new FastTreeTest("testAddHundredTenTimes", BasicPerformanceTest.LOCAL));
-		addTest(new TreeAddTest("testAddThousandPreSort", BasicPerformanceTest.GLOBAL));
-		addTest(new ProgressMonitorDialogPerformanceTest("testLongNames"));
-		addTest(new ShrinkingTreeTest("testTreeViewerRefresh"));
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListPopulationTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListPopulationTest.java
deleted file mode 100644
index 21da911..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListPopulationTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * The ListPopulationTest is the test for simple
- * SWT lists.
- *
- */
-public class ListPopulationTest extends BasicPerformanceTest {
-
-	List list;
-
-	public ListPopulationTest(String testName, int tagging) {
-		super(testName, tagging);		
-	}
-
-	public ListPopulationTest(String testName) {
-		super(testName);
-	}
-
-	protected void openBrowser() {
-		Display fDisplay = Display.getCurrent();
-		if (fDisplay == null) {
-			fDisplay = new Display();
-		}
-		Shell shell = new Shell(fDisplay);
-		shell.setSize(500, 500);
-		shell.setLayout(new FillLayout());
-		list = new List(shell,SWT.NONE);
-		shell.open();
-		// processEvents();
-	}
-	
-	public void testSmallAdd() throws Throwable {
-		addBench(100);
-	}
-	
-	public void testSmallSetItems() throws Throwable {
-		setItemsBench(100);
-	}
-	
-	public void testMediumAdd() throws Throwable {
-		addBench(5000);
-	}
-	
-	public void testMediumSetItems() throws Throwable {
-		setItemsBench(5000);
-	}
-	
-	public void testLargeAdd() throws Throwable {
-		addBench(50000);
-	}
-	
-	public void testLargeSetItems() throws Throwable {
-		setItemsBench(50000);
-	}
-	
-	/**
-	 * Test the time for adding elements using add.
-	 * @throws Throwable
-	 */
-	public void addBench(int count) throws Throwable {
-		openBrowser();		
-		final String [] items = getItems(count);
-        
-        exercise(new TestRunnable() {
-            public void run() {
-    			list.removeAll();
-    			startMeasuring();
-    			for (int j = 0; j < items.length; j++) {
-    				list.add(items[j]);
-    			}
-    			processEvents();
-    			stopMeasuring();
-    		}
-        });
-		
-		commitMeasurements();
-		assertPerformance();
-	}
-	
-	/**
-	 * Test the time for adding elements using setItem.
-	 * @throws Throwable
-	 */
-	public void setItemsBench(int count) throws Throwable {
-		openBrowser();		
-		final String [] items = getItems(count);
-        exercise(new TestRunnable() {
-            public void run() {
-    			list.removeAll();
-    			startMeasuring();
-    			list.setItems(items);
-    			processEvents();
-    			stopMeasuring();
-            }
-        });
-		
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Get count number of items.
-	 * @param count
-	 * @return
-	 */
-	private String[] getItems(int count) {
-		String[] items = new String[count];
-		for (int j = 0; j < items.length; j++) {
-			items[j] = "Element " + String.valueOf(j);
-			
-		}
-		return items;
-	}
-	
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListViewerRefreshTest.java
deleted file mode 100644
index 9006504..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListViewerRefreshTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * The ListViewerRefreshTest is a test of refreshing the list viewer.
- * 
- */
-public class ListViewerRefreshTest extends ViewerTest {
-
-	ListViewer viewer;
-
-	private RefreshTestContentProvider contentProvider;
-
-	public ListViewerRefreshTest(String testName, int tagging) {
-		super(testName, tagging);
-
-	}
-
-	public ListViewerRefreshTest(String testName) {
-		super(testName);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.performance.ViewerTest#createViewer(org.eclipse.swt.widgets.Shell)
-	 */
-	protected StructuredViewer createViewer(Shell shell) {
-		viewer = new ListViewer(shell);
-		contentProvider = new RefreshTestContentProvider(
-				RefreshTestContentProvider.ELEMENT_COUNT);
-		viewer.setContentProvider(contentProvider);
-		viewer.setLabelProvider(getLabelProvider());
-		return viewer;
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefresh() throws Throwable {
-
-		tagIfNecessary("JFace - Refresh 100 item ListViewer 10 times",
-				Dimension.ELAPSED_PROCESS);
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=99022>See Bug 99022</a> ");
-
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, ITERATIONS,
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ProgressMonitorDialogPerformanceTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ProgressMonitorDialogPerformanceTest.java
deleted file mode 100644
index 0145481..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ProgressMonitorDialogPerformanceTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * @since 3.3
- *
- */
-public class ProgressMonitorDialogPerformanceTest extends BasicPerformanceTest {
-
-	/**
-	 * @param testName
-	 */
-	public ProgressMonitorDialogPerformanceTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 * @param tagging
-	 */
-	public ProgressMonitorDialogPerformanceTest(String testName, int tagging) {
-		super(testName, tagging);
-		
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testLongNames() throws Throwable {
-
-		tagIfNecessary("JFace - 10000 element task name in progress dialog",
-				Dimension.ELAPSED_PROCESS);
-		
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		
-		ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell(display));
-
-		IRunnableWithProgress runnable = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) {
-				
-				char[] chars = new char[10000];
-				for (int i = 0; i < chars.length; i++) {
-					chars[i] = 'A';
-				}
-				
-				final String taskName = new String(chars);
-				final IProgressMonitor finalMonitor = monitor;
-				
-				try {
-					exercise(new TestRunnable() {
-						public void run() {
-							startMeasuring();
-							finalMonitor.setTaskName(taskName);
-							processEvents();
-							stopMeasuring();
-						}
-					}, ViewerTest.MIN_ITERATIONS, ViewerTest.ITERATIONS,
-							JFacePerformanceSuite.MAX_TIME);
-				} catch (CoreException e) {
-					fail(e.getMessage(), e);
-				}
-
-			
-
-			}
-		};
-
-		try {
-			dialog.run(false, true, runnable);
-		} catch (InvocationTargetException e) {
-			fail(e.getMessage(), e);
-		} catch (InterruptedException e) {
-			fail(e.getMessage(), e);
-		}
-		
-		commitMeasurements();
-		assertPerformance();
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestContentProvider.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestContentProvider.java
deleted file mode 100644
index 2c99804..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestContentProvider.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * The RefreshTestContentProvider is the content
- * provider for refresh tests.
- *
- */
-public class RefreshTestContentProvider implements IStructuredContentProvider {
-
-	static int seed = 1;
-	static TestElement[] allElements;
-	public static int ELEMENT_COUNT = 10000;
-	TestElement[] currentElements;
-	
-	static{
-		allElements = new TestElement[ELEMENT_COUNT];
-		for (int i = 0; i < ELEMENT_COUNT; i++) {
-			allElements[i] = new TestElement(i);			
-		}
-	}
-	
-	void preSortElements(Viewer viewer, ViewerSorter sorter){
-		sorter.sort(viewer,currentElements);
-		
-	}
-	
-	public RefreshTestContentProvider(int size){
-		Assert.isTrue(size <= ELEMENT_COUNT);
-		setSize(size);
-	}
-	
-	/**
-	 * Set the size of the amount we are currently displaying 
-	 * to size.
-	 * @param size
-	 */
-	public void setSize(int size) {
-		
-		currentElements = new TestElement[size];
-		for (int i = 0; i < currentElements.length; i++) {
-			currentElements[i] = allElements[i];
-		}
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		return currentElements;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		currentElements = null;
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		//Do nothing here
-	}
-
-	/**
-	 * Restore the elements to thier old poorly sorted
-	 * state.
-	 *
-	 */
-	public void refreshElements() {
-		for (int i = 0; i < ELEMENT_COUNT; i++) {
-			currentElements[i] = new TestElement(i + seed);			
-		}
-		seed += 257;
-		
-		
-	}
-	
-	public void cloneElements(){
-		currentElements = (TestElement [] )currentElements.clone();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestTreeContentProvider.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestTreeContentProvider.java
deleted file mode 100644
index cead70f..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestTreeContentProvider.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * The RefreshTestTreeContentProvider is the content provider for test trees.
- */
-public class RefreshTestTreeContentProvider implements ITreeContentProvider {
-
-    static TestTreeElement[] elements;
-    static {
-        elements = new TestTreeElement[RefreshTestContentProvider.ELEMENT_COUNT];
-        for (int i = 0; i < RefreshTestContentProvider.ELEMENT_COUNT; i++) {
-           elements[i] = (new TestTreeElement(i,null));
-            
-        }
-     
-    }
-
-    public RefreshTestTreeContentProvider() {
-        super();
-    }
-
-    public Object[] getChildren(Object parentElement) {
-       return ((TestTreeElement)parentElement).children;
-    }
-
-    public Object getParent(Object element) {
-        return ((TestTreeElement)element).parent;
-    }
-
-    public boolean hasChildren(Object element) {
-        return ((TestTreeElement)element).children.length > 0;
-    }
-
-    public Object[] getElements(Object inputElement) {
-       return elements;
-    }
-
-    public void dispose() {
-    }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/SWTTreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/SWTTreeTest.java
deleted file mode 100644
index d646ffe..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/SWTTreeTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class SWTTreeTest extends BasicPerformanceTest {
-
-	Shell browserShell;
-
-	Tree tree;
-
-	public SWTTreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public SWTTreeTest(String testName) {
-		super(testName);
-	}
-
-	protected void openBrowser() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		browserShell = new Shell(display);
-		browserShell.setSize(500, 500);
-		browserShell.setLayout(new FillLayout());
-		tree = new Tree(browserShell, SWT.NONE);
-		createChildren();
-		browserShell.open();
-		// processEvents();
-	}
-
-	private void createChildren() {
-		for (int i = 0; i < TreeAddTest.TEST_COUNT; i++) {
-			TreeItem item = new TreeItem(tree, SWT.NONE);
-			item.setText("Element " + String.valueOf(i));
-
-		}
-
-	}
-
-	/**
-	 * Test the getItems API.
-	 * 
-	 */
-	public void testGetItems() throws CoreException {
-		openBrowser();
-
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                startMeasuring();
-                for (int j = 0; j < TreeAddTest.TEST_COUNT; j++) {
-                    tree.getItems();
-                    processEvents();
-                }
-                stopMeasuring();
-            } 
-        });
-        
-		commitMeasurements();
-		assertPerformance();
-		browserShell.close();
-	}
-
-	/**
-	 * @throws CoreException 
-	 * Test the getItem API.
-	 * 
-	 */
-	public void testGetItemAt() throws CoreException {
-		openBrowser();
-
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                startMeasuring();
-                for (int j = 0; j < TreeAddTest.TEST_COUNT; j++) {
-                    tree.getItem(j);
-                    processEvents();
-                }
-                stopMeasuring();
-            } 
-        });
-
-		commitMeasurements();
-		assertPerformance();
-		browserShell.close();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ShrinkingTreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ShrinkingTreeTest.java
deleted file mode 100644
index 8bbe01b..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ShrinkingTreeTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * ShrinkingTreeTest is a test to see how long it takes to refresh a tree that goes
- * from a large item count to a smaller one.
- * @since 3.3
- *
- */
-public class ShrinkingTreeTest extends TreeTest {
-
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public ShrinkingTreeTest(String testName) {
-		super(testName);
-	}
-
-	public ShrinkingTreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public void testTreeViewerRefresh() throws CoreException {
-		
-		tagIfNecessary("JFace - Refresh from 1000 items to 100 items",
-				Dimension.ELAPSED_PROCESS);
-		
-		openBrowser();
-//		int smallCount = 1;
-//		for (int i = 0; i < 3; i++) {
-//
-//			int largeCount = smallCount * 10;
-//			for (int j = 0; j < 2; j++) {
-//				System.out.println("Small " + String.valueOf(smallCount)
-//						+ "Large " + String.valueOf(largeCount));
-				testRefresh(100, 1000);
-//				largeCount *= 10;
-//			}
-//			smallCount *= 10;
-//		}
-	}
-
-	/**
-	 * Run the test for one of the fast insertions.
-	 * 
-	 * @param count
-	 * @throws CoreException
-	 */
-	private void testRefresh(final int smallSize, final int largeSize)
-			throws CoreException {
-
-		exercise(new TestRunnable() {
-			public void run() {
-
-				TestTreeElement input = new TestTreeElement(0, null);
-				viewer.setInput(input);
-				input.createChildren(largeSize);
-
-				processEvents();
-				viewer.refresh();
-				viewer.expandAll();
-				input.createChildren(smallSize);
-				startMeasuring();
-				viewer.refresh();
-
-				stopMeasuring();
-
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-
-	}
-
-	
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TableViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TableViewerRefreshTest.java
deleted file mode 100644
index 73ef1e0..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TableViewerRefreshTest.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * The TableViewerRefreshTest is a test for refreshing the TableViewer.
- */
-public class TableViewerRefreshTest extends ViewerTest {
-
-	class TestTableViewer extends TableViewer {
-
-		public TestTableViewer(Composite parent, int style) {
-			super(parent, style);
-		}
-
-		public TestTableViewer(Composite parent) {
-			super(parent);
-		}
-
-		public TestTableViewer(Table table) {
-			super(table);
-		}
-
-		public void testUpdateItem(Widget widget, Object element) {
-			updateItem(widget, element);
-		}
-	}
-
-	TestTableViewer viewer;
-
-	private RefreshTestContentProvider contentProvider;
-
-	public TableViewerRefreshTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public TableViewerRefreshTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.performance.ViewerTest#createViewer(org.eclipse.swt.widgets.Shell)
-	 */
-	protected StructuredViewer createViewer(Shell shell) {
-		viewer = new TestTableViewer(shell);
-		contentProvider = new RefreshTestContentProvider(
-				RefreshTestContentProvider.ELEMENT_COUNT);
-		viewer.setContentProvider(contentProvider);
-		viewer.setLabelProvider(getLabelProvider());
-		return viewer;
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefresh() throws Throwable {
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefreshSorted() throws Throwable {
-		openBrowser();
-		viewer.setSorter(new ViewerSorter());
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefreshPreSorted() throws Throwable {
-		openBrowser();
-		final ViewerSorter sorter = new ViewerSorter();
-		viewer.setSorter(sorter);
-
-		exercise(new TestRunnable() {
-			public void run() {
-				contentProvider.refreshElements();
-				startMeasuring();
-				contentProvider.cloneElements();
-				contentProvider.preSortElements(viewer, sorter);
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, ITERATIONS,
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testUpdate() throws Throwable {
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-
-				TableItem[] items = viewer.getTable().getItems();
-				startMeasuring();
-				for (int j = 0; j < items.length; j++) {
-					TableItem item = items[j];
-					Object element = RefreshTestContentProvider.allElements[j];
-
-					viewer.testUpdateItem(item, element);
-
-				}
-				processEvents();
-				stopMeasuring();
-
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestElement.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestElement.java
deleted file mode 100644
index 4ebbb3f..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestElement.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-/**
- * The TestElement is the element used for testing
- * viewers.
- *
- */
-public class TestElement {
-	
-	String name;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 */
-	public TestElement() {
-		super();
-	}
-	
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param index
-	 */
-	public TestElement(int index) {
-		name = TestTreeElement.generateFirstEntry() + String.valueOf(index);
-	}
-
-	public String getText() {
-		return name;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestTreeElement.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestTreeElement.java
deleted file mode 100644
index faf7472..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestTreeElement.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-
-public class TestTreeElement extends TestElement {
-
-	TestTreeElement parent;
-
-	TestTreeElement[] children = new TestTreeElement[0];
-
-	private static int index = 0;
-
-	static String characters = "M1NqBwV2CeXrZ3LtKyJ4HuGiF5DoSpA6PaOsI7UdYfT8RgEhW9Qjk0DlWzMxUcsvfbwnm";
-
-	/**
-	 * Create a new instance of the receiver .
-	 * 
-	 * @param index
-	 * @param treeParent
-	 */
-	public TestTreeElement(int index, TestTreeElement treeParent) {
-		super();
-		this.parent = treeParent;
-		name = generateFirstEntry() + String.valueOf(index);
-	}
-
-	/**
-	 * Generate a random string.
-	 * 
-	 * @return String
-	 */
-	static String generateFirstEntry() {
-
-		String next = characters.substring(index);
-		index++;
-		if (index > characters.length() - 2)
-			index = 0;
-		return next;
-	}
-
-	/**
-	 * Create count number of children in the receiver.
-	 * 
-	 * @param count
-	 */
-	public void createChildren(int count) {
-		children = new TestTreeElement[count];
-		for (int i = 0; i < count; i++) {
-			children[i] = new TestTreeElement(i, this);
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeAddTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeAddTest.java
deleted file mode 100644
index 87f7ef2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeAddTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class TreeAddTest extends TreeTest {
-
-	static int TEST_COUNT = 1000;
-
-	public TreeAddTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public TreeAddTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddOneAtATime() {
-		openBrowser();
-
-		for (int i = 0; i < ITERATIONS / 10; i++) {
-			TestTreeElement input = new TestTreeElement(0, null);
-			viewer.setInput(input);
-			input.createChildren(TEST_COUNT);
-			processEvents();
-			startMeasuring();
-			for (int j = 0; j < input.children.length; j++) {
-
-				viewer.add(input, input.children[j]);
-				processEvents();
-
-			}
-			stopMeasuring();
-		}
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddTen() throws CoreException {
-
-		doTestAdd(10, TEST_COUNT, false);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddFifty() throws CoreException {
-
-		doTestAdd(50, TEST_COUNT, false);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddHundred() throws CoreException {
-
-		tagIfNecessary("JFace - Add 1000 items in 10 blocks to TreeViewer",
-				Dimension.ELAPSED_PROCESS);
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=101853>See Bug 101853</a> ");
-
-		doTestAdd(100, TEST_COUNT, false);
-	}
-
-	/**
-	 * Run the test for one of the fast insertions.
-	 * 
-	 * @param count
-	 * @throws CoreException
-	 */
-	protected void doTestAdd(final int increment, final int total,final boolean preSort)
-			throws CoreException {
-
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-
-				TestTreeElement input = new TestTreeElement(0, null);
-				viewer.setInput(input);
-				input.createChildren(total);
-				if (preSort)
-					viewer.getSorter().sort(viewer, input.children);
-				Collection batches = new ArrayList();
-				int blocks = input.children.length / increment;
-				for (int j = 0; j < blocks; j = j + increment) {
-					Object[] batch = new Object[increment];
-					System.arraycopy(input.children, j * increment, batch, 0,
-							increment);
-					batches.add(batch);
-				}
-				processEvents();
-				Object[] batchArray = batches.toArray();
-				startMeasuring();
-
-				// Measure more than one for the fast cases
-				for (int k = 0; k < batchArray.length; k++) {
-					viewer.add(input, (Object[]) batchArray[k]);
-					processEvents();
-				}
-
-				stopMeasuring();
-
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-
-	}
-
-	/**
-	 * Test addition to the tree.
-	 */
-	public void testAddThousand() throws CoreException {
-		doTestAdd(1000, 2000, false);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddTwoThousand() throws CoreException {
-
-		doTestAdd(2000, 4000, false);
-
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree with the items presorted.
-	 */
-	public void testAddHundredPreSort() throws CoreException {
-
-		doTestAdd(100, 1000, true);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree with the items presorted.
-	 */
-	public void testAddThousandPreSort() throws CoreException {
-		tagIfNecessary("JFace - Add 2000 items in 2 blocks to TreeViewer",
-				Dimension.ELAPSED_PROCESS);
-
-		doTestAdd(1000, 2000, true);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java
deleted file mode 100644
index ab62540..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.3
- *
- */
-public abstract class TreeTest extends ViewerTest {
-	
-
-
-	TreeViewer viewer;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 * @param tagging
-	 */
-	public TreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 */
-	public TreeTest(String testName) {
-		super(testName);
-	}
-
-
-	protected StructuredViewer createViewer(Shell shell) {
-		viewer = createTreeViewer(shell);
-		viewer.setContentProvider(getContentProvider());
-		viewer.setLabelProvider(getLabelProvider());
-		viewer.setSorter(new ViewerSorter());
-		viewer.setUseHashlookup(true);
-		return viewer;
-	}
-
-	/**
-	 * Create the tree viewer
-	 * @return
-	 */
-	protected TreeViewer createTreeViewer(Shell shell) {
-		return new TreeViewer(shell);
-	}
-
-	protected Object getInitialInput() {
-		return new TestTreeElement(0, null);
-	}
-
-	private IContentProvider getContentProvider() {
-		return new ITreeContentProvider() {
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-			 */
-			public Object[] getChildren(Object parentElement) {
-				TestTreeElement element = (TestTreeElement) parentElement;
-				return element.children;
-			}
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-			 */
-			public Object getParent(Object element) {
-				return ((TestTreeElement) element).parent;
-			}
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-			 */
-			public boolean hasChildren(Object element) {
-				return ((TestTreeElement) element).children.length > 0;
-			}
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return getChildren(inputElement);
-			}
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-				// Do nothing here
-			}
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-			 *      java.lang.Object, java.lang.Object)
-			 */
-			public void inputChanged(Viewer localViewer, Object oldInput,
-					Object newInput) {
-				// Do nothing here
-			}
-	
-		};
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeViewerRefreshTest.java
deleted file mode 100644
index b5ec976..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeViewerRefreshTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Shell;
-
-
-/**
- * The TreeViewerRefreshTest is the refresh test for 
- * tree viewers.
- *
- */
-public class TreeViewerRefreshTest extends ViewerTest {
-    
-    TreeViewer viewer;
-    private RefreshTestTreeContentProvider contentProvider;
-
-    public TreeViewerRefreshTest(String testName, int tagging) {
-        super(testName, tagging);
-    }
-
-    public TreeViewerRefreshTest(String testName) {
-        super(testName);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.tests.performance.ViewerTest#createViewer(org.eclipse.swt.widgets.Shell)
-     */
-    protected StructuredViewer createViewer(Shell shell) {
-        viewer = new TreeViewer(shell);
-        contentProvider = new RefreshTestTreeContentProvider();
-        viewer.setContentProvider(contentProvider);
-        viewer.setLabelProvider(getLabelProvider());
-        return viewer;
-    }
-
-    /**
-     * Test the time for doing a refresh.
-     * @throws Throwable
-     */
-    public void testRefresh() throws Throwable {
-        openBrowser();
-
-        for (int i = 0; i < ITERATIONS; i++) {
-            startMeasuring();
-            viewer.refresh();
-            processEvents();
-            stopMeasuring();
-        }
-        
-        commitMeasurements();
-        assertPerformance();
-    }
-    
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ViewerTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ViewerTest.java
deleted file mode 100644
index 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 5aaf68b..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorPerformanceSuite.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.1
- */
-public class EditorPerformanceSuite extends TestSuite {
-    
-    public static final String [] EDITOR_FILE_EXTENSIONS = {"perf_basic", "perf_outline", "java"};
-    public static final String [][] EDITOR_SWITCH_PAIRS = {
-        {"perf_outline", "java"},
-        {"perf_basic", "perf_outline"}};
-    
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new EditorPerformanceSuite();
-    }
-
-    public EditorPerformanceSuite() {
-        addOpenCloseScenarios();
-        addSwitchScenarios();
-        addOpenMultipleScenarios(true);
-        addOpenMultipleScenarios(false);
-    }
-
-    // Commented out: these tests don't seem to be working 
-//    /**
-//     * 
-//     * @since 3.1
-//     */
-//    private void addResizeScenarios() {
-//        for (int i = 0; i < EDITOR_FILE_EXTENSIONS.length; i++) {
-//            addTest(new ResizeTest(new EditorWidgetFactory("1." + EDITOR_FILE_EXTENSIONS[i])));            
-//        }               
-//    }
-
-    /**
-     * 
-     */
-    private void addSwitchScenarios() {
-        for (int i = 0; i < EDITOR_SWITCH_PAIRS.length; i++) {
-            addTest(new EditorSwitchTest(EDITOR_SWITCH_PAIRS[i]));            
-        }       
-    }
-
-    /**
-     * 
-     */
-    private void addOpenMultipleScenarios(boolean closeAll) {
-        for (int i = 0; i < EDITOR_FILE_EXTENSIONS.length; i++) {
-            addTest(new OpenMultipleEditorTest(EDITOR_FILE_EXTENSIONS[i], closeAll, BasicPerformanceTest.NONE));            
-        }
-    }
-
-    /**
-     * 
-     */
-    private void addOpenCloseScenarios() {
-        for (int i = 0; i < EDITOR_FILE_EXTENSIONS.length; i++) {
-            addTest(new OpenCloseEditorTest(EDITOR_FILE_EXTENSIONS[i], i == 3 ? BasicPerformanceTest.LOCAL : BasicPerformanceTest.NONE));            
-        }        
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorSwitchTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorSwitchTest.java
deleted file mode 100644
index 94a78c5..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorSwitchTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * Test editor switching.
- */
-public class EditorSwitchTest extends BasicPerformanceTest {
-
-	private String extension1;
-
-	private String extension2;
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param testName
-	 *            Test's name.
-	 */
-	public EditorSwitchTest(String[] pair) {
-		super("testEditorSwitch:" + pair[0] + "," + pair[1]);
-		extension1 = pair[0];
-		extension2 = pair[1];
-	}
-
-	/**
-	 * Test editor opening performance. This test always fails.
-	 */
-	protected void runTest() throws CoreException {
-
-		// Open both files outside the loop so as not to include
-		// the initial time to open, just switching.
-		IWorkbenchWindow window = openTestWindow(UIPerformanceTestSetup.PERSPECTIVE1);
-		final IWorkbenchPage activePage = window.getActivePage();
-		final IFile file1 = getProject().getFile("1." + extension1);
-		assertTrue(file1.exists());
-		final IFile file2 = getProject().getFile("1." + extension2);
-		assertTrue(file2.exists());
-		IDE.openEditor(activePage, file1, true);
-		IDE.openEditor(activePage, file2, true);
-		processEvents();
-        EditorTestHelper.calmDown(500, 30000, 500);
-        waitForBackgroundJobs();
-        
-		for (int j = 0; j < 100; j++) {
-
-			startMeasuring();
-			for (int i = 0; i < 12; i++) {
-                IDE.openEditor(activePage, file1, true);
-                processEvents();
-                IDE.openEditor(activePage, file2, true);
-                processEvents();
-			}
-			stopMeasuring();
-            EditorTestHelper.calmDown(500, 30000, 100);
-		}
-        
-		commitMeasurements();
-		assertPerformance();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorTestHelper.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorTestHelper.java
deleted file mode 100644
index ba27a2a..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorTestHelper.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-
-/**
- * @since 3.1
- */
-public class EditorTestHelper {
-
-	public static IEditorPart openInEditor(IFile file, boolean runEventLoop) throws PartInitException {
-		IEditorPart part= IDE.openEditor(getActivePage(), file);
-		if (runEventLoop)
-			runEventQueue(part);
-		return part;
-	}
-
-	public static IEditorPart openInEditor(IFile file, String editorId, boolean runEventLoop) throws PartInitException {
-		IEditorPart part= IDE.openEditor(getActivePage(), file, editorId);
-		if (runEventLoop)
-			runEventQueue(part);
-		return part;
-	}
-
-	public static IDocument getDocument(ITextEditor editor) {
-		IDocumentProvider provider= editor.getDocumentProvider();
-		IEditorInput input= editor.getEditorInput();
-		return provider.getDocument(input);
-	}
-
-	public static void revertEditor(ITextEditor editor, boolean runEventQueue) {
-		editor.doRevertToSaved();
-		if (runEventQueue)
-			runEventQueue(editor);
-	}
-	
-	public static void closeAllEditors() {
-		IWorkbenchPage page= getActivePage();
-		if (page != null)
-			page.closeAllEditors(false);
-	}
-	
-	public static void runEventQueue() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window != null)
-			runEventQueue(window.getShell());
-	}
-	
-	public static void runEventQueue(IWorkbenchPart part) {
-		runEventQueue(part.getSite().getShell());
-	}
-	
-	public static void runEventQueue(Shell shell) {
-		while (shell.getDisplay().readAndDispatch());
-	}
-	
-	public static void runEventQueue(long minTime) {
-		long nextCheck= System.currentTimeMillis() + minTime;
-		while (System.currentTimeMillis() < nextCheck) {
-			runEventQueue();
-			sleep(1);
-		}
-	}
-	
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-	}
-
-	public static IWorkbenchPage getActivePage() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		return window != null ? window.getActivePage() : null;
-	}
-
-	public static Display getActiveDisplay() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		return window != null ? window.getShell().getDisplay() : null;
-	}
-
-	public static boolean calmDown(long minTime, long maxTime, long intervalTime) {
-		long startTime= System.currentTimeMillis() + minTime;
-		runEventQueue();
-		while (System.currentTimeMillis() < startTime)
-			runEventQueue(intervalTime);
-		
-		long endTime= maxTime > 0 ? System.currentTimeMillis() + maxTime : Long.MAX_VALUE;
-		boolean calm= isCalm();
-		while (!calm && System.currentTimeMillis() < endTime) {
-			runEventQueue(intervalTime);
-			calm= isCalm();
-		}
-//		System.out.println("--------------------------------------------------");
-		return calm;
-	}
-
-	public static void sleep(int intervalTime) {
-		try {
-			Thread.sleep(intervalTime);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
-	public static boolean isCalm() {
-		IJobManager jobManager= Platform.getJobManager();
-		Job[] jobs= jobManager.find(null);
-		for (int i= 0; i < jobs.length; i++) {
-			Job job= jobs[i];
-			int state= job.getState();
-//			System.out.println(job.getName() + ": " + getStateName(state));
-			if (state == Job.RUNNING || state == Job.WAITING) {
-//				System.out.println();
-				return false;
-			}
-		}
-//		System.out.println();
-		return true;
-	}
-
-//	private static String getStateName(int state) {
-//		switch (state) {
-//			case Job.RUNNING: return "RUNNING";
-//			case Job.WAITING: return "WAITING";
-//			case Job.SLEEPING: return "SLEEPING";
-//			case Job.NONE: return "NONE";
-//			default: return "unknown " + state;
-//		}
-//	}
-
-	public static boolean showView(String viewId) throws PartInitException {
-		IWorkbenchPage activePage= getActivePage();
-		IViewReference view= activePage.findViewReference(viewId);
-		boolean notShown= view == null;
-		if (notShown)
-			activePage.showView(viewId);
-		return notShown;
-	}
-
-	public static boolean hideView(String viewId) {
-		IWorkbenchPage activePage= getActivePage();
-		IViewReference view= activePage.findViewReference(viewId);
-		boolean shown= view != null;
-		if (shown)
-			activePage.hideView(view);
-		return shown;
-	}
-
-	public static void bringToTop() {
-		getActiveWorkbenchWindow().getShell().forceActive();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java
deleted file mode 100644
index 83d48bf..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import org.eclipse.ui.activities.IActivityManager;
-
-/**
- * @since 3.1
- *
- */
-public class GenerateIdentifiersTest extends BasicPerformanceTest {
-
-    private int count;
-
-    public GenerateIdentifiersTest(int numberOfIdentifiers) {
-        super("Generate " + numberOfIdentifiers + " identifiers");
-        this.count = numberOfIdentifiers;
-    }
-    
-    protected void runTest() throws Throwable {       
-        final IActivityManager activityManager = fWorkbench.getActivitySupport().getActivityManager();
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                // construct the Identifiers to test
-                final String [] ids = new String[count];
-                for (int i = 0; i < ids.length; i++) {
-                    long timestamp = System.currentTimeMillis();
-                    ids[i] = "org.eclipse.jdt.ui/" + i + timestamp;
-                }
-                
-                startMeasuring();
-                for(int i = 0; i < ids.length; i++) {
-                    activityManager.getIdentifier(ids[i]);
-                }                
-                stopMeasuring();
-            } 
-        });
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/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 db914b0..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenClosePerspectiveTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import java.util.HashMap;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-
-/**
- * @since 3.1
- */
-public class OpenClosePerspectiveTest extends BasicPerformanceTest {
-
-    private String id;
-
-    /**
-     * @param tagging
-     * @param testName
-     */
-    public OpenClosePerspectiveTest(String id, int tagging) {
-        super("testOpenClosePerspectives:" + id, tagging);
-        this.id = id;
-    }
-    
-    protected void runTest() throws Throwable {
-        // Get the two perspectives to switch between.
-        final IPerspectiveRegistry registry = WorkbenchPlugin.getDefault()
-                .getPerspectiveRegistry();
-        final IPerspectiveDescriptor perspective1 = registry
-                .findPerspectiveWithId(id);
-
-        // Don't fail if we reference an unknown perspective ID. This can be
-        // a normal occurrance since the test suites reference JDT perspectives, which
-        // might not exist.
-        if (perspective1 == null) {
-            System.out.println("Unknown perspective id: " + id);
-            return;
-        }
-        
-        // create a nice clean window.
-        IWorkbenchWindow window = openTestWindow();          
-        final IWorkbenchPage activePage = window.getActivePage();
-        
-        //causes creation of all views 
-        activePage.setPerspective(perspective1);
-        IViewReference [] refs = activePage.getViewReferences();
-        //get the IDs now - after we close hte perspective the view refs will be partiall disposed and their IDs will be null
-        String [] ids = new String[refs.length];
-        for (int i = 0; i < refs.length; i++) {
-            ids[i] = refs[i].getId();
-        }
-        closePerspective(activePage);
-        //populate the empty perspective with all view that will be shown in the test view
-        for (int i = 0; i < ids.length; i++) {
-            activePage.showView(ids[i]);
-        }      
-
-        tagIfNecessary("UI - Open/Close " + perspective1.getLabel() + " Perspective", Dimension.ELAPSED_PROCESS);
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                EditorTestHelper.calmDown(500, 30000, 500);
-                
-                startMeasuring();
-                activePage.setPerspective(perspective1);
-                processEvents();      
-                closePerspective(activePage);
-                processEvents(); 
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance();
-    }
-
-    /**
-     * @param activePage
-     */
-    private void closePerspective(IWorkbenchPage activePage) {
-		IPerspectiveDescriptor persp = activePage.getPerspective();
-
-		ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		Command command = commandService
-				.getCommand("org.eclipse.ui.window.closePerspective");
-
-		HashMap parameters = new HashMap();
-		parameters.put("org.eclipse.ui.window.closePerspective.perspectiveId",
-				persp.getId());
-
-		ParameterizedCommand pCommand = ParameterizedCommand.generateCommand(
-				command, parameters);
-
-		IHandlerService handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		try {
-			handlerService.executeCommand(pCommand, null);
-		} catch (ExecutionException e1) {
-		} catch (NotDefinedException e1) {
-		} catch (NotEnabledException e1) {
-		} catch (NotHandledException e1) {
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java
deleted file mode 100644
index 7472211..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance;
-
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * Performance tests for showing views.
- * There are separate tests for showing a simple view (MockViewPart)
- * and a more complex view (Resource Navigator).
- * The views are shown in an empty perspective.
- */
-public class OpenCloseViewTest extends BasicPerformanceTest {
-
-    private String viewId;
-
-    public OpenCloseViewTest(String viewId, int tagging) {
-        super("showView:" + viewId, tagging);
-        this.viewId = viewId;
-    }
-
-    protected void runTest() throws Throwable {
-        IWorkbenchWindow window = openTestWindow();
-        final IWorkbenchPage page = window.getActivePage();
-        
-        // prime it
-        IViewPart view1 = page.showView(viewId);
-        page.hideView(view1);
-        waitForBackgroundJobs();
-        processEvents();
-        
-       	tagIfNecessary("UI - Open/Close " + view1.getTitle(), Dimension.ELAPSED_PROCESS);
-        	
-		for (int j = 0; j < 100; j++) {
-
-			startMeasuring();
-			for (int i = 0; i < 5; i++) {
-				IViewPart view = page.showView(viewId);
-				processEvents();
-
-				page.hideView(view);
-				processEvents();
-			}
-			stopMeasuring();
-		}
-
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseWindowTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseWindowTest.java
deleted file mode 100644
index dd0e251..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseWindowTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * @since 3.1
- */
-public class OpenCloseWindowTest extends BasicPerformanceTest {
-
-    private String id;
-
-    /**
-     * @param tagging
-     * @param testName
-     */
-    public OpenCloseWindowTest(String id, int tagging) {
-        super("testOpenCloseWindows:" + id, tagging);
-        this.id = id;
-    }
-    
-    protected void runTest() throws Throwable {
-    	
-    	tagIfNecessary("UI - Open/Close Window", Dimension.ELAPSED_PROCESS);
-        
-    	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=179725>See Bug 179725</a> ");
-
-    	exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                EditorTestHelper.calmDown(500, 30000, 500);
-                
-                startMeasuring();
-                IWorkbenchWindow window = openTestWindow(id);
-                processEvents();   
-                window.close();
-                processEvents(); 
-                stopMeasuring();
-            } 
-        });
-                
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenMultipleEditorTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenMultipleEditorTest.java
deleted file mode 100644
index a450866..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenMultipleEditorTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * @since 3.1
- */
-public class OpenMultipleEditorTest extends BasicPerformanceTest {
-
-    private String extension;
-    private boolean closeAll;
-
-    /**
-     * @param testName
-     */
-    public OpenMultipleEditorTest(String extension, boolean closeAll, int tagging) {
-        super ("testOpenMultipleEditors:" + extension + (closeAll ? "[closeAll]" : "[closeEach]"), tagging);
-        this.extension = extension;        
-        this.closeAll = closeAll;
-    }
-    
-    protected void runTest() throws Throwable {
-    	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=179578>See Bug 179578</a>");
-		IWorkbenchWindow window = openTestWindow(UIPerformanceTestSetup.PERSPECTIVE1);
-		IWorkbenchPage activePage = window.getActivePage();
-        
-        tagIfNecessary("UI - Open Multiple Editors",Dimension.ELAPSED_PROCESS);
-        
-        startMeasuring();      
-                
-        for (int i = 0; i < 100; i++) {
-            IFile file = getProject().getFile(i + "." + extension);
-            IDE.openEditor(activePage, file, true);
-            processEvents();
-        }
-        if (closeAll) {
-            activePage.closeAllEditors(false);
-        }
-        else {
-            IEditorPart [] parts = activePage.getEditors();
-            for (int i = 0; i < parts.length; i++) {
-                activePage.closeEditor(parts[i], false);
-            }
-        }
-        stopMeasuring();
-        commitMeasurements();
-        assertPerformance();        
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenNavigatorFolderTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenNavigatorFolderTest.java
deleted file mode 100644
index e371250..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenNavigatorFolderTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import junit.framework.Assert;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.navigator.ResourceNavigator;
-import org.osgi.framework.Bundle;
-
-/**
- * This class/test was originally written for WTP bug 106158, and adapted to a
- * generic "platform" test case, since some of the problem was due to bug
- * 107121
- * 
- * Thanks for Jeffrey Liu (jeffliu@ca.ibm.com) who wrote the test for WTP.
- * 
- * And, thanks to Eric Glass <ericglass@maximus.com> for opening bug 106158
- * (100% CPU for over 3 minutes opening a directory in the Navigator view with
- * over 2000 HTML files) https://bugs.eclipse.org/bugs/show_bug.cgi?id=106158
- * and for providing 2500 "generic" HTML files for the original test case in
- * WTP.
- * 
- * modified by David Williams for platform level test that does not depend on
- * WTP or, for that matter, any meaningful content type. The content type
- * assumed there is designed simply to "take a while" to complete, if asked
- * for its properties.
- * 
- * Note, since this test companion "ContentDescriberForTestsOnly", simply uses
- * "sleep" to simulate computations, it only effects Elapsed Time (not CPU
- * Time).
- * 
- */
-public class OpenNavigatorFolderTest extends PerformanceTestCase {
-	/*
-	 * performance testcase for bug 106158
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=106158
-	 */
-	public void testOpenNavigatorFolder() {
-		IProject project = createProject("testViewAndContentTypeProject");
-		Bundle bundle = Platform.getBundle("org.eclipse.ui.tests.performance");
-		URL url = bundle.getEntry("data/testContentType.zip");
-		ZipInputStream zis = null;
-		try {
-			zis = new ZipInputStream(url.openStream());
-			ZipEntry entry = zis.getNextEntry();
-			while (entry != null) {
-				ByteArrayOutputStream baos = new ByteArrayOutputStream();
-				try {
-					byte[] b = new byte[2048];
-					int read = zis.read(b);
-					while (read != -1) {
-						baos.write(b, 0, read);
-						read = zis.read(b);
-					}
-				}
-				catch (IOException e) {
-					Assert.fail(e.getMessage());
-				}
-				finally {
-					try {
-						baos.close();
-					}
-					catch (IOException e) {
-						Assert.fail(e.getMessage());
-					}
-				}
-				IFile file = project.getFile(entry.getName());
-				ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-				try {
-					if (!file.exists())
-						file.create(bais, true, new NullProgressMonitor());
-					else
-						file.setContents(bais, true, false, new NullProgressMonitor());
-				}
-				catch (CoreException e) {
-					Assert.fail(e.getMessage());
-				}
-				finally {
-					try {
-						bais.close();
-					}
-					catch (IOException e) {
-						Assert.fail(e.getMessage());
-					}
-				}
-				entry = zis.getNextEntry();
-			}
-		}
-		catch (IOException e) {
-			Assert.fail(e.getMessage());
-		}
-		finally {
-			try {
-				if (zis != null) {
-					zis.close();
-				}
-			}
-			catch (IOException e) {
-				Assert.fail(e.getMessage());
-			}
-		}
-		startMeasuring();
-		IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-		IViewPart view = null;
-		try {
-			view = activePage.showView("org.eclipse.ui.views.ResourceNavigator");
-		}
-		catch (PartInitException e) {
-			Assert.fail(e.getMessage());
-		}
-		ResourceNavigator navigatorView = null;
-		try {
-			navigatorView = (ResourceNavigator) view;
-		}
-		catch (ClassCastException e) {
-			Assert.fail(e.getMessage());
-		}
-		navigatorView.getTreeViewer().expandAll();
-		stopMeasuring();
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	private IProject createProject(String name) {
-		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-		if (!project.exists()) {
-			try {
-				project.create(new NullProgressMonitor());
-				project.open(new NullProgressMonitor());
-			}
-			catch (CoreException e) {
-				Assert.fail(e.getMessage());
-			}
-		}
-		return project;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective1.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective1.java
deleted file mode 100644
index 686c165..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective1.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class PerformancePerspective1 implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        layout.addView(IPageLayout.ID_OUTLINE, IPageLayout.RIGHT, .75f, IPageLayout.ID_EDITOR_AREA);
-        layout.addView(IPageLayout.ID_PROP_SHEET, IPageLayout.BOTTOM, .75f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective2.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective2.java
deleted file mode 100644
index c984367..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective2.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class PerformancePerspective2 implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-    	layout.setEditorAreaVisible(false);
-        layout.addView(IPageLayout.ID_TASK_LIST, IPageLayout.RIGHT, .75f, IPageLayout.ID_EDITOR_AREA);
-        layout.addView(IPageLayout.ID_OUTLINE, IPageLayout.BOTTOM, .75f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTestRunner.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTestRunner.java
deleted file mode 100644
index 64d9132..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTestRunner.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Runs a test specified by the org.eclipse.ui.performance.test property.  
- * This test is prepped via the UIPerformanceTestSetup test setup.
- * 
- * @since 3.1
- */
-public class PerformanceTestRunner extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new UIPerformanceTestSetup(new PerformanceTestRunner());
-    }
-
-    public PerformanceTestRunner() {
-        String className = System.getProperty("org.eclipse.ui.performance.test");
-        try {
-            Class clazz = Class.forName(className);
-            if (TestSuite.class.isAssignableFrom(clazz))
-                addTest((Test) clazz.newInstance());
-            else
-                addTestSuite(clazz);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTester.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTester.java
deleted file mode 100644
index 14ea021..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTester.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance;
-
-import junit.framework.TestCase;
-
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceMeter;
-
-/**
- * @since 3.1
- */
-final class PerformanceTester {
-
-	protected PerformanceMeter fPerformanceMeter;
-
-	/**
-	 * @param testCase
-	 */
-	public PerformanceTester(TestCase testCase) {
-		Performance performance= Performance.getDefault();
-		fPerformanceMeter= performance.createPerformanceMeter(performance.getDefaultScenarioId(testCase));
-	}
-
-	/**
-	 * Asserts default properties of the measurements captured for this test
-	 * case.
-	 * 
-	 * @throws RuntimeException if the properties do not hold
-	 */
-	public void assertPerformance() {
-		Performance.getDefault().assertPerformance(fPerformanceMeter);
-	}
-
-	/**
-	 * Asserts that the measurement specified by the given dimension is within a
-	 * certain range with respect to some reference value. If the specified
-	 * dimension isn't available, the call has no effect.
-	 * 
-	 * @param dim
-	 *            the Dimension to check
-	 * @param lowerPercentage
-	 *            a negative number indicating the percentage the measured value
-	 *            is allowed to be smaller than some reference value
-	 * @param upperPercentage
-	 *            a positive number indicating the percentage the measured value
-	 *            is allowed to be greater than some reference value
-	 * @throws RuntimeException
-	 *            if the properties do not hold
-	 */
-	public void assertPerformanceInRelativeBand(Dimension dim, int lowerPercentage, int upperPercentage) {
-		Performance.getDefault().assertPerformanceInRelativeBand(fPerformanceMeter, dim, lowerPercentage, upperPercentage);
-	}
-
-	public void commitMeasurements() {
-		fPerformanceMeter.commit();
-	}
-
-	public void dispose() {
-		fPerformanceMeter.dispose();
-	}
-
-	/**
-	 * Called from within a test case immediately before the code to measure is
-	 * run. It starts capturing of performance data. Must be followed by a call
-	 * to {@link PerformanceTestCase#stopMeasuring()}before subsequent calls to
-	 * this method or {@link PerformanceTestCase#commitMeasurements()}.
-	 */
-	public void startMeasuring() {
-		fPerformanceMeter.start();
-	}
-
-	public void stopMeasuring() {
-		fPerformanceMeter.stop();
-	}
-
-	/**
-	 * Mark the scenario of this test case to be included both into the global
-	 * and the local (component) performance summary. The summary shows the given dimension of the
-	 * scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descritive name of the scenario
-	 * @param dimension
-	 *            the dimension to show in the summary
-	 */
-	public void tagAsGlobalSummary(String shortName, Dimension dimension) {
-		Performance.getDefault().tagAsGlobalSummary(fPerformanceMeter, shortName, new Dimension[] { dimension });
-	}
-
-	/**
-	 * Mark the scenario represented by the given PerformanceMeter to be
-	 * included into the global and the local (component) performance summary. The summary shows the given
-	 * dimensions of the scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descritive name of the scenario
-	 * @param dimensions
-	 *            an array of dimensions to show in the summary
-	 */
-	public void tagAsGlobalSummary(String shortName, Dimension[] dimensions) {
-		Performance.getDefault().tagAsGlobalSummary(fPerformanceMeter, shortName, dimensions);
-	}
-
-	/**
-	 * Mark the scenario of this test case to be included into the local (component)
-	 * performance summary. The summary shows the given dimension of the
-	 * scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descriptive name of the scenario
-	 * @param dimension
-	 *            the dimension to show in the summary
-	 */
-	public void tagAsSummary(String shortName, Dimension dimension) {
-		Performance.getDefault().tagAsSummary(fPerformanceMeter, shortName, new Dimension[] { dimension });
-	}
-
-	/**
-	 * Mark the scenario represented by the given PerformanceMeter to be
-	 * included into the local (component) performance summary. The summary shows the given
-	 * dimensions of the scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descriptive name of the scenario
-	 * @param dimensions
-	 *            an array of dimensions to show in the summary
-	 */
-	public void tagAsSummary(String shortName, Dimension[] dimensions) {
-		Performance.getDefault().tagAsSummary(fPerformanceMeter, shortName, dimensions);
-	}
-
-	/**
-	 * Set a degradation comment for the current meter.
-	 * @param string
-	 */
-	public void setDegradationComment(String string) {
-		Performance.getDefault().setComment(
-				fPerformanceMeter, 
-				Performance.EXPLAINS_DEGRADATION_COMMENT, 
-				string);
-		
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerspectiveSwitchTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerspectiveSwitchTest.java
deleted file mode 100644
index 370779d..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerspectiveSwitchTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-
-/**
- * Test perspective switching.
- */
-public class PerspectiveSwitchTest extends BasicPerformanceTest {
-
-    private String id1;
-    private String id2;
-    private String activeEditor;
-
-    /**
-     * Constructor.
-     * 
-     * @param id
-     */
-    public PerspectiveSwitchTest(String [] ids, int tagging) {
-        super("testPerspectiveSwitch:" + ids[0] + "," + ids[1] + ",editor " + ids[2], tagging);
-        this.id1 = ids[0];
-        this.id2 = ids[1];
-        this.activeEditor = ids[2];
-    }
-	
-    /**
-     * Test perspective switching performance. 
-     */
-    protected void runTest() throws CoreException, WorkbenchException {
-    	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=179581>See Bug 179581</a>");
-        // Get the two perspectives to switch between.
-        final IPerspectiveRegistry registry = WorkbenchPlugin.getDefault()
-                .getPerspectiveRegistry();
-        final IPerspectiveDescriptor perspective1 = registry
-                .findPerspectiveWithId(id1);
-        final IPerspectiveDescriptor perspective2 = registry
-                .findPerspectiveWithId(id2);
-
-        // Don't fail if we reference an unknown perspective ID. This can be
-        // a normal occurrance since the test suites reference JDT perspectives, which
-        // might not exist. Just skip the test.
-        if (perspective1 == null) {
-            System.out.println("Unknown perspective ID: " + id1);
-            return;
-        }
-
-        if (perspective2 == null) {
-            System.out.println("Unknown perspective ID: " + id2);
-            return;
-        }
-        
-        // Open the two perspectives and the file, in a new window.
-        // Do this outside the loop so as not to include
-        // the initial time to open, just switching.        
-        IWorkbenchWindow window = openTestWindow(id1);
-        final IWorkbenchPage page = window.getActivePage();
-        assertNotNull(page);
-        page.setPerspective(perspective2);
-        
-        //IFile aFile = getProject().getFile("1." + EditorPerformanceSuite.EDITOR_FILE_EXTENSIONS[0]);
-        IFile aFile = getProject().getFile(activeEditor);
-        assertTrue(aFile.exists());
-
-        IDE.openEditor(page, aFile, true);
-
-       	tagIfNecessary("UI - Perspective Switch", Dimension.ELAPSED_PROCESS);
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                
-                startMeasuring();
-                page.setPerspective(perspective1);
-                processEvents();
-                page.setPerspective(perspective2);
-                processEvents();
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ProblemsViewPerformanceTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ProblemsViewPerformanceTest.java
deleted file mode 100644
index af0f638..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ProblemsViewPerformanceTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.tests.performance.parts.PerformanceProblemsView;
-import org.eclipse.ui.texteditor.MarkerUtilities;
-
-/**
- * The ProblemsViewPerformanceTest is a test of population of the problems view.
- * 
- * @since 3.2
- * 
- */
-public class ProblemsViewPerformanceTest extends BasicPerformanceTest {
-
-	private String EMPTY_PERSPECTIVE_ID = "org.eclipse.ui.tests.harness.util.EmptyPerspective";
-
-	private String PROBLEMS_VIEW_ID = "org.eclipse.ui.tests.performance.problemsView";
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public ProblemsViewPerformanceTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Test the population of the problems view.
-	 */
-	public void testPopulation() {
-		IWorkbenchWindow window = openTestWindow(EMPTY_PERSPECTIVE_ID);
-		final IWorkbenchPage page = window.getActivePage();
-
-		PerformanceProblemsView view;
-
-		try {
-			view = (PerformanceProblemsView) page.showView(PROBLEMS_VIEW_ID);
-		} catch (PartInitException e) {
-			e.printStackTrace();
-			fail();
-			return;
-		}
-
-		tagIfNecessary("UI - Problems View population",
-				Dimension.ELAPSED_PROCESS);
-
-		for (int i = 0; i < 100; i++) {
-			createMarkers();
-			processEvents();
-			startMeasuring();
-			while (view.getTreeWidget().getItemCount() == 0)
-				processEvents();
-			stopMeasuring();
-			removeMarkers();
-			while (view.getTreeWidget().getItemCount() > 0)
-				processEvents();
-		}
-		commitMeasurements();
-		assertPerformance();
-
-	}
-
-	/**
-	 * Remove the created markers
-	 */
-	private void removeMarkers() {
-
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IMarker[] markers = root.findMarkers(IMarker.PROBLEM, false,
-					IResource.DEPTH_ZERO);
-
-			for (int i = 0; i < markers.length; i++) {
-				String message = (String) markers[i]
-						.getAttribute(IMarker.MESSAGE);
-
-				if (message != null && message.startsWith("this is a test")) {
-					markers[i].delete();
-				}
-			}
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-
-	}
-
-	/**
-	 * Create the markers for the receiver.
-	 */
-	private void createMarkers() {
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			Map attribs = new HashMap();
-			for (int i = 0; i < 1000; i++) {
-				attribs.put(IMarker.SEVERITY, new Integer(
-						IMarker.SEVERITY_ERROR));
-				attribs.put(IMarker.MESSAGE, "this is a test " + i);
-				MarkerUtilities.createMarker(root, attribs, IMarker.PROBLEM);
-			}
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java
deleted file mode 100644
index b1b9cf3..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.tests.harness.util.FileTool;
-
-public class ResourceTestHelper {
-
-	public static void replicate(String src, String destPrefix, String destSuffix, int n) throws CoreException {
-		for (int i= 0; i < n; i++)
-			copy(src, destPrefix + i + destSuffix);
-	}
-
-	public static void copy(String src, String dest) throws CoreException {
-		IFile file= getRoot().getFile(new Path(src));
-		file.copy(new Path(dest), true, null);
-	}
-
-	public static void delete(String file) throws CoreException {
-		getRoot().getFile(new Path(file)).delete(true, null);
-	}
-
-	public static IFile findFile(String path) {
-		return getRoot().getFile(new Path(path));
-	}
-
-	public static IFile[] findFiles(String prefix, String suffix, int i, int n) {
-		IWorkspaceRoot root= getRoot();
-		List files= new ArrayList(n - i);
-		for (int j= i; j < i + n; j++) {
-			String path= root.getLocation().toString() + "/" + prefix + j + suffix;
-			files.add(findFile(path));
-		}
-		return (IFile[]) files.toArray(new IFile[files.size()]);
-	}
-
-	public static StringBuffer read(String src) throws IOException, CoreException {
-		return FileTool.read(new InputStreamReader(getRoot().getFile(new Path(src)).getContents()));
-	}
-
-	public static void write(String dest, final String content) throws IOException, CoreException {
-		InputStream stream= new InputStream() {
-			private Reader fReader= new StringReader(content);
-			public int read() throws IOException {
-				return fReader.read();
-			}
-		};
-		getRoot().getFile(new Path(dest)).create(stream, true, null);
-	}
-	
-
-	public static void replicate(String src, String destPrefix, String destSuffix, int n, String srcName, String destNamePrefix) throws IOException, CoreException {
-		
-		StringBuffer s= read(src);
-		
-		List positions= identifierPositions(s, srcName);
-		
-		for (int j= 0; j < n; j++) {
-			StringBuffer c= new StringBuffer(s.toString());
-			replacePositions(c, srcName.length(), destNamePrefix + j, positions);
-			write(destPrefix + j + destSuffix, c.toString());
-		}
-	}
-
-	public static void copy(String src, String dest, String srcName, String destName) throws IOException, CoreException {
-		StringBuffer buf= read(src);
-		List positions= identifierPositions(buf, srcName);
-		replacePositions(buf, srcName.length(), destName, positions);
-		write(dest, buf.toString());
-	}
-
-	private static void replacePositions(StringBuffer c, int origLength, String string, List positions) {
-		int offset= 0;
-		for (Iterator iter= positions.iterator(); iter.hasNext();) {
-			int position= ((Integer) iter.next()).intValue();
-			c.replace(offset + position, offset + position + origLength, string);
-			offset += string.length() - origLength;
-		}
-	}
-
-	private static List identifierPositions(StringBuffer buffer, String identifier) {
-		List positions= new ArrayList();
-		int i= -1;
-		while (true) {
-			i= buffer.indexOf(identifier, i + 1);
-			if (i == -1)
-				break;
-			if (i > 0 && Character.isJavaIdentifierPart(buffer.charAt(i - 1)))
-				continue;
-			if (i < buffer.length() - 1 && Character.isJavaIdentifierPart(buffer.charAt(i + identifier.length())))
-				continue;
-			positions.add(new Integer(i));
-		}
-		return positions;
-	}
-
-	private static IWorkspaceRoot getRoot() {
-		return ResourcesPlugin.getWorkspace().getRoot();
-	}
-
-	public static boolean enableAutoBuilding() {
-		IWorkspaceDescription description= ResourcesPlugin.getWorkspace().getDescription();
-		boolean wasOff= !description.isAutoBuilding();
-		if (wasOff)
-			description.setAutoBuilding(true);
-		return wasOff;
-	}
-
-	public static void incrementalBuild() throws CoreException {
-		ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
-	}
-
-	public static void fullBuild() throws CoreException {
-		ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null);
-	}
-
-	public static boolean disableAutoBuilding() {
-		IWorkspaceDescription description= ResourcesPlugin.getWorkspace().getDescription();
-		boolean wasOn= description.isAutoBuilding();
-		if (wasOn)
-			description.setAutoBuilding(false);
-		return wasOn;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/TestRunnable.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/TestRunnable.java
deleted file mode 100644
index a677bca..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/TestRunnable.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance;
-
-public abstract class TestRunnable {
-    public abstract void run() throws Exception;
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformancePlugin.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformancePlugin.java
deleted file mode 100644
index 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 82da2fd..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 PROJECT_EXPLORER = "org.eclipse.ui.navigator.ProjectExplorer";
-
-	public static final String BASIC_PATH = "org.eclipse.ui";
-
-	public static final String VIEWS_PATTERN = "org.eclipse.ui.views";
-
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static Test suite() {
-		return new ViewPerformanceSuite();
-	}
-
-	/**
-	 * 
-	 */
-	public ViewPerformanceSuite() {
-		addOpenCloseTests();
-		addResizeTests();
-		addTestSuite(OpenNavigatorFolderTest.class);
-	}
-
-	/**
-	 * 
-	 */
-	private void addOpenCloseTests() {
-		String[] ids = getAllTestableViewIds();
-
-		for (int i = 0; i < ids.length; i++) {
-			String id = ids[i];
-
-			addTest(new OpenCloseViewTest(id,
-					id.equals(PROJECT_EXPLORER) ? BasicPerformanceTest.GLOBAL
-							: BasicPerformanceTest.NONE));
-		}
-	}
-
-	private void addResizeTests() {
-		String[] ids = getAllTestableViewIds();
-
-		for (int i = 0; i < ids.length; i++) {
-			String id = ids[i];
-
-			addTest(new ResizeTest(new ViewWidgetFactory(id)));
-		}
-
-	}
-
-	public static String[] getAllTestableViewIds() {
-		HashSet result = new HashSet();
-
-		IViewDescriptor[] descriptors = 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
-							|| descriptor.getId().equals(PROJECT_EXPLORER)) {
-						result.add(descriptor.getId());
-					}
-				}
-			}
-
-		}
-
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/WorkbenchPerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/WorkbenchPerformanceSuite.java
deleted file mode 100644
index d4ab9f6..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, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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], 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 e180108..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTestSuite.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.performance.presentations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.presentations.PresentationFactoryUtil;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.tests.performance.layout.PresentationWidgetFactory;
-import org.eclipse.ui.tests.performance.layout.ResizeTest;
-
-/**
- * @since 3.1
- */
-public class PresentationPerformanceTestSuite extends TestSuite {
-
-    
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new PresentationPerformanceTestSuite();
-    }
-    
-    /**
-     * 
-     */
-    public PresentationPerformanceTestSuite() {        
-        String[] ids = getPresentationIds();
-        
-        for (int i = 0; i < ids.length; i++) {
-            String string = ids[i];
-            
-            addTests(string);
-        }
-    }
-
-    private void addTests(String presentationId) {
-        AbstractPresentationFactory factory = WorkbenchPlugin.getDefault().getPresentationFactory(presentationId);
-
-        addTest(new PresentationInactivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 5));
-        addTest(new PresentationInactivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_VIEW, 5));
-        
-        addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 5, false));
-        addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_VIEW, 5, false));
-        addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_STANDALONE, 1, false));
-        if(presentationId.equals(IWorkbenchConstants.DEFAULT_PRESENTATION_ID))
-        	addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1, true));
-        else
-        	addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1, false));
-
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 100, "large folder creation"));
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_VIEW, 100, "large folder creation"));
-        
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 5));
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_VIEW, 5));
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_STANDALONE, 1));
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1));
-        
-        addTest(new PresentationSelectTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 100));
-        addTest(new PresentationSelectTest(factory, PresentationFactoryUtil.ROLE_VIEW, 100));
-        
-        addTest(new PresentationActivateTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 5));
-        addTest(new PresentationActivateTest(factory, PresentationFactoryUtil.ROLE_VIEW, 5));
-        addTest(new PresentationActivateTest(factory, PresentationFactoryUtil.ROLE_STANDALONE, 1));
-        addTest(new PresentationActivateTest(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1));
-        
-        addTest(new ResizeTest(new PresentationWidgetFactory(factory, PresentationFactoryUtil.ROLE_EDITOR, 5)));
-        addTest(new ResizeTest(new PresentationWidgetFactory(factory, PresentationFactoryUtil.ROLE_VIEW, 5)));
-        addTest(new ResizeTest(new PresentationWidgetFactory(factory, PresentationFactoryUtil.ROLE_STANDALONE, 1)));
-        addTest(new ResizeTest(new PresentationWidgetFactory(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1)));
-        
-    }
-    
-    private static String[] getPresentationIds() {
-        return listIds(IWorkbenchRegistryConstants.PL_PRESENTATION_FACTORIES,
-                "factory");
-    }
-    
-    private static String[] listIds(String extensionPointId, String elementName) {
-        
-        List result = new ArrayList();
-        
-        IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
-                .getExtensionPoint(WorkbenchPlugin.PI_WORKBENCH, extensionPointId);
-        if (extensionPoint == null) {
-            WorkbenchPlugin
-                    .log("Unable to find extension. Extension point: " + extensionPointId + " not found"); //$NON-NLS-1$ //$NON-NLS-2$
-            return null;
-        }
-        
-        // Loop through the config elements.
-        IConfigurationElement[] elements = extensionPoint
-                .getConfigurationElements();
-        for (int j = 0; j < elements.length; j++) {
-            IConfigurationElement element = elements[j];
-            if (elementName == null || elementName.equals(element.getName())) {
-                String strID = element.getAttribute("id"); //$NON-NLS-1$
-                if (strID != null) {
-                    result.add(strID);
-                }
-            }
-        }
-        
-        return (String[]) result.toArray(new String[result.size()]);
-    }    
-    
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationSelectTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationSelectTest.java
deleted file mode 100644
index bdbc112..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationSelectTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance.presentations;
-
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.tests.performance.TestRunnable;
-import org.eclipse.ui.tests.performance.layout.PresentationWidgetFactory;
-
-public class PresentationSelectTest extends PresentationPerformanceTest {
-    
-    private int type;
-    private int number;
-    private AbstractPresentationFactory factory;
-    
-    public PresentationSelectTest(AbstractPresentationFactory factory, int type, int number) {
-        super(PresentationWidgetFactory.describePresentation(factory, type) + " selection change");
-        this.type = type;
-        this.number = number;
-        this.factory = factory;
-    }
-    
-    protected void runTest() throws Throwable {
-        final PresentationTestbed testbed = createPresentation(factory, type, number);
-        
-        final IPresentablePart[] parts = testbed.getPartList();
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                
-                startMeasuring();
-                
-                for (int i = 0; i < parts.length; i++) {
-                    IPresentablePart part = parts[i];
-                    
-                    testbed.setSelection(part);
-                    processEvents();
-                }
-                
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance(); 
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationTestbed.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationTestbed.java
deleted file mode 100644
index 4724bf0..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationTestbed.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chris Gross chris.gross@us.ibm.com Bug 107443
- *******************************************************************************/
-package org.eclipse.ui.tests.performance.presentations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.ui.ISizeProvider;
-import org.eclipse.ui.internal.DefaultStackPresentationSite;
-import org.eclipse.ui.internal.presentations.PresentationFactoryUtil;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackPresentation;
-
-public class PresentationTestbed {
-    
-    private StackPresentation presentation;
-    private List partList = new ArrayList();
-    private IPresentablePart selectedPart;
-    private Composite control;
-    
-    private DefaultStackPresentationSite site = new DefaultStackPresentationSite() {
-        public void close(IPresentablePart[] toClose) {}
-        public void flushLayout() {}
-        public IPresentablePart[] getPartList() {
-            return (IPresentablePart[]) partList.toArray(new IPresentablePart[partList.size()]);
-        }
-        public IPresentablePart getSelectedPart() {
-            return selectedPart;
-        }
-        public boolean isPartMoveable(IPresentablePart toMove) {
-            return true;
-        }
-        public boolean isStackMoveable() {
-            return true;
-        }
-        /* (non-Javadoc)
-         * @see org.eclipse.ui.presentations.IStackPresentationSite#getProperty(java.lang.String)
-         */
-        public String getProperty(String id) {
-        	return null;
-        }
-    };
-    
-    public PresentationTestbed(Composite parentComposite, AbstractPresentationFactory factory, int type) {
-        presentation = PresentationFactoryUtil.createPresentation(factory, type, parentComposite, site, null, null);
-        site.setPresentation(presentation);
-        control = new Composite(parentComposite, SWT.NONE);
-        control.addControlListener(new ControlListener() {
-            public void controlMoved(ControlEvent e) {
-                updatePresentationBounds();
-            }
-            public void controlResized(ControlEvent e) {
-                updatePresentationBounds();
-            }
-        });
-        
-        control.addDisposeListener(new DisposeListener() {
-            public void widgetDisposed(DisposeEvent e) {
-                site.dispose();
-            } 
-        });
-        
-        control.setLayout(new Layout() {
-            protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
-                int widthHint = wHint == SWT.DEFAULT ? ISizeProvider.INFINITE : wHint;
-                int heightHint = hHint == SWT.DEFAULT ? ISizeProvider.INFINITE : hHint;
-                
-                int width = 200;
-                int height = 200;
-                StackPresentation presentation = site.getPresentation();
-                if (presentation != null) {
-                    width = presentation.computePreferredSize(true, widthHint, heightHint, widthHint);
-                    height = presentation.computePreferredSize(false, heightHint, widthHint, heightHint);
-                }
-                
-                if (width == ISizeProvider.INFINITE) {
-                    width = 200;
-                }
-
-                if (height == ISizeProvider.INFINITE) {
-                    height = 200;
-                }
-                
-                return new Point(width, height);
-            }
-           
-            protected void layout(Composite composite, boolean flushCache) {
-            }
-        });
-        
-        control.setVisible(false);
-        site.setActive(StackPresentation.AS_ACTIVE_FOCUS);
-        site.setState(IStackPresentationSite.STATE_RESTORED);
-    }
-    
-    public Control getControl() {
-        return control;
-    }
-    
-    public void add(IPresentablePart part) {
-        partList.add(part);
-        site.getPresentation().addPart(part, null);
-    }
-    
-    public void remove(IPresentablePart part) {
-        Assert.assertTrue(part != selectedPart);
-        partList.remove(part);
-        site.getPresentation().removePart(part);
-    }
-    
-    public void setSelection(IPresentablePart newSelection) {
-        Assert.assertTrue(partList.contains(newSelection));
-        
-        selectedPart = newSelection;
-        if (selectedPart != null) {
-            site.selectPart(newSelection);
-        }
-    }
-    
-    public void setState(int newState) {
-        site.setPresentationState(newState);
-    }
-    
-    public void setActive(int activeState) {
-        site.setActive(activeState);
-    }
-    
-    public IPresentablePart[] getPartList() {
-        return (IPresentablePart[]) partList.toArray(new IPresentablePart[partList.size()]);
-    }
-    
-    private void updatePresentationBounds() {
-        StackPresentation presentation = site.getPresentation();
-        if (presentation != null) {
-            presentation.setBounds(control.getBounds());
-        }
-    }
-    
-    public IPresentablePart getSelection() {
-        return selectedPart;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective.java
deleted file mode 100644
index ad825c5..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance.presentations;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class StandaloneViewPerspective implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        // One standalone view (bookmarks) with trim
-        layout.addStandaloneView(IPageLayout.ID_BOOKMARKS, true, 
-                IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        // One standalone view (problems) without trim
-        layout.addStandaloneView(IPageLayout.ID_PROBLEM_VIEW, false, 
-                IPageLayout.RIGHT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        // One regular view (outline)
-        layout.addView(IPageLayout.ID_OUTLINE, IPageLayout.BOTTOM, 0.5f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective2.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective2.java
deleted file mode 100644
index 4a873e2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective2.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance.presentations;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class StandaloneViewPerspective2 implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        // One standalone view (bookmarks) without trim
-        layout.addStandaloneView(IPageLayout.ID_BOOKMARKS, false, 
-                IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        // One standalone view (problems) without trim
-        layout.addStandaloneView(IPageLayout.ID_PROBLEM_VIEW, false, 
-                IPageLayout.RIGHT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        // One regular view (outline)
-        layout.addStandaloneView(IPageLayout.ID_OUTLINE, false, IPageLayout.BOTTOM, 0.5f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/TestPresentablePart.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/TestPresentablePart.java
deleted file mode 100644
index ba85490..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/TestPresentablePart.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.performance.presentations;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-public class TestPresentablePart implements IPresentablePart {
-
-    private List listeners = new ArrayList();
-    
-    private Composite control;
-    private String name = "";
-    private String title = "";
-    private String status = "";
-    private Image image;
-    private String tooltip = "";
-    private boolean dirty;
-    private ToolBar toolbar;
-    
-    public TestPresentablePart(Composite parent, Image image) {
-        control = new Composite(parent, SWT.NONE);
-        control.addDisposeListener(new DisposeListener() {
-            public void widgetDisposed(DisposeEvent e) {
-                disposed();
-            } 
-        });
-        
-        // Add some items to the toolbar
-        toolbar = new ToolBar(parent, SWT.WRAP);
-        for (int idx = 0; idx < 6; idx++) {
-            ToolItem item = new ToolItem(toolbar, SWT.PUSH);
-            item.setImage(image);
-        }
-        this.image = image;
-    }
-    
-    // Set methods called from presentation (all ignored)
-    public void setBounds(Rectangle bounds) {
-        control.setBounds(bounds);
-    }
-    
-    public void setVisible(boolean isVisible) {
-        control.setVisible(isVisible);
-        toolbar.setVisible(isVisible);
-    }
-    
-    public void setFocus() {
-        control.setFocus();
-    }
-
-    public void addPropertyListener(IPropertyListener listener) {
-        listeners.add(listener);
-    }
-
-    public void removePropertyListener(IPropertyListener listener) {
-        listeners.remove(listener);
-    }
-
-    private void firePropertyChange(int propertyId) {
-        for (int i = 0; i < listeners.size(); i++) {
-            ((IPropertyListener) listeners.get(i)).propertyChanged(this,
-                    propertyId);
-        }
-    }
-    
-    public String getName() {
-        return name;
-    }
-
-    public String getTitle() {
-        return title;
-    }
-
-    public String getTitleStatus() {
-        return status;
-    }
-
-    public Image getTitleImage() {
-        return image;
-    }
-
-    public String getTitleToolTip() {
-        return tooltip;
-    }
-
-    public boolean isDirty() {
-        return dirty;
-    }
-
-    public boolean isBusy() {
-        return false;
-    }
-
-    public boolean isCloseable() {
-        return true;
-    }
-
-    public Control getToolBar() {
-        return toolbar;
-    }
-
-    public IPartMenu getMenu() {
-        return null;
-    }
-
-    public Control getControl() {
-        return control;
-    }
-
-    public void disposed() {
-        toolbar.dispose();
-        toolbar = null;
-    }
-    
-    public void setTitle(String title) {
-        this.title = title;
-        firePropertyChange(IPresentablePart.PROP_TITLE);
-    }
-    
-    public void setName(String name) {
-        this.name = name;
-        firePropertyChange(IPresentablePart.PROP_PART_NAME);
-    }
-    
-    public void setImage(Image newImage) {
-        this.image = newImage;
-        firePropertyChange(IPresentablePart.PROP_TITLE);
-    }
-    
-    public void setContentDescription(String descr) {
-        this.status = descr;
-        firePropertyChange(IPresentablePart.PROP_CONTENT_DESCRIPTION);
-    }
-    
-    public void setTooltip(String tooltip) {
-        this.tooltip = tooltip;
-        firePropertyChange(IPresentablePart.PROP_TITLE);
-    }
-    
-    public void setDirty(boolean dirty) {
-        this.dirty = dirty;
-        firePropertyChange(IPresentablePart.PROP_DIRTY);
-    }
-
-    public ToolItem addToToolbar(Image toAdd) {
-        ToolItem item = new ToolItem(toolbar, SWT.PUSH);
-        item.setImage(toAdd);
-        firePropertyChange(IPresentablePart.PROP_TOOLBAR);
-        return item;
-    }
-    
-    public void removeFromToolbar(ToolItem toRemove) {
-        toRemove.dispose();
-        firePropertyChange(IPresentablePart.PROP_TOOLBAR);
-    }
-
-    private ListenerList partPropertyListeners = new ListenerList();
-    
-    private Map partProperties = new HashMap();
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.IPresentablePart#addPartPropertyListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPartPropertyListener(IPropertyChangeListener listener) {
-		partPropertyListeners.add(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.IPresentablePart#getPartProperty(java.lang.String)
-	 */
-	public String getPartProperty(String key) {
-		return (String) partProperties.get(key);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.IPresentablePart#removePartPropertyListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePartPropertyListener(IPropertyChangeListener listener) {
-		partPropertyListeners.remove(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISizeProvider#computePreferredSize(boolean, int, int, int)
-	 */
-	public int computePreferredSize(boolean width, int availableParallel,
-			int availablePerpendicular, int preferredResult) {
-		return preferredResult;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISizeProvider#getSizeFlags(boolean)
-	 */
-	public int getSizeFlags(boolean width) {
-		return 0;
-	}
-    
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/test_ideas.txt b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/test_ideas.txt
deleted file mode 100644
index 22f8fe7..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/test_ideas.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-- Startup time/memory use
-- About
-    - open about then open configuration details then close
-- Workbench [resize Workbench Shell] [switch active part leak check] [stress test switch active part perf.][popup menu open]
-    - with a set of empty views and editors in standard layout
-    - with an editor with a menu entry/a toolbar entry and a view with a simple menu and toolbar
-- Editor [open/close] [zoom/unzoom] [split/unsplit] [stress test open 100 w/o close] [close 100 editors] [minimize/mazimize]
-	- empty
-	- editor with key/context support
-	- multi-page editor
-	- editor that provides a content outline
-	- editor that provides a property sheet
-	- editor that contributes heavily to menus
-	- editor that contributes heavily to toolbars
-	- change icon/title frequently
-	- with lots of popup menu contributions
-- View [open/close] [zoom/unzoom] [detached/re-attach] [make fastview/restore] [minimize/mazimize] [popup menu open]
-	- empty
-	- view with local toolbar
-	- with with view menu
-	- table viewer (TableView)
-	- view that indicates progress when in forground and background
-	- view with content message (see Problems view)
-	- change icon/title frequently
-    - with lots of popup menu contributions
-- Intro [close/open] [standby/non-standby]
-    - basic intro		
-- Perspective [open/close] [stress test open 10 w/o close] [open in new window] [switch pespective]
-	- empty
-	- complex layout
-- Themes [switching theme]
-	- two themes that support the default workbench presentation items
-
--	Shutdown
--	Action Factory (brings in all classes)
--	Leak tests
--	Selection listeners
--	Decorators
--	GDI resources
--	Thread count
--	Overhead of progress support/progress monitor/view
--	Layout
diff --git a/tests/org.eclipse.ui.tests.performance/test.xml b/tests/org.eclipse.ui.tests.performance/test.xml
deleted file mode 100644
index 7178600..0000000
--- a/tests/org.eclipse.ui.tests.performance/test.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="runtests" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}\..\.."/>
-
-  <!-- sets the properties eclipse-home, and library-file -->
-  <property name="plugin-name" value="org.eclipse.ui.tests.performance"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-	<!--default target that does nothing.  The performance target is called explicitly
-	by build team.-->
-  <target name="runtests"/>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the performance test suites. -->
-  <target name="performance" depends="init,performance-suite,jface-performance-suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-  
-  <target name="performance-suite">
-  	<property name="performance-workspace" value="${eclipse-home}/performance-workspace-platform-ui"/>
-    <delete dir="${performance-workspace}" quiet="true"/>
-  	<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${performance-workspace}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" value="org.eclipse.ui.tests.performance.UIPerformanceTestSuite"/>
-    </ant>
-  </target>
-
-	<target name="jface-performance-suite">
-	  	<property name="performance-workspace-jface" value="${eclipse-home}/performance-workspace-platform-jface"/>
-	    <delete dir="${performance-workspace-jface}" quiet="true"/>
-	  	<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-	      <property name="data-dir" value="${performance-workspace-jface}"/>
-	      <property name="plugin-name" value="${plugin-name}"/>
-	      <property name="classname" value="org.eclipse.jface.tests.performance.JFacePerformanceSuite"/>
-	    </ant>
-	  </target>
-	
-</project>
diff --git a/tests/org.eclipse.ui.tests.rcp/.classpath b/tests/org.eclipse.ui.tests.rcp/.classpath
deleted file mode 100644
index 1f84474..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse RCP Tests"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests.rcp/.cvsignore b/tests/org.eclipse.ui.tests.rcp/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/tests/org.eclipse.ui.tests.rcp/.project b/tests/org.eclipse.ui.tests.rcp/.project
deleted file mode 100644
index 7f8ff02..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.rcp</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.ui</project>
-		<project>org.junit</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 81b36c6..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Fri Mar 03 16:43:22 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b29eacb..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 09:00:08 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/ActionBarConfigurerTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/ActionBarConfigurerTest.java
deleted file mode 100644
index 4d1fcc4..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/ActionBarConfigurerTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class ActionBarConfigurerTest extends TestCase {
-
-    public ActionBarConfigurerTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-        super.tearDown();
-    }
-
-    public void testDefaults() {
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-
-            public void fillActionBars(IWorkbenchWindow window,
-                    IActionBarConfigurer actionBarConfig, int flags) {
-                super.fillActionBars(window, actionBarConfig, flags);
-
-                assertNotNull(actionBarConfig.getMenuManager());
-                assertNotNull(actionBarConfig.getStatusLineManager());
-                assertNotNull(actionBarConfig.getCoolBarManager());
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/IWorkbenchPageTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/IWorkbenchPageTest.java
deleted file mode 100644
index 189680c..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/IWorkbenchPageTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.EmptyView;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-/**
- * Tests the behaviour of various IWorkbenchPage methods under different
- * workbench configurations.
- */
-public class IWorkbenchPageTest extends TestCase {
-
-    public IWorkbenchPageTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    /**
-     * Regression test for Bug 70080 [RCP] Reset Perspective does not work if no
-     * perspective toolbar shown (RCP).
-     */
-    public void test70080() {
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-
-            public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
-                super.preWindowOpen(configurer);
-                configurer.setShowPerspectiveBar(false);
-            }
-
-            public void postStartup() {
-                try {
-                    IWorkbenchWindow window = getWorkbenchConfigurer()
-                            .getWorkbench().getActiveWorkbenchWindow();
-                    IWorkbenchPage page = window.getActivePage();
-                    page.showView(EmptyView.ID);
-                    assertNotNull(page.findView(EmptyView.ID));
-                    page.resetPerspective();
-                    assertNull(page.findView(EmptyView.ID));
-                } catch (PartInitException e) {
-                    fail(e.toString());
-                }
-            }
-        };
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/PlatformUITest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/PlatformUITest.java
deleted file mode 100644
index 29e3527..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/PlatformUITest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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.RCPTestWorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class PlatformUITest extends TestCase {
-
-    public PlatformUITest(String testName) {
-        super(testName);
-    }
-
-    /** Make sure workbench is not returned before it is running. */
-    public void testEarlyGetWorkbench() {
-        assertFalse(PlatformUI.isWorkbenchRunning());
-        try {
-            PlatformUI.getWorkbench();
-            fail("Exception should have been thrown."); //$NON-NLS-1$
-        } catch (IllegalStateException e) {
-            // do nothing
-        }
-    }
-
-    public void testCreateDisplay() {
-        Display disp = PlatformUI.createDisplay();
-        assertNotNull(disp);
-        assertFalse(disp.isDisposed());
-        disp.dispose();
-        assertTrue(disp.isDisposed());
-    }
-
-    public void testCreateAndRunWorkbench() {
-        final Display display = PlatformUI.createDisplay();
-        assertNotNull(display);
-
-        CheckForWorkbench wa = new CheckForWorkbench(2);
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-        assertTrue(wa.checkComplete);
-        display.dispose();
-        assertTrue(display.isDisposed());
-    }
-    
-    /**
-     * Tests that, if an exception occurs on startup, the workbench returns RETURN_UNSTARTABLE 
-     * and PlatformUI.isWorkbenchRunning() returns false. 
-     * Regression test for bug 82286.
-     */
-    public void testCreateAndRunWorkbenchWithExceptionOnStartup() {
-        final Display display = PlatformUI.createDisplay();
-        assertNotNull(display);
-
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-            public void preStartup() {
-                throw new IllegalArgumentException("Thrown deliberately by PlatformUITest");
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_UNSTARTABLE, code);
-        assertFalse(PlatformUI.isWorkbenchRunning());
-        display.dispose();
-        assertTrue(display.isDisposed());
-    }
-    
-    public void testStartupThreading() {
-		assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.asyncDuringStartup);
-
-		assertEquals(
-				"Async run during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.FALSE,
-				RCPTestWorkbenchAdvisor.asyncDuringStartup);
-	}
-    // the following four methods test the various combinations of Thread +
-	// DisplayAccess + a/sync exec. Anything without a call to DisplayAccess
-	// should be deferred until after startup.
-    public void testDisplayAccess_sync() {
-    	assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.syncWithDisplayAccess);
-
-		assertEquals(
-				"Sync from qualified thread did not run during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.TRUE,
-				RCPTestWorkbenchAdvisor.syncWithDisplayAccess);
-    }
-    
-    public void testDisplayAccess_async() {    
-    	assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.asyncWithDisplayAccess);
-    	
-    	assertEquals(
-				"Async from qualified thread did not run during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.TRUE,
-				RCPTestWorkbenchAdvisor.asyncWithDisplayAccess);
-    }
-    
-    public void testWithoutDisplayAccess_sync() {
-    	assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.syncWithoutDisplayAccess);
-    	
-		assertEquals(
-				"Sync from un-qualified thread ran during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.FALSE,
-				RCPTestWorkbenchAdvisor.syncWithoutDisplayAccess);
-    }
-    
-    public void testWithoutDisplayAccess_async() { 
-       	assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.asyncWithoutDisplayAccess);
-       	
-       	assertEquals(
-				"Async from un-qualified thread ran during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.FALSE,
-				RCPTestWorkbenchAdvisor.asyncWithoutDisplayAccess);
-    }
-    
-    public void testDisplayAccessInUIThreadAllowed() {
-		assertFalse(
-				"DisplayAccess.accessDisplayDuringStartup() in UI thread did not result in exception.",
-				RCPTestWorkbenchAdvisor.displayAccessInUIThreadAllowed);
-	}
-}
-
-class CheckForWorkbench extends WorkbenchAdvisorObserver {
-
-    public boolean checkComplete = false;
-
-    public CheckForWorkbench(int idleBeforeExit) {
-        super(idleBeforeExit);
-    }
-
-    public void eventLoopIdle(Display display) {
-        super.eventLoopIdle(display);
-
-        if (checkComplete)
-            return;
-
-        Assert.assertNotNull(PlatformUI.getWorkbench());
-        checkComplete = true;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/RcpTestSuite.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/RcpTestSuite.java
deleted file mode 100644
index 4a68702..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/RcpTestSuite.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * The test suite for the RCP APIs in the generic workbench.
- * To run, use a headless JUnit Plug-in Test launcher, configured
- * to have [No Application] as its application. 
- */
-public class RcpTestSuite extends TestSuite {
-
-    /** Returns the suite. This is required to use the JUnit Launcher. */
-    public static Test suite() {
-        return new RcpTestSuite();
-    }
-
-    public RcpTestSuite() {
-        addTest(new TestSuite(PlatformUITest.class));
-        addTest(new TestSuite(WorkbenchAdvisorTest.class));
-        addTest(new TestSuite(WorkbenchConfigurerTest.class));
-        addTest(new TestSuite(WorkbenchWindowConfigurerTest.class));
-        addTest(new TestSuite(ActionBarConfigurerTest.class));
-        addTest(new TestSuite(IWorkbenchPageTest.class));
-        addTest(new TestSuite(WorkbenchSaveRestoreStateTest.class));
-        addTest(new TestSuite(WorkbenchListenerTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchAdvisorTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchAdvisorTest.java
deleted file mode 100644
index 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 faa6900..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchConfigurerTest.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.tests.rcp.util.RCPTestWorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class WorkbenchConfigurerTest extends TestCase {
-
-    public WorkbenchConfigurerTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    public void testDefaults() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-
-            private IWorkbenchConfigurer configurer;
-
-            public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                configurer = c;
-
-                assertNotNull(c.getWorkbench());
-                assertFalse(c.getSaveAndRestore());
-                assertNotNull(c.getWorkbenchWindowManager());
-            }
-
-            public void postShutdown() {
-                super.postShutdown();
-
-                // *** This should be checked on all of the advisor callbacks
-                //     but assume that if its still set in the last one, then it
-                //     must have been set for all of them.
-                assertFalse(configurer.emergencyClosing());
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-
-    public void testEmergencyClose() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(2) {
-
-            private IWorkbenchConfigurer configurer;
-
-            public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                configurer = c;
-
-                assertNotNull(c.getWorkbench());
-                assertFalse(c.getSaveAndRestore());
-                assertNotNull(c.getWorkbenchWindowManager());
-            }
-
-            // emergencyClose as soon as possible
-            public void eventLoopIdle(Display disp) {
-                super.eventLoopIdle(disp);
-                configurer.emergencyClose();
-            }
-
-            public void postShutdown() {
-                super.postShutdown();
-
-                // *** This should be checked on all of the advisor callbacks
-                //     but assume that if its still set in the last one, then it
-                //     must have been set for all of them.
-                assertTrue(configurer.emergencyClosing());
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_EMERGENCY_CLOSE, code);
-    }
-    
-
-	// tests to ensure that all WorkbenchAdvisor API is called from the UI thread.
-	public void testThreading() {
-		final ArrayList results = new ArrayList();
-		
-		WorkbenchAdvisor advisor = new RCPTestWorkbenchAdvisor(1) {
-
-			public void createWindowContents(
-					IWorkbenchWindowConfigurer configurer, Shell shell) {
-				ensureThread();
-				super.createWindowContents(configurer, shell);
-			}
-
-			private void ensureThread() {
-				if (Display.getCurrent() != null)
-					return; 
-				
-				Exception e = new Exception();
-				e.fillInStackTrace();
-				results.add(e);
-			}
-
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-					IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				return super.createWorkbenchWindowAdvisor(configurer);
-			}
-
-			public void eventLoopException(Throwable exception) {
-				ensureThread();
-				super.eventLoopException(exception);
-			}
-
-			public void eventLoopIdle(Display display) {
-				ensureThread();
-				super.eventLoopIdle(display);
-			}
-
-			public void fillActionBars(IWorkbenchWindow window,
-					IActionBarConfigurer configurer, int flags) {
-				ensureThread();
-				super.fillActionBars(window, configurer, flags);
-			}
-
-			public IAdaptable getDefaultPageInput() {
-				ensureThread();
-				return super.getDefaultPageInput();
-			}
-
-			public String getMainPreferencePageId() {
-				ensureThread();
-				return super.getMainPreferencePageId();
-			}
-
-			protected IWorkbenchConfigurer getWorkbenchConfigurer() {
-				ensureThread();
-				return super.getWorkbenchConfigurer();
-			}
-
-			public void initialize(IWorkbenchConfigurer configurer) {
-				ensureThread();
-				super.initialize(configurer);
-			}
-
-			public boolean isApplicationMenu(
-					IWorkbenchWindowConfigurer configurer, String menuId) {
-				ensureThread();
-				return super.isApplicationMenu(configurer, menuId);
-			}
-
-			public void openIntro(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.openIntro(configurer);
-			}
-
-			public boolean openWindows() {
-				ensureThread();
-				return super.openWindows();
-			}
-
-			public void postShutdown() {
-				ensureThread();
-				super.postShutdown();
-			}
-
-			public void postStartup() {
-				ensureThread();
-				super.postStartup();
-			}
-
-			public void postWindowClose(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.postWindowClose(configurer);
-			}
-
-			public void postWindowCreate(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.postWindowCreate(configurer);
-			}
-
-			public void postWindowOpen(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.postWindowOpen(configurer);
-			}
-
-			public void postWindowRestore(IWorkbenchWindowConfigurer configurer)
-					throws WorkbenchException {
-				ensureThread();
-				super.postWindowRestore(configurer);
-			}
-
-			public boolean preShutdown() {
-				ensureThread();
-				return super.preShutdown();
-			}
-
-			public void preStartup() {
-				ensureThread();
-				super.preStartup();
-			}
-
-			public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.preWindowOpen(configurer);
-			}
-
-			public boolean preWindowShellClose(
-					IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				return super.preWindowShellClose(configurer);
-			}
-
-			public IStatus restoreState(IMemento memento) {
-				ensureThread();
-				return super.restoreState(memento);
-			}
-
-			public IStatus saveState(IMemento memento) {
-				ensureThread();
-				return super.saveState(memento);
-			}
-
-			public String getInitialWindowPerspectiveId() {
-				//ensureThread();
-				return null;
-			}};
-			
-		int code = PlatformUI.createAndRunWorkbench(display, advisor);
-		assertEquals(PlatformUI.RETURN_OK, code);
-		
-		if (!results.isEmpty()) {
-			StringBuffer buffer = new StringBuffer("Advisor methods called from non-UI threads:\n");
-			int count=0;
-			for (Iterator i = results.iterator(); i.hasNext();) {
-				Exception e = (Exception) i.next();
-				StackTraceElement [] stack = e.getStackTrace();
-				buffer.append("Failure ").append(++count).append('\n');
-				for (int j = 1; j < Math.min(stack.length, 10); j++) {
-					StackTraceElement stackTraceElement = stack[j];
-					buffer.append(stackTraceElement.getClassName()).append('.')
-							.append(stackTraceElement.getMethodName()).append(
-									":").append(
-									stackTraceElement.getLineNumber()).append(
-									'\n');
-				}
-			}
-			fail(buffer.toString());
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchListenerTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchListenerTest.java
deleted file mode 100644
index 6181328..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchListenerTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchListener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-/**
- * Tests for IWorkbenchListener API and implementation.
- */
-public class WorkbenchListenerTest extends TestCase {
-
-    public WorkbenchListenerTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    /**
-     * Brings the workbench up and tries to shut it down twice, the first time with a veto
-     * from the IWorkbenchListener.  Tests for the correct sequence of notifications.
-     */
-    public void testPreAndPostShutdown() {
-    	final boolean[] proceed = new boolean[1];
-    	final List operations = new ArrayList();
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-        	public void postStartup() {
-        		IWorkbench workbench = getWorkbenchConfigurer().getWorkbench();
-        		workbench.addWorkbenchListener(new IWorkbenchListener() {
-					public boolean preShutdown(IWorkbench workbench, boolean forced) {
-						operations.add(PRE_SHUTDOWN);
-						return proceed[0];
-					}
-					public void postShutdown(IWorkbench workbench) {
-						operations.add(POST_SHUTDOWN);
-					}
-				});
-        		proceed[0] = false;
-        		assertEquals(false, workbench.close());
-        		proceed[0] = true;
-        		assertEquals(true, workbench.close());
-        	}
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-
-        assertEquals(3, operations.size());
-        assertEquals(WorkbenchAdvisorObserver.PRE_SHUTDOWN, operations.get(0));
-        assertEquals(WorkbenchAdvisorObserver.PRE_SHUTDOWN, operations.get(1));
-        assertEquals(WorkbenchAdvisorObserver.POST_SHUTDOWN, operations.get(2));
-    }
-
-    
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchSaveRestoreStateTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchSaveRestoreStateTest.java
deleted file mode 100644
index 4a8904e..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchSaveRestoreStateTest.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.internal.UIPlugin;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class WorkbenchSaveRestoreStateTest extends TestCase {
-	
-	private static final String ADVISOR_STATE_KEY = "advisorStateKey";
-	private static final String WINDOW_ADVISOR_STATE_KEY = "windowAdvisorStateKey";
-	private static final String ACTIONBAR_ADVISOR_STATE_KEY = "actionBarAdvisorStateKey";
-	
-    public WorkbenchSaveRestoreStateTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-		display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-	/**
-	 * Test save/restore state lifecycle API for WorkbenchAdvisor
-	 */
-	public void testSaveRestoreAdvisorState() {		
-		final String advisorStateData = Long.toString(System.currentTimeMillis());
-		
-		// launch workbench and save some state data
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-		
-			public IStatus saveState (IMemento memento) {
-				assertNotNull(memento);
-				memento.putString(ADVISOR_STATE_KEY, advisorStateData);
-				return super.saveState(memento);
-			}
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-		// restore the workbench and check for state data
-        display = PlatformUI.createDisplay();		
-		WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-
-			public IStatus restoreState(IMemento memento) {
-				assertNotNull(memento);
-				String stateData = memento.getString(ADVISOR_STATE_KEY);
-				assertNotNull(stateData);
-				assertTrue(advisorStateData.equals(stateData));
-				return super.restoreState(memento);
-			}
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-	}
-	
-	/**
-	 * Test save/restore state lifecycle API for WorkbenchWindowAdvisor
-	 */
-	public void testSaveRestoreWindowState() {
-		final String advisorStateData = Long.toString(System.currentTimeMillis());
-		
-		// launch workbench and save some state data
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-			
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public IStatus saveState(IMemento memento) {
-						assertNotNull(memento);
-						memento.putString(WINDOW_ADVISOR_STATE_KEY, advisorStateData);
-						return super.saveState(memento);
-					}
-				};
-			}
-
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-		// restore the workbench and check for state data
-        display = PlatformUI.createDisplay();		
-		WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public IStatus restoreState(IMemento memento) {
-						assertNotNull(memento);
-						String stateData = memento.getString(WINDOW_ADVISOR_STATE_KEY);
-						assertNotNull(stateData);
-						assertTrue(advisorStateData.equals(stateData));
-						return super.restoreState(memento);
-					}
-				};
-			}
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-	}
-	
-	/**
-	 * Test save/restore state lifecycle API for WorkbenchWindowAdvisor
-	 */
-	public void testSaveRestoreActionBarState() {
-		final String advisorStateData = Long.toString(System.currentTimeMillis());
-		
-		// launch workbench and save some state data
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-			
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer1) {
-						return new ActionBarAdvisor(configurer1) {
-							public IStatus saveState(IMemento memento) {
-								assertNotNull(memento);
-								memento.putString(ACTIONBAR_ADVISOR_STATE_KEY, advisorStateData);
-								return super.saveState(memento);
-							}
-						};
-					}
-				};
-			}
-
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-		// restore the workbench and check for state data
-        display = PlatformUI.createDisplay();		
-		WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer1) {
-						return new ActionBarAdvisor(configurer1) {
-							public IStatus restoreState(IMemento memento) {
-								assertNotNull(memento);
-								String stateData = memento.getString(ACTIONBAR_ADVISOR_STATE_KEY);
-								assertNotNull(stateData);
-								assertTrue(advisorStateData.equals(stateData));
-								return super.restoreState(memento);
-							}
-						};
-					}
-				};
-			}
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-	}
-	
-	/**
-	 * Test on-demand save/restore state API 
-	 */
-	public void testOnDemandSaveRestoreState() {
-		
-		// save some window state on demand
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-			
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public void postWindowOpen() {
-						File stateLocation = getStateFileLocation();
-						ensureDirectoryExists(stateLocation);
-						String stateFileName = stateLocation.getPath() + File.separator + "testOnDemandSaveRestoreState.xml";
-							
-					    OutputStreamWriter writer = null;
-				        try {
-				            writer = new OutputStreamWriter(new FileOutputStream(stateFileName),"UTF-8");
-				            
-				        } catch (UnsupportedEncodingException e1) {
-				            // not possible, UTF-8 is required to be implemented by all JVMs
-				        } catch (FileNotFoundException e1) {
-				            // creating a new file, won't happen  unless the path eclipse 
-							// specifies is totally wrong, or its read-only
-				        }
-							
-				        XMLMemento xmlm = XMLMemento.createWriteRoot("TestState");
-						saveState(xmlm);
-				        
-				        try {
-				            xmlm.save(writer);
-				            writer.close();
-				        } catch (IOException e) {
-							e.printStackTrace();
-				        }
-					}					
-				};
-			}
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-		// restore the workbench and restore a window 
-		// with state data on demand
-        display = PlatformUI.createDisplay();		
-		WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-			
-			public boolean openWindows() {
-				File stateLocation = getStateFileLocation();
-		        String stateFileName = "testOnDemandSaveRestoreState.xml";
-		        File stateFile = new File(stateLocation.getPath() + File.separator + stateFileName);
-		        assertTrue(stateFile.exists());
-	            
-				IMemento memento = null;
-		        try {
-					memento = XMLMemento.createReadRoot( new InputStreamReader (
-							new FileInputStream(stateFile),"UTF-8"));
-		        } catch (WorkbenchException e) {
-		            e.printStackTrace();
-		        } catch (FileNotFoundException e) {
-		            // won't happen because we already checked it exists
-		        } catch (UnsupportedEncodingException e) {
-		           // not possible - UTF8 is required
-		        }
-				
-				assertNotNull(memento);
-				IWorkbenchWindowConfigurer window = null;
-				try {
-					window = getWorkbenchConfigurer().restoreWorkbenchWindow(memento);	
-				} catch (WorkbenchException e) {
-					e.printStackTrace();
-				}
-				assertNotNull(window);
-				return true;
-			}
-
-			public void postWindowRestore(IWorkbenchWindowConfigurer configurer) throws WorkbenchException {
-				// TODO Auto-generated method stub
-				super.postWindowRestore(configurer);
-			}
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-	}
-			
-	private File getStateFileLocation() {
-	    IPath path = UIPlugin.getDefault().getStateLocation();
-	    StringBuffer fileName = new StringBuffer();
-	    fileName.append(File.separator);
-	    fileName.append("TestWorkbenchState");
-	    fileName.append(File.separator);
-		
-	    File stateLocation = path.append(fileName.toString()).toFile();		
-	    ensureDirectoryExists(stateLocation);
-		
-		return stateLocation;
-	}
-	
-	private void ensureDirectoryExists(File directory) {
-	    directory.mkdirs();
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchWindowConfigurerTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchWindowConfigurerTest.java
deleted file mode 100644
index dcb4cd9..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchWindowConfigurerTest.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.rcp.util.RCPTestWorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class WorkbenchWindowConfigurerTest extends TestCase {
-
-    public WorkbenchWindowConfigurerTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    public void testDefaults() {
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-
-            public void fillActionBars(IWorkbenchWindow window,
-                    IActionBarConfigurer actionBarConfig, int flags) {
-                super.fillActionBars(window, actionBarConfig, flags);
-
-                String tempTitle = "title"; //$NON-NLS-1$
-
-                IWorkbenchWindowConfigurer windowConfig = workbenchConfig
-                        .getWindowConfigurer(window);
-                assertNotNull(windowConfig);
-
-                assertEquals(window, windowConfig.getWindow());
-                assertEquals(workbenchConfig, windowConfig
-                        .getWorkbenchConfigurer());
-                assertEquals(actionBarConfig, windowConfig
-                        .getActionBarConfigurer());
-                assertNotNull(windowConfig.getTitle());
-                assertTrue(windowConfig.getShowCoolBar());
-                assertTrue(windowConfig.getShowMenuBar());
-                assertFalse(windowConfig.getShowPerspectiveBar());
-                assertTrue(windowConfig.getShowStatusLine());
-
-                windowConfig.setTitle(tempTitle);
-                windowConfig.setShowCoolBar(false);
-                windowConfig.setShowMenuBar(false);
-                windowConfig.setShowPerspectiveBar(true);
-                windowConfig.setShowStatusLine(false);
-                assertEquals(tempTitle, windowConfig.getTitle());
-                assertFalse(windowConfig.getShowCoolBar());
-                assertFalse(windowConfig.getShowMenuBar());
-                assertTrue(windowConfig.getShowPerspectiveBar());
-                assertFalse(windowConfig.getShowStatusLine());
-
-                // *** title is orginally null, but cannot set it back to null,
-                // should that
-                //     check be allowed?
-                windowConfig.setTitle("");//$NON-NLS-1$
-                windowConfig.setShowCoolBar(true);
-                windowConfig.setShowMenuBar(true);
-                windowConfig.setShowPerspectiveBar(false);
-                windowConfig.setShowStatusLine(true);
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-
-	public void test104558_T_T() throws Throwable {
-		doTest104558(true, true);
-	}
-	
-	public void test104558_F_T() throws Throwable {
-		doTest104558(false, true);
-	}
-	
-	public void test104558_T_F() throws Throwable {
-		doTest104558(true, false);
-	}
-	
-	public void test104558_F_F() throws Throwable {
-		doTest104558(false, false);
-	}
-
-	private void doTest104558(final boolean showPerspectiveBar, final boolean showCoolBar) {
-		WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-					IWorkbenchWindowConfigurer workbenchWindowConfigurer) {
-				return new WorkbenchWindowAdvisor(workbenchWindowConfigurer) {
-					public void preWindowOpen() {
-						super.preWindowOpen();
-						getWindowConfigurer().setShowCoolBar(showCoolBar);
-						getWindowConfigurer().setShowPerspectiveBar(showPerspectiveBar);
-					}
-					public void createWindowContents(Shell shell) {
-						IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-						configurer.createPageComposite(shell);
-					}
-				};
-			}
-			
-			public void eventLoopIdle(Display disp) {
-				IWorkbenchWindow activeWorkbenchWindow = getWorkbenchConfigurer()
-						.getWorkbench().getActiveWorkbenchWindow();
-				assertEquals("testing showCoolBar=" + showCoolBar, showCoolBar, ((WorkbenchWindow)activeWorkbenchWindow).getCoolBarVisible());
-				assertEquals("testing showPerspectiveBar=" + showPerspectiveBar, showPerspectiveBar, ((WorkbenchWindow)activeWorkbenchWindow).getPerspectiveBarVisible());
-				super.eventLoopIdle(disp);
-			}
-			
-			public void eventLoopException(Throwable exception) {
-				throw new RuntimeException(exception);
-			}
-		};
-	
-		int code = PlatformUI.createAndRunWorkbench(display, wa);
-		assertEquals(PlatformUI.RETURN_OK, code);
-	}
-	
-
-	// tests to ensure that all WorkbenchAdvisor API is called from the UI thread.
-	public void testThreading() {
-		final ArrayList results = new ArrayList();
-		
-		WorkbenchAdvisor advisor = new RCPTestWorkbenchAdvisor(1) {
-
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-					IWorkbenchWindowConfigurer configurer) {
-				WorkbenchWindowAdvisor advisor = new WorkbenchWindowAdvisor(configurer) {
-
-					private void ensureThread() {
-						if (Display.getCurrent() != null)
-							return; 
-						
-						Exception e = new Exception();
-						e.fillInStackTrace();
-						StackTraceElement element = e.getStackTrace()[1];
-						results.add(element.getClassName() + '.' + element.getMethodName());
-					}
-					
-					public ActionBarAdvisor createActionBarAdvisor(
-							IActionBarConfigurer configurer) {
-						ensureThread();
-						
-						ActionBarAdvisor advisor = new ActionBarAdvisor(configurer) {
-
-							public void dispose() {
-								ensureThread();
-								super.dispose();
-							}
-
-							protected void disposeAction(IAction action) {
-								ensureThread();
-								super.disposeAction(action);
-							}
-
-							protected void disposeActions() {
-								ensureThread();
-								super.disposeActions();
-							}
-
-							public void fillActionBars(int flags) {
-								ensureThread();
-								super.fillActionBars(flags);
-							}
-
-							protected void fillCoolBar(ICoolBarManager coolBar) {
-								ensureThread();
-								super.fillCoolBar(coolBar);
-							}
-
-							protected void fillMenuBar(IMenuManager menuBar) {
-								ensureThread();
-								super.fillMenuBar(menuBar);
-							}
-
-							protected void fillStatusLine(
-									IStatusLineManager statusLine) {
-								ensureThread();
-								super.fillStatusLine(statusLine);
-							}
-
-							protected IAction getAction(String id) {
-								ensureThread();
-								return super.getAction(id);
-							}
-
-							protected IActionBarConfigurer getActionBarConfigurer() {
-								ensureThread();
-								return super.getActionBarConfigurer();
-							}
-
-							public boolean isApplicationMenu(String menuId) {
-								ensureThread();
-								return super.isApplicationMenu(menuId);
-							}
-
-							protected void makeActions(IWorkbenchWindow window) {
-								ensureThread();
-								super.makeActions(window);
-							}
-
-							protected void register(IAction action) {
-								ensureThread();
-								super.register(action);
-							}
-
-							public IStatus restoreState(IMemento memento) {
-								ensureThread();
-								return super.restoreState(memento);
-							}
-
-							public IStatus saveState(IMemento memento) {
-								ensureThread();
-								return super.saveState(memento);
-							}};
-						return advisor;
-					}
-
-					public Control createEmptyWindowContents(Composite parent) {
-						ensureThread();
-						return super.createEmptyWindowContents(parent);
-					}
-
-					public void createWindowContents(Shell shell) {
-						ensureThread();
-						super.createWindowContents(shell);
-					}
-
-					public void dispose() {
-						ensureThread();
-						super.dispose();
-					}
-
-					protected IWorkbenchWindowConfigurer getWindowConfigurer() {
-						ensureThread();
-						return super.getWindowConfigurer();
-					}
-
-					public void openIntro() {
-						ensureThread();
-						super.openIntro();
-					}
-
-					public void postWindowClose() {
-						ensureThread();
-						super.postWindowClose();
-					}
-
-					public void postWindowCreate() {
-						ensureThread();
-						super.postWindowCreate();
-					}
-
-					public void postWindowOpen() {
-						ensureThread();
-						super.postWindowOpen();
-					}
-
-					public void postWindowRestore() throws WorkbenchException {
-						ensureThread();
-						super.postWindowRestore();
-					}
-
-					public void preWindowOpen() {
-						ensureThread();
-						super.preWindowOpen();
-					}
-
-					public boolean preWindowShellClose() {
-						ensureThread();
-						return super.preWindowShellClose();
-					}
-
-					public IStatus restoreState(IMemento memento) {
-						ensureThread();
-						return super.restoreState(memento);
-					}
-
-					public IStatus saveState(IMemento memento) {
-						ensureThread();
-						return super.saveState(memento);
-					}
-					
-				};
-				return advisor;
-			}
-		};
-			
-		int code = PlatformUI.createAndRunWorkbench(display, advisor);
-		assertEquals(PlatformUI.RETURN_OK, code);
-		
-		if (!results.isEmpty()) {
-			StringBuffer buffer = new StringBuffer("Window/action bar advisor methods called from non-UI threads:\n");
-			for (Iterator i = results.iterator(); i.hasNext();) {
-				String string = (String) i.next();
-				buffer.append(string).append('\n');
-			}
-			fail(buffer.toString());
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/EmptyWorkbenchPerfTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/EmptyWorkbenchPerfTest.java
deleted file mode 100644
index 5a09a6d..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 583ca97..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSuite.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.1
- */
-public class RCPPerformanceTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-    	return new RCPPerformanceTestSetup(new RCPPerformanceTestSuite());
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public RCPPerformanceTestSuite() {
-        addTestSuite(PlatformUIPerfTest.class);
-        addTestSuite(EmptyWorkbenchPerfTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyPerspective.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyPerspective.java
deleted file mode 100644
index d9e506b..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyPerspective.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp.util;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api.  It defines an initial
- * layout with no parts, just an editor area.
- */
-public class EmptyPerspective implements IPerspectiveFactory {
-
-    /**
-     * The perspective id for the empty perspective.
-     */
-    public static final String PERSP_ID = "org.eclipse.ui.tests.rcp.util.EmptyPerspective"; //$NON-NLS-1$
-
-    /**
-     * Constructs a new Default layout engine.
-     */
-    public EmptyPerspective() {
-        super();
-    }
-
-    /**
-     * Defines the initial layout for a perspective.  
-     *
-     * Implementors of this method may add additional views to a
-     * perspective.  The perspective already contains an editor folder
-     * with <code>ID = ILayoutFactory.ID_EDITORS</code>.  Add additional views
-     * to the perspective in reference to the editor folder.
-     *
-     * This method is only called when a new perspective is created.  If
-     * an old perspective is restored from a persistence file then
-     * this method is not called.
-     *
-     * @param factory the factory used to add views to the perspective
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        // do nothing, this is the empty perspective
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyView.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyView.java
deleted file mode 100644
index 3de3969..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyView.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Minimal view, for the RCP tests. 
- */
-public class EmptyView extends ViewPart {
-
-    public static final String ID = "org.eclipse.ui.tests.rcp.util.EmptyView"; //$NON-NLS-1$
-    
-    private Label label;
-    
-	public EmptyView() {
-	    // do nothing
-	}
-
-	public void createPartControl(Composite parent) {
-	    label = new Label(parent, SWT.NONE);
-	    label.setText("Empty view");
-	}
-
-	public void setFocus() {
-		label.setFocus();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/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 2cf5d8b..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 1c2317d..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 3dd21b0..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 d2abb56..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RCPTestWorkbenchAdvisor.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.rcp.util;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.DisplayAccess;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-
-/**
- * This advisor adds the ability to exit the workbench after it has started up.
- * This is done with a call to close from within the advisor's event idle loop.
- * The number of times the idle is called before exiting can be configured. Test
- * cases should subclass this advisor and add their own callback methods if
- * needed.
- * 
- * @since 3.1
- */
-public class RCPTestWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	public static Boolean asyncDuringStartup = null;
-	
-	// the following fields are set by the threads that attempt sync/asyncs
-	// during startup.
-	public static Boolean syncWithDisplayAccess = null;
-	public static Boolean asyncWithDisplayAccess = null;
-	public static Boolean syncWithoutDisplayAccess = null;
-	public static Boolean asyncWithoutDisplayAccess = null;
-	
-	private static boolean started = false;
-
-	public static boolean isSTARTED() {
-		synchronized (RCPTestWorkbenchAdvisor.class) {
-			return started;
-		}
-	}
-
-	/** Default value of -1 causes the option to be ignored. */
-	private int idleBeforeExit = -1;
-
-	/**
-	 * Traps whether or not calls to displayAccess in the UI thread resulted in
-	 * an exception. Should be false.
-	 */
-	public static boolean displayAccessInUIThreadAllowed;
-
-	public RCPTestWorkbenchAdvisor() {
-		// default value means the advisor will not trigger the workbench to
-		// close
-		this.idleBeforeExit = -1;
-	}
-
-	public RCPTestWorkbenchAdvisor(int idleBeforeExit) {
-		this.idleBeforeExit = idleBeforeExit;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize(org.eclipse.ui.application.IWorkbenchConfigurer)
-	 */
-	public void initialize(IWorkbenchConfigurer configurer) {
-		super.initialize(configurer);
-
-		// The RCP tests are currently run in the context of the Platform
-		// product, which specifies
-		// the Resource perspective as the default, and also reports progress on
-		// startup.
-		// We don't want either in effect when running the RCP tests.
-		// Also disable intro.
-		IPreferenceStore prefs = PlatformUI.getPreferenceStore();
-		prefs
-				.setValue(IWorkbenchPreferenceConstants.DEFAULT_PERSPECTIVE_ID,
-						"");
-		prefs.setValue(IWorkbenchPreferenceConstants.SHOW_PROGRESS_ON_STARTUP,
-				false);
-		prefs.setValue(IWorkbenchPreferenceConstants.SHOW_INTRO, false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getInitialWindowPerspectiveId()
-	 */
-	public String getInitialWindowPerspectiveId() {
-		return EmptyPerspective.PERSP_ID;
-	}
-
-	public void eventLoopIdle(final Display display) {
-		// Bug 107369: RCP test suite hangs on GTK
-		if (idleBeforeExit != -1 && --idleBeforeExit <= 0)
-			PlatformUI.getWorkbench().close();
-
-		// bug 73184: On the mac the parent eventLoopIdle will put the display
-		// to sleep
-		// until there are events (e.g., mouse jiggled).
-// if (!"carbon".equals(SWT.getPlatform()))
-// super.eventLoopIdle(display);
-
-		if (idleBeforeExit == -1)
-			return;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
-	 */
-	public void preStartup() {
-		super.preStartup();
-		final Display display = Display.getCurrent();
-		if (display != null) {
-			display.asyncExec(new Runnable() {
-
-				public void run() {
-					if (isSTARTED())
-						asyncDuringStartup = Boolean.FALSE;
-					else
-						asyncDuringStartup = Boolean.TRUE;
-				}
-			});
-		}
-		
-		// start a bunch of threads that are going to do a/sync execs. For some
-		// of them, call DisplayAccess.accessDisplayDuringStartup. For others,
-		// dont. Those that call this method should have their runnables invoked
-		// prior to the method isSTARTED returning true.
-		
-		setupAsyncDisplayThread(true, display);
-		setupSyncDisplayThread(true, display);
-		setupAsyncDisplayThread(false, display);
-		setupSyncDisplayThread(false, display);
-		
-		try {
-			DisplayAccess.accessDisplayDuringStartup();
-			displayAccessInUIThreadAllowed = true;
-		}
-		catch (IllegalStateException e) {
-			displayAccessInUIThreadAllowed = false;
-		}
-	}
-
-	/**
-	 * @param display
-	 */
-	private void setupSyncDisplayThread(final boolean callDisplayAccess, final Display display) {
-		Thread syncThread = new Thread() {
-			/* (non-Javadoc)
-			 * @see java.lang.Thread#run()
-			 */
-			public void run() {
-				if (callDisplayAccess)
-					DisplayAccess.accessDisplayDuringStartup();
-				try {
-					display.syncExec(new Runnable() {
-						public void run() {
-							synchronized (RCPTestWorkbenchAdvisor.class) {
-								if (callDisplayAccess)
-									syncWithDisplayAccess = !isSTARTED() ? Boolean.TRUE
-											: Boolean.FALSE;
-								else
-									syncWithoutDisplayAccess = !isSTARTED() ? Boolean.TRUE
-											: Boolean.FALSE;
-							}
-						}
-					});
-				} catch (SWTException e) {
-					// this can happen because we shut down the workbench just
-					// as soon as we're initialized - ie: when we're trying to
-					// run this runnable in the deferred case.
-				}
-			}
-		};
-		syncThread.setDaemon(true);
-		syncThread.start();
-	}
-
-	/**
-	 * @param display
-	 */
-	private void setupAsyncDisplayThread(final boolean callDisplayAccess, final Display display) {
-		Thread asyncThread = new Thread() {
-			/* (non-Javadoc)
-			 * @see java.lang.Thread#run()
-			 */
-			public void run() {
-				if (callDisplayAccess)
-					DisplayAccess.accessDisplayDuringStartup();
-				display.asyncExec(new Runnable() {
-					public void run() {
-						synchronized (RCPTestWorkbenchAdvisor.class) {
-							if (callDisplayAccess)
-								asyncWithDisplayAccess = !isSTARTED() ? Boolean.TRUE
-										: Boolean.FALSE;
-							else
-								asyncWithoutDisplayAccess = !isSTARTED() ? Boolean.TRUE
-										: Boolean.FALSE;
-						}
-					}});
-			}
-		};
-		asyncThread.setDaemon(true);
-		asyncThread.start();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#postStartup()
-	 */
-	public void postStartup() {
-		super.postStartup();
-		synchronized (RCPTestWorkbenchAdvisor.class) {
-			started = true;
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.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 3c54a5a..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, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, 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 4db119e..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.3.0.qualifier
-Bundle-ClassPath: rcptests.jar
-Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime.compatibility,
- org.eclipse.ui,
- org.junit,
- org.eclipse.test.performance
-Bundle-ActivationPolicy: lazy
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 303cbf2..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="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests.rcp"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.rcp.RcpTestSuite"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests.rcp"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests.rcp/about.html b/tests/org.eclipse.ui.tests.rcp/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests.rcp/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.rcp/build.properties b/tests/org.eclipse.ui.tests.rcp/build.properties
deleted file mode 100644
index c51eb2e..0000000
--- a/tests/org.eclipse.ui.tests.rcp/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.properties,\
-               plugin.xml,\
-               *.html,\
-               *.jar,\
-               *.xml,\
-               rcptests.jar,\
-               META-INF/
-src.includes = about.html
-jars.compile.order = rcptests.jar
-source.rcptests.jar = Eclipse RCP Tests/
-output.rcptests.jar = bin/
diff --git a/tests/org.eclipse.ui.tests.rcp/icons/sample.gif b/tests/org.eclipse.ui.tests.rcp/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/tests/org.eclipse.ui.tests.rcp/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.rcp/plugin.xml b/tests/org.eclipse.ui.tests.rcp/plugin.xml
deleted file mode 100644
index 4bd58f1..0000000
--- a/tests/org.eclipse.ui.tests.rcp/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Empty Perspective"
-            class="org.eclipse.ui.tests.rcp.util.EmptyPerspective"
-            id="org.eclipse.ui.tests.rcp.util.EmptyPerspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="RCP Test Views"
-            id="org.eclipse.ui.tests.rcp"/>
-      <view
-            class="org.eclipse.ui.tests.rcp.util.EmptyView"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.tests.rcp"
-            name="EmptyView"
-            id="org.eclipse.ui.tests.rcp.util.EmptyView"/>
-   </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.rcp/test.xml b/tests/org.eclipse.ui.tests.rcp/test.xml
deleted file mode 100644
index 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 678d30c..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 08:59:52 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.4\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 57ad3a2..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Mon Feb 13 14:25:08 EST 2006
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=1
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.views.properties.tabbed/META-INF/MANIFEST.MF
deleted file mode 100644
index 513c4da..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +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.4.0.qualifier
-Bundle-Activator: org.eclipse.ui.tests.views.properties.tabbed.Activator
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.junit,
- org.eclipse.ui.ide,
- org.eclipse.ui.views.properties.tabbed,
- org.eclipse.jface.text
-Bundle-Vendor: %Plugin.providerName
-Bundle-ClassPath: uitptests.jar
-Bundle-ActivationPolicy: lazy
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 55f7c36..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">
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests.views.properties.tabbed"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.views.properties.tabbed.AllTests"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests.views.properties.tabbed"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="true"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/about.html b/tests/org.eclipse.ui.tests.views.properties.tabbed/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/build.properties b/tests/org.eclipse.ui.tests.views.properties.tabbed/build.properties
deleted file mode 100644
index 8f2c68b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml,\
-               icons/,\
-               META-INF/,\
-               about.html,\
-               test.xml,\
-               uitptests.jar,\
-               plugin.properties
-
-src.includes = about.html
-jars.compile.order = uitptests.jar
-source.uitptests.jar = src/
-output.uitptests.jar = bin/
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/black_triangle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/black_triangle.gif
deleted file mode 100644
index 7f4c34b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/black_triangle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_circle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_circle.gif
deleted file mode 100644
index ab2ce37..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_circle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_square.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_square.gif
deleted file mode 100644
index daae4c9..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_square.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_triangle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_triangle.gif
deleted file mode 100644
index f746d78..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_triangle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_circle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_circle.gif
deleted file mode 100644
index 201b66b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_circle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_square.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_square.gif
deleted file mode 100644
index b950282..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_square.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_triangle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_triangle.gif
deleted file mode 100644
index 620ddfb..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_triangle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_circle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_circle.gif
deleted file mode 100644
index b648ff6..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_circle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_square.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_square.gif
deleted file mode 100644
index 56212ab..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_square.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_star.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_star.gif
deleted file mode 100644
index bab9824..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_star.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_triangle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_triangle.gif
deleted file mode 100644
index f1c3268..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_triangle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/sample.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties b/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties
deleted file mode 100644
index fe51e2a..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Tabbed Properties View Tests
-Plugin.providerName = Eclipse.org
-
-Views.category.name = Tabbed Properties View
-Views.example.name = Tabbed Properties Tests View
-Views.dynamic.name = Tabbed Properties Dynamic Tests View
-Views.text.name = Tabbed Properties Text Tests View
-Views.override.name = Tabbed Properties Override Tests View
-Views.example.perspective = Tabbed Properties View Tests Perspective
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml b/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml
deleted file mode 100644
index 5e6a97e..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml
+++ /dev/null
@@ -1,382 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.category.name"
-            id="org.eclipse.ui.views.properties.tabbed">
-      </category>
-      <view
-            name="%Views.example.name"
-            category="org.eclipse.ui.views.properties.tabbed"
-            icon="icons/sample.gif"
-            class="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView"
-            id="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView">
-      </view>
-      <view
-            name="%Views.dynamic.name"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsView"
-            id="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsView">
-      </view>
-      <view
-            name="%Views.text.name"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsView"
-            id="org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsView">
-      </view>
-      <view
-            name="%Views.override.name"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView"
-            id="org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.views.LabelProvider"
-            typeMapper="org.eclipse.ui.tests.views.properties.tabbed.views.TypeMapper">
-         <propertyCategory category="first">
-         </propertyCategory>
-         <propertyCategory category="second">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs contributorId="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView">
-         <propertyTab
-               category="first"
-               id="propertyTab1"
-               label="Name"/>
-         <propertyTab
-               afterTab="propertyTab1"
-               category="first"
-               id="propertyTab2"
-               label="Project"/>
-         <propertyTab
-               afterTab="propertyTab2"
-               category="first"
-               id="propertyTab3"
-               label="Folder"/>
-         <propertyTab
-               afterTab="propertyTab3"
-               category="first"
-               id="propertyTab4"
-               label="File"/>
-         <propertyTab
-               afterTab="propertyTab4"
-               category="first"
-               id="propertyTab5"
-               label="Information"/>
-         <propertyTab
-               afterTab="propertyTab5"
-               category="first"
-               id="propertyTab6"
-               label="Warning"/>
-         <propertyTab
-               afterTab="propertyTab6"
-               category="first"
-               id="propertyTab7"
-               label="Error"/>
-         <propertyTab
-               category="second"
-               id="propertyTab8"
-               indented="true"
-               label="Message"/>
-         <propertyTab
-               category="second"
-               image="icons/sample.gif"
-               id="propertyTab9"
-               label="Resource"/>
-         <propertyTab
-               category="unknown_bugzilla_152473"
-               image="icons/sample.gif"
-               id="propertyTab9"
-               label="Unknown"/>
-      </propertyTabs>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertySections">
-      <propertySections contributorId="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView">
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.NameSection"
-               enablesFor="1"
-               id="propertySection1"
-               tab="propertyTab1">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Element"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection2"
-               tab="propertyTab2">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Project"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection3"
-               tab="propertyTab3">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Folder"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection4"
-               tab="propertyTab4">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.File"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection5"
-               tab="propertyTab5">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Information"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection6"
-               tab="propertyTab6">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Warning"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection7"
-               tab="propertyTab7">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Error"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.MessageSection"
-               id="propertySection8"
-               tab="propertyTab8">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Error"/>
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Warning"/>
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Information"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.ResourceSection"
-               id="propertySection9"
-               tab="propertyTab9">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.File"/>
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Folder"/>
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Project"/>
-         </propertySection>
-         <propertySection
-               afterSection="propertySection5"
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.InformationTwoSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.views.InformationTwoFilter"
-               id="propertySection10"
-               tab="propertyTab1">
-         </propertySection>
-      </propertySections>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective"
-            icon="icons/sample.gif"
-            id="org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective"
-            name="%Views.example.perspective">
-      </perspective>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.static"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTitleBarLabelProvider"
-            typeMapper="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-         <propertyCategory
-               category="advanced">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs contributorId="org.eclipse.ui.tests.views.properties.tabbed.static">
-         <propertyTab
-               category="default"
-               id="ElementTab"
-               label="Element"/>
-         <propertyTab
-               afterTab="ElementTab"
-               category="default"
-               id="ColorTab"
-               label="Color"/>
-         <propertyTab
-               afterTab="ColorTab"
-               category="default"
-               id="ShapeTab"
-               label="Shape"/>
-         <propertyTab
-               category="advanced"
-               id="AdvancedTab"
-               label="Advanced">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertySections">
-      <propertySections
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.static">
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsElementSection"
-               id="ElementSection"
-               tab="ElementTab">
-            <input
-                  type="org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement">
-            </input>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsRedSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsRedSectionFilter"
-               id="RedSection"
-               tab="ColorTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsGreenSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsGreenSectionFilter"
-               id="GreenSection"
-               tab="ColorTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection"
-               enablesFor="1"
-               id="AdvancedSection"
-               tab="AdvancedTab">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsBlueSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsBlueSectionFilter"
-               id="BlueSection"
-               tab="ColorTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsSquareSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsSquareSectionFilter"
-               id="SquareSection"
-               tab="ShapeTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsTriangleSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsTriangleSectionFilter"
-               id="TriangleSection"
-               tab="ShapeTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsCircleSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsCircleSectionFilter"
-               id="CircleSection"
-               tab="ShapeTab">
-         </propertySection>
-      </propertySections>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.dynamic.section"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTitleBarLabelProvider"
-            sectionDescriptorProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsSectionDescriptorProvider"
-            typeMapper="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-         <propertyCategory
-               category="advanced">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs contributorId="org.eclipse.ui.tests.views.properties.tabbed.dynamic.section">
-         <propertyTab
-               category="default"
-               id="ElementTab"
-               label="Element"/>
-         <propertyTab
-               afterTab="ElementTab"
-               category="default"
-               id="ColorTab"
-               label="Color"/>
-         <propertyTab
-               afterTab="ColorTab"
-               category="default"
-               id="ShapeTab"
-               label="Shape"/>
-         <propertyTab
-               category="advanced"
-               id="AdvancedTab"
-               label="Advanced">
-         </propertyTab>
-         <propertyTab
-               afterTab="ColorTab"
-               category="default"
-               id="StarTab"
-               indented="true"
-               label="Star">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.dynamic.tab"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTitleBarLabelProvider"
-            tabDescriptorProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.tab.descriptors.DynamicTestsTabDescriptorProvider"
-            typeMapper="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-         <propertyCategory
-               category="advanced">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.text"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsLabelProvider"
-            tabDescriptorProvider="org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsTabDescriptorProvider">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.override"
-            sectionDescriptorProvider="org.eclipse.ui.tests.views.properties.tabbed.override.tablist.OverrideTestsSectionDescriptorProvider"
-            overridableTabListContentProvider="true">
-          <propertyCategory
-                category="org.eclipse.ui.tests.views.properties.tabbed.override">
-          </propertyCategory>
-      </propertyContributor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.override">
-         <propertyTab
-               label="Override"
-               category="org.eclipse.ui.tests.views.properties.tabbed.override"
-               id="org.eclipse.ui.tests.views.properties.tabbed.override">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/Activator.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/Activator.java
deleted file mode 100644
index 8cfa680..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/Activator.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed;

-

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

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

-import org.osgi.framework.BundleContext;

-

-/**

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

- */

-public class Activator

-    extends AbstractUIPlugin {

-

-    // The shared instance.

-    private static Activator plugin;

-

-    /**

-     * The constructor.

-     */

-    public Activator() {

-        plugin = this;

-    }

-

-    /**

-     * This method is called upon plug-in activation

-     */

-    public void start(BundleContext context)

-        throws Exception {

-        super.start(context);

-    }

-

-    /**

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

-     */

-    public void stop(BundleContext context)

-        throws Exception {

-        super.stop(context);

-        plugin = null;

-    }

-

-    /**

-     * Returns the shared instance.

-     */

-    public static Activator getDefault() {

-        return plugin;

-    }

-

-    /**

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

-     * relative path.

-     * 

-     * @param path

-     *            the path

-     * @return the image descriptor

-     */

-    public static ImageDescriptor getImageDescriptor(String path) {

-        return AbstractUIPlugin.imageDescriptorFromPlugin(

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

-    }

-}

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

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.model;

-

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

-

-public abstract class Element {

-

-    private String name;

-

-    public Element(String aName) {

-        super();

-        this.name = aName;

-    }

-

-    public String getName() {

-        return name;

-    }

-

-    public abstract Image getImage();

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Error.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Error.java
deleted file mode 100644
index beb86a0..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Error.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.model;

-

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

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class Error

-    extends Element {

-

-    public Error(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

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

-            ISharedImages.IMG_OBJS_ERROR_TSK);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/File.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/File.java
deleted file mode 100644
index e7f8761..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/File.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.model;

-

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

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class File

-    extends Element {

-

-    public File(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

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

-            ISharedImages.IMG_OBJ_FILE);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Folder.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Folder.java
deleted file mode 100644
index f1251c7..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Folder.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.model;

-

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

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class Folder

-    extends Element {

-

-    public Folder(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

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

-            ISharedImages.IMG_OBJ_FOLDER);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Information.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Information.java
deleted file mode 100644
index a6c515d..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Information.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.model;

-

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

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class Information

-    extends Element {

-

-    public Information(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

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

-            ISharedImages.IMG_OBJS_INFO_TSK);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Project.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Project.java
deleted file mode 100644
index a883146..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Project.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.model;

-

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

-import org.eclipse.ui.PlatformUI;

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

-

-public class Project

-    extends Element {

-

-    public Project(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

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

-            SharedImages.IMG_OBJ_PROJECT);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Warning.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Warning.java
deleted file mode 100644
index 6498d3b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Warning.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.model;

-

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

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class Warning

-    extends Element {

-

-    public Warning(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

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

-            ISharedImages.IMG_OBJS_WARN_TSK);

-    }

-

-}

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

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.sections;

-

-public class InformationTwoSection

-    extends LabelSection {

-

-    public InformationTwoSection() {

-        super();

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

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/LabelSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/LabelSection.java
deleted file mode 100644
index eb2822c..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/LabelSection.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.sections;

-

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

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

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

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

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

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

-

-public class LabelSection

-    extends AbstractPropertySection {

-

-    protected String label;

-

-    public LabelSection() {

-        super();

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

-    }

-

-    public void createControls(Composite parent,

-            TabbedPropertySheetPage aTabbedPropertySheetPage) {

-        super.createControls(parent, aTabbedPropertySheetPage);

-        Composite composite = getWidgetFactory()

-            .createFlatFormComposite(parent);

-

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

-        FormData data = new FormData();

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

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

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

-        nameLabel.setLayoutData(data);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/MessageSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/MessageSection.java
deleted file mode 100644
index f529d73..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/MessageSection.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.sections;

-

-public class MessageSection

-    extends LabelSection {

-

-    public MessageSection() {

-        super();

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

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/NameSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/NameSection.java
deleted file mode 100644
index c1a82d9..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/NameSection.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.views.properties.tabbed.sections;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * The name section on the element tab.
- * 
- * @author Anthony Hunter
- */
-public class NameSection
-    extends AbstractPropertySection {
-
-    private TreeNode treeNode;
-
-    private Text nameText;
-
-    /**
-     * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-     *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-     */
-    public void createControls(Composite parent,
-            TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-        Composite composite = getWidgetFactory()
-            .createFlatFormComposite(parent);
-        FormData data;
-
-        nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-        nameText.setEditable(false);
-        data = new FormData();
-        data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
-        data.right = new FormAttachment(100, 0);
-        data.top = new FormAttachment(0, 0);
-        nameText.setLayoutData(data);
-
-        CLabel nameLabel = getWidgetFactory().createCLabel(composite, "Name:"); //$NON-NLS-1$
-        data = new FormData();
-        data.left = new FormAttachment(0, 0);
-        data.right = new FormAttachment(nameText,
-            -ITabbedPropertyConstants.HSPACE);
-        data.top = new FormAttachment(nameText, 0, SWT.CENTER);
-        nameLabel.setLayoutData(data);
-
-    }
-
-    /**
-     * Get the element.
-     * 
-     * @return the element.
-     */
-    public TreeNode getTreeNode() {
-        return treeNode;
-    }
-
-    /*
-     * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()
-     */
-    public void refresh() {
-        Element element = (Element) getTreeNode().getValue();
-        nameText.setText(element.getName());
-    }
-
-    public void setInput(IWorkbenchPart part, ISelection selection) {
-        super.setInput(part, selection);
-        Assert.isTrue(selection instanceof IStructuredSelection);
-        Object input = ((IStructuredSelection) selection).getFirstElement();
-        Assert.isTrue(input instanceof TreeNode);
-        this.treeNode = (TreeNode) input;
-    }
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/ResourceSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/ResourceSection.java
deleted file mode 100644
index 13b3624..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/ResourceSection.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.sections;

-

-public class ResourceSection

-    extends LabelSection {

-

-    public ResourceSection() {

-        super();

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

-    }

-

-}

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

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.views;

-

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

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

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

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

-

-/**

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

- * 

- * @author Anthony Hunter

- */

-public class InformationTwoFilter

-    implements IFilter {

-

-    public boolean select(Object object) {

-        if (object instanceof TreeNode) {

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

-            if (element instanceof Information) {

-                Information information = (Information) element;

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

-                    return true;

-                }

-            }

-        }

-        return false;

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/LabelProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/LabelProvider.java
deleted file mode 100644
index 10919e5..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/LabelProvider.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.views;

-

-import java.util.Iterator;

-

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

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

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

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

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

-

-/**

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

- * 

- * @author Anthony Hunter

- */

-public class LabelProvider

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

-

-    /**

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

-     */

-    public Image getImage(Object obj) {

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

-            return null;

-        }

-        if (obj instanceof IStructuredSelection) {

-            IStructuredSelection structuredSelection = (IStructuredSelection) obj;

-            if (areDifferentTypes(structuredSelection)) {

-                return null;

-            }

-            obj = structuredSelection.getFirstElement();

-        }

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

-        return element.getImage();

-    }

-

-    /**

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

-     */

-    public String getText(Object obj) {

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

-            return null;

-        }

-        int size = 1;

-        if (obj instanceof IStructuredSelection) {

-            IStructuredSelection structuredSelection = (IStructuredSelection) obj;

-            if (areDifferentTypes(structuredSelection)) {

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

-            }

-            obj = structuredSelection.getFirstElement();

-            size = structuredSelection.size();

-        }

-        StringBuffer ret = new StringBuffer();

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

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

-        String name = element.getName();

-        ret.append('\u00AB');

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

-        ret.append('\u00BB');

-        if (size == 1) {

-            ret.append(' ');

-            ret.append(name);

-        } else {

-            ret.append(' ');

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

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

-        }

-        return ret.toString();

-    }

-

-    /**

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

-     * types.

-     * 

-     * @param structuredSelection

-     *            the structured selection.

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

-     */

-    private boolean areDifferentTypes(IStructuredSelection structuredSelection) {

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

-            return false;

-        }

-        Iterator i = structuredSelection.iterator();

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

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

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

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

-                return true;

-            }

-        }

-

-        return false;

-    }

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

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.views;

-

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

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

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

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

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

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

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

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

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

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

-

-public class TestsViewContentProvider

-    implements IStructuredContentProvider, ITreeContentProvider {

-

-    /**

-     * 

-     */

-    private final TestsView view;

-

-    /**

-     * @param view

-     */

-    TestsViewContentProvider(TestsView aView) {

-        this.view = aView;

-    }

-

-    private TreeNode invisibleRoot;

-

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

-        //

-    }

-

-    public void dispose() {

-        //

-    }

-

-    public Object[] getElements(Object parent) {

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

-            if (invisibleRoot == null)

-                initialize();

-            return getChildren(invisibleRoot);

-        }

-        return getChildren(parent);

-    }

-

-    public Object getParent(Object child) {

-        if (child instanceof TreeNode) {

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

-        }

-        return null;

-    }

-

-    public Object[] getChildren(Object parent) {

-        if (parent instanceof TreeNode) {

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

-        }

-        return new Object[0];

-    }

-

-    public boolean hasChildren(Object parent) {

-        if (parent instanceof TreeNode)

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

-        return false;

-    }

-

-    /*

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

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

-     */

-    void initialize() {

-        TreeNode[] nodes = new TreeNode[] {

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

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

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

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

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

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

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

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

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

-        invisibleRoot.setChildren(nodes);

-    }

-

-    public TreeNode getInvisibleRoot() {

-        return invisibleRoot;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TypeMapper.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TypeMapper.java
deleted file mode 100644
index 5f20e44..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TypeMapper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

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

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

- * which accompanies this distribution, and is available at

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

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

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

-package org.eclipse.ui.tests.views.properties.tabbed.views;

-

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

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

-

-public class TypeMapper

-    extends AbstractTypeMapper {

-

-    public Class mapType(Object object) {

-        if (object instanceof TreeNode) {

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

-        }

-        return super.mapType(object);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/test.xml b/tests/org.eclipse.ui.tests.views.properties.tabbed/test.xml
deleted file mode 100644
index d5d6d89..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/test.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}\..\.."/>
-
-  <!-- sets the properties eclipse-home, and library-file -->
-  <property name="plugin-name" value="org.eclipse.ui.tests.views.properties.tabbed"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-    <property name="sniff-folder"
-              value="${eclipse-home}/tabbedproperties_sniff_folder"/>
-    <delete dir="${sniff-folder}" quiet="true"/>
-    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${sniff-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname"
-                value="org.eclipse.ui.tests.views.properties.tabbed.AllTests"/>
-    </ant>
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-</project>